Страница 8 из 12

Re: Diesel Pascal

СообщениеДобавлено: 28.10.2015 13:02:14
v-t-l
1. В версии 1.9.0 в дизайнере при попытке вызова редактора свойства TZReadOnlyQuery.SQL возникает Access violation.
2.
Код: Выделить всё
var bmp: TBitmap;
    bmp := TBitmap.Create;
    Application.MessageBox('TrayIcon1.Icons.Count = ' + IntToStr(TrayIcon1.Icons.Count), 'DEBUG', MB_OK);  // TrayIcon1.Icons.Count = 2
    TrayIcon1.Icons.GetBitmap(0, bmp);  // Access violation
    TrayIcon1.Icon.Assign(bmp);

3. Хотелось бы получить доступ к ParamStr() и ParamCount().

Re: Diesel Pascal

СообщениеДобавлено: 28.10.2015 17:07:41
*Rik*
v-t-l писал(а):1. В версии 1.9.0 в дизайнере при попытке вызова редактора свойства TZReadOnlyQuery.SQL возникает Access violation.
2.
Код: Выделить всё
var bmp: TBitmap;
    bmp := TBitmap.Create;
    Application.MessageBox('TrayIcon1.Icons.Count = ' + IntToStr(TrayIcon1.Icons.Count), 'DEBUG', MB_OK);  // TrayIcon1.Icons.Count = 2
    TrayIcon1.Icons.GetBitmap(0, bmp);  // Access violation
    TrayIcon1.Icon.Assign(bmp);

3. Хотелось бы получить доступ к ParamStr() и ParamCount().


Потребуется некоторое время, как сделаю напишу..

Re: Diesel Pascal

СообщениеДобавлено: 29.10.2015 19:29:47
*Rik*
v-t-l писал(а):1. В версии 1.9.0 в дизайнере при попытке вызова редактора свойства TZReadOnlyQuery.SQL возникает Access violation.
2.
Код: Выделить всё
var bmp: TBitmap;
    bmp := TBitmap.Create;
    Application.MessageBox('TrayIcon1.Icons.Count = ' + IntToStr(TrayIcon1.Icons.Count), 'DEBUG', MB_OK);  // TrayIcon1.Icons.Count = 2
    TrayIcon1.Icons.GetBitmap(0, bmp);  // Access violation
    TrayIcon1.Icon.Assign(bmp);

3. Хотелось бы получить доступ к ParamStr() и ParamCount().

Изменения внес, должно работать.

По поводу пункта 3.
Приложение загружается в кросс-машину через передаваемый параметр, поэтому ParamStr(1) будет содержать путь к приложению, кроме этого, при запуске из под дизайнера через параметры в кросс-машину передается некоторая системная и отладочная информация.

Re: Diesel Pascal

СообщениеДобавлено: 30.10.2015 17:08:15
v-t-l
Спасибо! Все перечисленное заработало.
Но попытался раскрасить строки в xDBGrid в событии OnDrawColumnCell, а xDBGrid.Canvas не доступна и TxGridDrawState "не расшифровывается".

Re: Diesel Pascal

СообщениеДобавлено: 30.10.2015 18:15:10
*Rik*
v-t-l писал(а):Спасибо! Все перечисленное заработало.
Но попытался раскрасить строки в xDBGrid в событии OnDrawColumnCell, а xDBGrid.Canvas не доступна и TxGridDrawState "не расшифровывается".

Раскрашивать строки скриптом из приложения Дизель-Паскаль, плохая затея. Это как минимум сделает невозможным отладку приложения. Можно придумать настраиваемый механизм раскраски. Я подумаю, может чего родится в ближайшие дни, а пока можно использовать отрисовку иконок в каком либо столбце, чтобы пользователь мог обратить внимание на определенные строки..

Re: Diesel Pascal

СообщениеДобавлено: 31.10.2015 12:59:32
v-t-l
*Rik* писал(а):Раскрашивать строки скриптом из приложения Дизель-Паскаль, плохая затея. Это как минимум сделает невозможным отладку приложения. Можно придумать настраиваемый механизм раскраски. Я подумаю, может чего родится в ближайшие дни, а пока можно использовать отрисовку иконок в каком либо столбце, чтобы пользователь мог обратить внимание на определенные строки..

Да, я так и сделал, с иконками.
Еще раз спасибо. Раскраска строк - это не срочно.

Другое предложение: я понимаю, что TrayIcon - не ваш компонент, но он как-то не доработан - свойство Icons: TCustomImageList разработчики добавили, а выбор конкретного значка не предоставили (что-то вроде IconIndex). Включаем TrayIcon.Animate := True, потом False, и конкретный значок указать невозможно - остался тот, на котором остановилась анимация. В описании класса есть приватная переменная FAnimationStep, а стоило бы сделать свойство IconIndex. Может кто-нибудь повлиять на разработчиков Lazarus? :wink:

Re: Diesel Pascal

СообщениеДобавлено: 03.11.2015 10:49:04
*Rik*
v-t-l писал(а):
*Rik* писал(а):Раскрашивать строки скриптом из приложения Дизель-Паскаль, плохая затея. Это как минимум сделает невозможным отладку приложения. Можно придумать настраиваемый механизм раскраски. Я подумаю, может чего родится в ближайшие дни, а пока можно использовать отрисовку иконок в каком либо столбце, чтобы пользователь мог обратить внимание на определенные строки..

Да, я так и сделал, с иконками.
Еще раз спасибо. Раскраска строк - это не срочно.

Другое предложение: я понимаю что TrayIcon не ваш компонент, но он как-то не доработан - свойство Icons: TCustomImageList разработчики добавили, а выбор конкретного значка не предоставили (что-то вроде IconIndex). Включаем TrayIcon.Animate := True, потом False, и конкретный значок указать невозможно - остался тот, на котором остановилась анимация. В описании класса есть приватная переменная FAnimationStep, а стоило бы сделать свойство IconIndex. Может кто-нибудь повлиять на разработчиков Lazarus? :wink:

Скорее всего, что TrayIcon чей-то сторонний компонент, который просто включен в Lazarus. Вы можете попробовать самостоятельно сделать клон. Создайте новый компонент, скопипастите весь код TrayIcon туда, переименуйте класс и исправьте код так, как считаете нужным.. Такое, что работает не так как надо или чего-то недостает, тут встречается регулярно, не знаю как обходятся другие, но я периодически вынужден создавать такие клоны и исправлять функционал...

Re: Diesel Pascal

СообщениеДобавлено: 03.11.2015 17:23:32
v-t-l
А есть ли в ДП возможность работы с регулярными выражениями? Модуль RegExpr?

Re: Diesel Pascal

СообщениеДобавлено: 03.11.2015 17:56:02
*Rik*
v-t-l писал(а):А есть ли в ДП возможность работы с регулярными выражениями? Модуль RegExpr?

Нету. Я не то что не пользуюсь, я даже не знаю зачем мне это надо, я регулярные выражения обычно привык сам обрабатывать... Если Вы просвятите и это будет полезным в DP и употребимым, могу добавить..

Re: Diesel Pascal

СообщениеДобавлено: 04.11.2015 11:00:26
v-t-l
Ну, в дизайнер и машину он уже вкомпилирован, только не доступен для скриптового языка.
А польза несомненна - сильно упрощает сложный поиск/проверку/извлечение данных из текстов.
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=163

Re: Diesel Pascal

СообщениеДобавлено: 04.11.2015 14:16:34
*Rik*
v-t-l писал(а):Ну, в дизайнер и машину он уже вкомпилирован, только не доступен для скриптового языка.
А польза несомненна - сильно упрощает сложный поиск/проверку/извлечение данных из текстов.
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=163

Я на этой неделе класс TRegExpr добавлю..

Re: Diesel Pascal

СообщениеДобавлено: 07.11.2015 14:04:06
*Rik*
v-t-l писал(а):А есть ли в ДП возможность работы с регулярными выражениями? Модуль RegExpr?

v-t-l
Я добавил класс TRegExp и 4 функции их модуля RegExpr: ExecRegExpr, SplitRegExpr, ReplaceRegExpr, RegExprSubExpressions. Пока для тестирования, работоспособность не проверял, но предполагаю, что могут возникнуть проблемы, т.к. RegExpr похоже рассчитан на работу с однобайтными символами и если в обрабатывемом тексте будет присутствовать русский текст в UTF8, возникнут проблемы...

Re: Diesel Pascal

СообщениеДобавлено: 09.02.2016 11:20:20
v-t-l
За TRegExp спасибо!
А нельзя ли экспортировать ещё и модуль Synaser (для общения с разнообразным оборудованием, а не только с Атол)?

Re: Diesel Pascal

СообщениеДобавлено: 09.02.2016 19:03:25
*Rik*
v-t-l писал(а):За TRegExp спасибо!
А нельзя ли экспортировать ещё и модуль Synaser (для общения с разнообразным оборудованием, а не только с Атол)?

Можно. Там TBlockSerial вроде, он нужен?

Добавить смогу только к концу недели...

Re: Diesel Pascal

СообщениеДобавлено: 09.02.2016 19:29:55
v-t-l
*Rik* писал(а):Можно. Там TBlockSerial вроде, он нужен?

Он и сопутствующие константы и типы (и, если можно, функцию GetSerialPortNames) из модуля Synaser. :) (И того и другого, и можно без хлеба. (с) Вини-Пух. :D )
Заранее спасибо!