Diesel Pascal

Проектирование и разработка идеального средства программирования.

Модератор: Модераторы

Re: Diesel Pascal

Сообщение v-t-l » 26.02.2021 12:20:16

*Rik* писал(а):А если в Lazarus приложение с TZPgEventAlerter сделать, ошибка воспроизводится?

[Уведомление об исключении отладчика]

Проект project1 вызвал класс исключения 'EZSQLException' с сообщением:
SQL Error: ошибка SSL: decryption failed or bad record mac

В файле '../../src/dbc/ZDbcPostgreSqlUtils.pas' на строке 699:
raise EZSQLException.CreateWithStatus(Result,Format(SSQLError1, [GetMessage(ErrorMessage)]));


[Игнорировать этот тип исключений]

[Остановить] [Продолжить]
Есть подозрение, что TZPgEventAlerter не синхронизируется с основным потоком при использовании общего соединения.

Добавлено спустя 2 часа 1 минуту 18 секунд:
При использовании отдельного соединения для TZPgEventAlerter почти 2 часа тестирования ошибок не вызвали.
v-t-l
энтузиаст
 
Сообщения: 727
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Diesel Pascal

Сообщение *Rik* » 26.02.2021 15:15:04

v-t-l писал(а):
*Rik* писал(а):А если в Lazarus приложение с TZPgEventAlerter сделать, ошибка воспроизводится?

[Уведомление об исключении отладчика]

Проект project1 вызвал класс исключения 'EZSQLException' с сообщением:
SQL Error: ошибка SSL: decryption failed or bad record mac

В файле '../../src/dbc/ZDbcPostgreSqlUtils.pas' на строке 699:
raise EZSQLException.CreateWithStatus(Result,Format(SSQLError1, [GetMessage(ErrorMessage)]));


[Игнорировать этот тип исключений]

[Остановить] [Продолжить]
Есть подозрение, что TZPgEventAlerter не синхронизируется с основным потоком при использовании общего соединения.

Добавлено спустя 2 часа 1 минуту 18 секунд:
При использовании отдельного соединения для TZPgEventAlerter почти 2 часа тестирования ошибок не вызвали.

А в Дизель-Паскале через отдельное соединение тоже работает?
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 426
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Diesel Pascal

Сообщение v-t-l » 27.02.2021 12:06:58

*Rik* писал(а):А в Дизель-Паскале через отдельное соединение тоже работает?

Да, исключения не появляются.
v-t-l
энтузиаст
 
Сообщения: 727
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Diesel Pascal

Сообщение *Rik* » 27.02.2021 12:51:39

v-t-l писал(а):
*Rik* писал(а):А в Дизель-Паскале через отдельное соединение тоже работает?

Да, исключения не появляются.

Это явно косяк какой-то, лучше разработчикам ZEOS сообщить, возможно они уже знают. Пока костыль в виде отдельного соединения используйте.

ps.
В Дизель-Паскаль не все компоненты от ZEOS добавлены, если ещё какие-то нужны, могу добавить.
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 426
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Diesel Pascal

Сообщение Aleks69 » 01.03.2021 12:25:40

Добрый день!

Выложил более-или менее настроенную среду Lazarus для Android в этой теме: viewtopic.php?f=5&t=43209

Не осталось ли у автора Diesel Pascal первых версий виртуальной машины, чтоб он смог проверить просто машину + простейшие контролы из вкладки Android Bridges (там свои контролы) на принципиальную возможность работать под Android?

Добавлено спустя 4 часа 49 минут 2 секунды:
Хотя, мне кажется - ситуация с адаптацией Diesel Pascal гораздо сложней, чем это мне виделось на первый взгляд. Масса проблем будет с расположением элементов на странице - все эти андроидные ReiativeLayout не имеют прямых аналогов (?) при работе дизайнера форм для Windows.
Aleks69
новенький
 
Сообщения: 35
Зарегистрирован: 29.03.2009 14:25:01

Re: Diesel Pascal

Сообщение v-t-l » 27.02.2024 11:25:48

Добрый день!
Не нашел, как в xDBGrid реализовать LookupCombo столбец с с автодополнением по мере набора текста? Хотел сделать обработчик OnSelectEditor с показом своего контрола - недоступно.
v-t-l
энтузиаст
 
Сообщения: 727
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Diesel Pascal

Сообщение *Rik* » 27.02.2024 12:20:10

v-t-l писал(а):Добрый день!
Не нашел, как в xDBGrid реализовать LookupCombo столбец с с автодополнением по мере набора текста? Хотел сделать обработчик OnSelectEditor с показом своего контрола - недоступно.

Здравствуйте.
Я редко использую саму сетку для редактирования данных, поэтому таким функционалом не заморачивался. Можно попробовать добавить.
Не могли бы Вы пример изготовить в Lazarus, можно с обычной сеткой, если там это работает?
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 426
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Diesel Pascal

Сообщение v-t-l » 27.02.2024 16:29:20

AutoComplete для Lookup полей стандартной TDBGrid отсутствует. Поэтому сделал в примере через OnSelectEditor.
3.7z
Тестовый пример
(78.6 КБ) Скачиваний: 11

В DieselPascal событие OnSelectEditor не доступно.
v-t-l
энтузиаст
 
Сообщения: 727
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Diesel Pascal

Сообщение *Rik* » 29.02.2024 12:44:01

Выпустил новую версию с поддержкой события. Вставил код из Вашего примера, Есть отличие:
Для получения прямоугольника, где отображать редактор, использовать r = xDBGrid1.SelectedEditorRect;
Если в столбце используется 2 поля и нужно понять где и как отображать редаткор, для верхнего поля или для нижнего, использовать xDBGrid1.CellCursorPos.
Если (Column.Index = 5) and (xDBGrid1.CellCursorPos = ccpTop) курсор в столбце с индексом 5 и в верхнем положении для поля Field
Если (Column.Index = 5) and (xDBGrid1.CellCursorPos = ccpBottom) курсор в столбце с индексом 5 и в нижнем положении для поля xField
Я убрал связь с полями и пробовал без данных, время было мало на эксперименты, сам редактор отображается. Попробуйте, получится с данными или нет?

Код: Выделить всё
method TNomenkForm.xDBGrid1SelectEditor(Sender: TObject; Column: TxColumn; var Editor: TWinControl);
var
  r: TRect;
  Ed: TDBLookupComboBox;
begin
  //if (Column.Index = 5) then
  //Если в столбце используется 2 поля и нужно понять где и как отображать редаткор,
  //Для верхнего поля или для нижнего, использовать xDBGrid1.CellCursorPos
  //На примере ниже проверяется что курсор стоит в верхнем положении.
  //Если второе поле в столбце не используется то использовать как if (Column.Index = 5)  then, без проверки позиции курсора
  if (Column.Index = 5) and (xDBGrid1.CellCursorPos = ccpTop)  then
    if ED = nil then
      ED = TDBLookupComboBox.Create(Self);
    end;
    ED.Parent = TWinControl(Sender);
    ED.Visible = False;
    ED.Color = clLime;
    //ED.DataSource:=ALBUMS_DS;
    //ED.DataField:='ArtistId';
    //ED.ListSource:=ARTISTS_DS;
    //ED.KeyField:='ArtistId';
    //ED.ListField:='Name';
    ED.AutoComplete = True;
//    ED.AutoDropDown:=True;
//    ED.AutoSelect:=True;
    r = xDBGrid1.SelectedEditorRect;
    ED.Left = r.Left-2;
    ED.Top = r.Top-2;
    ED.Width = r.Width;
    ED.Height = r.Height;
    Editor = ED;
  end;
end; 


ps. Пример на Дизель-Паскале.
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 426
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Пред.

Вернуться в Компилятор / язык программирования

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

Рейтинг@Mail.ru