Diesel Pascal

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

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

Re: Diesel Pascal

Сообщение v-t-l » 28.10.2015 13:02:14

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().
v-t-l
энтузиаст
 
Сообщения: 733
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Diesel Pascal

Сообщение *Rik* » 28.10.2015 17:07:41

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().


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

Re: Diesel Pascal

Сообщение *Rik* » 29.10.2015 19:29:47

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) будет содержать путь к приложению, кроме этого, при запуске из под дизайнера через параметры в кросс-машину передается некоторая системная и отладочная информация.
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Diesel Pascal

Сообщение v-t-l » 30.10.2015 17:08:15

Спасибо! Все перечисленное заработало.
Но попытался раскрасить строки в xDBGrid в событии OnDrawColumnCell, а xDBGrid.Canvas не доступна и TxGridDrawState "не расшифровывается".
v-t-l
энтузиаст
 
Сообщения: 733
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Diesel Pascal

Сообщение *Rik* » 30.10.2015 18:15:10

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

Раскрашивать строки скриптом из приложения Дизель-Паскаль, плохая затея. Это как минимум сделает невозможным отладку приложения. Можно придумать настраиваемый механизм раскраски. Я подумаю, может чего родится в ближайшие дни, а пока можно использовать отрисовку иконок в каком либо столбце, чтобы пользователь мог обратить внимание на определенные строки..
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Diesel Pascal

Сообщение v-t-l » 31.10.2015 12:59:32

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

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

Другое предложение: я понимаю, что TrayIcon - не ваш компонент, но он как-то не доработан - свойство Icons: TCustomImageList разработчики добавили, а выбор конкретного значка не предоставили (что-то вроде IconIndex). Включаем TrayIcon.Animate := True, потом False, и конкретный значок указать невозможно - остался тот, на котором остановилась анимация. В описании класса есть приватная переменная FAnimationStep, а стоило бы сделать свойство IconIndex. Может кто-нибудь повлиять на разработчиков Lazarus? :wink:
Последний раз редактировалось v-t-l 09.02.2016 19:37:55, всего редактировалось 1 раз.
v-t-l
энтузиаст
 
Сообщения: 733
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Diesel Pascal

Сообщение *Rik* » 03.11.2015 10:49:04

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

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

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

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

Re: Diesel Pascal

Сообщение v-t-l » 03.11.2015 17:23:32

А есть ли в ДП возможность работы с регулярными выражениями? Модуль RegExpr?
v-t-l
энтузиаст
 
Сообщения: 733
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Diesel Pascal

Сообщение *Rik* » 03.11.2015 17:56:02

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

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

Re: Diesel Pascal

Сообщение v-t-l » 04.11.2015 11:00:26

Ну, в дизайнер и машину он уже вкомпилирован, только не доступен для скриптового языка.
А польза несомненна - сильно упрощает сложный поиск/проверку/извлечение данных из текстов.
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=163
v-t-l
энтузиаст
 
Сообщения: 733
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Diesel Pascal

Сообщение *Rik* » 04.11.2015 14:16:34

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

Я на этой неделе класс TRegExpr добавлю..
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Diesel Pascal

Сообщение *Rik* » 07.11.2015 14:04:06

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

v-t-l
Я добавил класс TRegExp и 4 функции их модуля RegExpr: ExecRegExpr, SplitRegExpr, ReplaceRegExpr, RegExprSubExpressions. Пока для тестирования, работоспособность не проверял, но предполагаю, что могут возникнуть проблемы, т.к. RegExpr похоже рассчитан на работу с однобайтными символами и если в обрабатывемом тексте будет присутствовать русский текст в UTF8, возникнут проблемы...
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Diesel Pascal

Сообщение v-t-l » 09.02.2016 11:20:20

За TRegExp спасибо!
А нельзя ли экспортировать ещё и модуль Synaser (для общения с разнообразным оборудованием, а не только с Атол)?
v-t-l
энтузиаст
 
Сообщения: 733
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Diesel Pascal

Сообщение *Rik* » 09.02.2016 19:03:25

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

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

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

Re: Diesel Pascal

Сообщение v-t-l » 09.02.2016 19:29:55

*Rik* писал(а):Можно. Там TBlockSerial вроде, он нужен?

Он и сопутствующие константы и типы (и, если можно, функцию GetSerialPortNames) из модуля Synaser. :) (И того и другого, и можно без хлеба. (с) Вини-Пух. :D )
Заранее спасибо!
v-t-l
энтузиаст
 
Сообщения: 733
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Пред.След.

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

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

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

Рейтинг@Mail.ru