Страница 8 из 13
Re: Diesel Pascal
Добавлено: 28.10.2015 12: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 16: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 18: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 16:08:15
v-t-l
Спасибо! Все перечисленное заработало.
Но попытался раскрасить строки в xDBGrid в событии OnDrawColumnCell, а xDBGrid.Canvas не доступна и TxGridDrawState "не расшифровывается".
Re: Diesel Pascal
Добавлено: 30.10.2015 17:15:10
*Rik*
v-t-l писал(а):Спасибо! Все перечисленное заработало.
Но попытался раскрасить строки в xDBGrid в событии OnDrawColumnCell, а xDBGrid.Canvas не доступна и TxGridDrawState "не расшифровывается".
Раскрашивать строки скриптом из приложения Дизель-Паскаль, плохая затея. Это как минимум сделает невозможным отладку приложения. Можно придумать настраиваемый механизм раскраски. Я подумаю, может чего родится в ближайшие дни, а пока можно использовать отрисовку иконок в каком либо столбце, чтобы пользователь мог обратить внимание на определенные строки..
Re: Diesel Pascal
Добавлено: 31.10.2015 11:59:32
v-t-l
*Rik* писал(а):Раскрашивать строки скриптом из приложения Дизель-Паскаль, плохая затея. Это как минимум сделает невозможным отладку приложения. Можно придумать настраиваемый механизм раскраски. Я подумаю, может чего родится в ближайшие дни, а пока можно использовать отрисовку иконок в каком либо столбце, чтобы пользователь мог обратить внимание на определенные строки..
Да, я так и сделал, с иконками.
Еще раз спасибо. Раскраска строк - это не срочно.
Другое предложение: я понимаю, что TrayIcon - не ваш компонент, но он как-то не доработан - свойство Icons: TCustomImageList разработчики добавили, а выбор конкретного значка не предоставили (что-то вроде IconIndex). Включаем TrayIcon.Animate := True, потом False, и конкретный значок указать невозможно - остался тот, на котором остановилась анимация. В описании класса есть приватная переменная FAnimationStep, а стоило бы сделать свойство IconIndex. Может кто-нибудь повлиять на разработчиков Lazarus?

Re: Diesel Pascal
Добавлено: 03.11.2015 09:49:04
*Rik*
v-t-l писал(а):*Rik* писал(а):Раскрашивать строки скриптом из приложения Дизель-Паскаль, плохая затея. Это как минимум сделает невозможным отладку приложения. Можно придумать настраиваемый механизм раскраски. Я подумаю, может чего родится в ближайшие дни, а пока можно использовать отрисовку иконок в каком либо столбце, чтобы пользователь мог обратить внимание на определенные строки..
Да, я так и сделал, с иконками.
Еще раз спасибо. Раскраска строк - это не срочно.
Другое предложение: я понимаю что TrayIcon не ваш компонент, но он как-то не доработан - свойство Icons: TCustomImageList разработчики добавили, а выбор конкретного значка не предоставили (что-то вроде IconIndex). Включаем TrayIcon.Animate := True, потом False, и конкретный значок указать невозможно - остался тот, на котором остановилась анимация. В описании класса есть приватная переменная FAnimationStep, а стоило бы сделать свойство IconIndex. Может кто-нибудь повлиять на разработчиков Lazarus?

Скорее всего, что TrayIcon чей-то сторонний компонент, который просто включен в Lazarus. Вы можете попробовать самостоятельно сделать клон. Создайте новый компонент, скопипастите весь код TrayIcon туда, переименуйте класс и исправьте код так, как считаете нужным.. Такое, что работает не так как надо или чего-то недостает, тут встречается регулярно, не знаю как обходятся другие, но я периодически вынужден создавать такие клоны и исправлять функционал...
Re: Diesel Pascal
Добавлено: 03.11.2015 16:23:32
v-t-l
А есть ли в ДП возможность работы с регулярными выражениями? Модуль RegExpr?
Re: Diesel Pascal
Добавлено: 03.11.2015 16:56:02
*Rik*
v-t-l писал(а):А есть ли в ДП возможность работы с регулярными выражениями? Модуль RegExpr?
Нету. Я не то что не пользуюсь, я даже не знаю зачем мне это надо, я регулярные выражения обычно привык сам обрабатывать... Если Вы просвятите и это будет полезным в DP и употребимым, могу добавить..
Re: Diesel Pascal
Добавлено: 04.11.2015 10:00:26
v-t-l
Ну, в дизайнер и машину он уже вкомпилирован, только не доступен для скриптового языка.
А польза несомненна - сильно упрощает сложный поиск/проверку/извлечение данных из текстов.
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=163
Re: Diesel Pascal
Добавлено: 04.11.2015 13:16:34
*Rik*
Я на этой неделе класс TRegExpr добавлю..
Re: Diesel Pascal
Добавлено: 07.11.2015 13: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 10:20:20
v-t-l
За TRegExp спасибо!
А нельзя ли экспортировать ещё и модуль Synaser (для общения с разнообразным оборудованием, а не только с Атол)?
Re: Diesel Pascal
Добавлено: 09.02.2016 18:03:25
*Rik*
v-t-l писал(а):За TRegExp спасибо!
А нельзя ли экспортировать ещё и модуль Synaser (для общения с разнообразным оборудованием, а не только с Атол)?
Можно. Там TBlockSerial вроде, он нужен?
Добавить смогу только к концу недели...
Re: Diesel Pascal
Добавлено: 09.02.2016 18:29:55
v-t-l
*Rik* писал(а):Можно. Там TBlockSerial вроде, он нужен?
Он и сопутствующие константы и типы (и, если можно, функцию GetSerialPortNames) из модуля Synaser.

(И того и другого, и можно без хлеба. (с) Вини-Пух.

)
Заранее спасибо!