diff --git a/components/rx/docs/WhatsNew.rus.txt b/components/rx/docs/WhatsNew.rus.txt index 660c84448..0c083f4b5 100644 --- a/components/rx/docs/WhatsNew.rus.txt +++ b/components/rx/docs/WhatsNew.rus.txt @@ -53,6 +53,7 @@ NormalizeDirectoryName - приводит все разделитили каталогов в имени файла к тому виду, как принятов данной ОС. + У TRxColumnFooter доступно свойство NumericValue - содержит числовое представление значения итогов по столбцу. Имеет смысл только для ValueType = fvtSum, fvtAvg, fvtMax, fvtMin + + Новая компонента TRxVersionInfo - обёртка над вызовами функция чтения ресурсов файла 22.05.2008 - версия 2.0.0.136 (svn revision 100) + У объекта TRxCustomDBLookupCombo введён контроль на CircularDataLink + У объекта TRxCustomDBLookupCombo ускорена отрисовка данных diff --git a/components/rx/docs/makehtml.sh b/components/rx/docs/makehtml.sh new file mode 100755 index 000000000..f54d91283 --- /dev/null +++ b/components/rx/docs/makehtml.sh @@ -0,0 +1,8 @@ +#!/bin/bash +#надо скопировать rx.inc в текущий каталог, иначе не соберём (глюк fpdoc) +cp ../rx.inc rx.inc +fpdoc --package=rxfpc --format=html -I/usr/local/share/lazarus/components/rxnew \ + --input=../rxversinfo.pas --descr=rxfpc.xml \ + --input=../rxdbgrid.pas --descr=rxfpc.xml \ + --input=../pickdate.pas --descr=rxfpc.xml + diff --git a/components/rx/docs/rxfpc.xml b/components/rx/docs/rxfpc.xml index d81d3e933..a72d622ed 100644 --- a/components/rx/docs/rxfpc.xml +++ b/components/rx/docs/rxfpc.xml @@ -57,13 +57,15 @@ Наследник от стандартного TDBGrid с дополнительными возможностями - Компонента TRxDBGrid предназначена, как и стандартная компонента TDBGrid, для отображения данных таблиц БД или результатов запросов в табличной форме. Являясь наследником TDBGrid, компонента TRxDBGrid имеет все те же свойства и методы, и, кроме того, некоторые свойства, находящиеся у TDBGrid в секции protected, вынесены в секцию public. Это такие свойства, как Col, Row, LeftCol, Canvas. -Другие отличия от TDBGrid: -- BLOB-поля базы данных, такие как графические изображения, текстовые мемо-поля, другие BLOB'ы могут отображаться в таблице в виде пиктограмм при установленном в True значении свойства ShowGlyphs; -- вы можете изменить цвет шрифта и фона любой ячейки таблицы (либо любой ее строки или столбца) в зависимости от значения поля или имени поля набора данных, определив обработчик события OnGetCellParams; -- имеются методы SaveLayout и RestoreLayout для сохранения и восстановления порядка и ширин столбцов компоненты TRxDBGrid в INI-файле (или в Registry для Delphi 2.0). Вы можете также автоматически сохранять и восстанавливать эти параметры, присвоив значение свойству IniStorage. -- заголовки колонок Grid-а могут быть с помощью свойства TitleButtons использованы как кнопки, например, для изменения порядка сортировки отображаемых данных. -- вы можете зафиксировать несколько первых колонок в Grid-е с помощью свойства FixedCols. + +

Компонента TRxDBGrid предназначена, как и стандартная компонента TDBGrid, для отображения данных таблиц БД или результатов запросов в табличной форме. Являясь наследником TDBGrid, компонента TRxDBGrid имеет все те же свойства и методы, и, кроме того, некоторые свойства, находящиеся у TDBGrid в секции protected, вынесены в секцию public. Это такие свойства, как Col, Row, LeftCol, Canvas.

+

Другие отличия от TDBGrid:

+

- BLOB-поля базы данных, такие как графические изображения, текстовые мемо-поля, другие BLOB'ы могут отображаться в таблице в виде пиктограмм при установленном в True значении свойства ShowGlyphs;

+

- вы можете изменить цвет шрифта и фона любой ячейки таблицы (либо любой ее строки или столбца) в зависимости от значения поля или имени поля набора данных, определив обработчик события OnGetCellParams;

+

- имеются методы SaveLayout и RestoreLayout для сохранения и восстановления порядка и ширин столбцов компоненты TRxDBGrid в INI или XML-файле. Вы можете также автоматически сохранять и восстанавливать эти параметры, присвоив значение свойству IniStorage.

+

- заголовки колонок Grid-а могут быть с помощью свойства TitleButtons использованы как кнопки, например, для изменения порядка сортировки отображаемых данных.

+

- вы можете зафиксировать несколько первых колонок в Grid-е с помощью свойства FixedCols.

+
@@ -101,9 +103,11 @@ property IniStorage: TFormPlacement; - Свойство позволяет автоматически сохранять специфические установки компоненты в INI-файле или (для 32-разрядной версии) в системном регистре при помощи компонент TFormPlacement или TFormStorage. -При задании значения свойству IniStorage (и непустом имени компоненты), некоторые ее настройки, которые не являются published-свойствами и не могут быть заданы для TFormStorage напрямую, будут сохраняться и восстанавливаться одновременни с другими значениями, заданными для соответствующей компоненты TFormPlacement (TFormStorage). -Для TSpeedbar - это расположение кнопок на панели и положение самой панели, для TMRUManager - список строк, для TRxDBGrid - ширины и положение полей в таблице и т.д. Все компоненты, имеющие свойство IniStorage, имеют также методы для сохранения и восстановления их настроек вручную, такие как Save/RestoreLayout и т.д. + +

Свойство позволяет автоматически сохранять специфические установки компоненты в INI-файле или (для 32-разрядной версии) в системном регистре при помощи компонент TFormPlacement или TFormStorage.

+

При задании значения свойству IniStorage (и непустом имени компоненты), некоторые ее настройки, которые не являются published-свойствами и не могут быть заданы для TFormStorage напрямую, будут сохраняться и восстанавливаться одновременни с другими значениями, заданными для соответствующей компоненты TFormPlacement (TFormStorage).

+

Для TSpeedbar - это расположение кнопок на панели и положение самой панели, для TMRUManager - список строк, для TRxDBGrid - ширины и положение полей в таблице и т.д. Все компоненты, имеющие свойство IniStorage, имеют также методы для сохранения и восстановления их настроек вручную, такие как Save/RestoreLayout и т.д.

+
@@ -524,6 +528,12 @@ TRxDBCalcEdit является наследником TDBCalcEdit и имеет + + + + + + Count @@ -547,6 +557,12 @@ TRxDBCalcEdit является наследником TDBCalcEdit и имеет + + + + + + Execute и по содержимому которого будет произведено заполнение массива Files @@ -942,7 +958,13 @@ Description - + + +

Свойство позволяет автоматически сохранять специфические установки компоненты в INI-файле или (для 32-разрядной версии) в системном регистре при помощи компонент TFormPlacement или TFormStorage.

+

При задании значения свойству IniStorage (и непустом имени компоненты), некоторые ее настройки, которые не являются published-свойствами и не могут быть заданы для TFormStorage напрямую, будут сохраняться и восстанавливаться одновременни с другими значениями, заданными для соответствующей компоненты TFormPlacement (TFormStorage).

+

Для TSpeedbar - это расположение кнопок на панели и положение самой панели, для TMRUManager - список строк, для TRxDBGrid - ширины и положение полей в таблице и т.д. Все компоненты, имеющие свойство IniStorage, имеют также методы для сохранения и восстановления их настроек вручную, такие как Save/RestoreLayout и т.д.

+
+
@@ -1087,7 +1109,10 @@ Description property AlarmSecond: Byte; Свойство задает (совместно со значениями AlarmHour и AlarmMinute) время срабатывания "будильника", т.е. время, в которое произойдет событие OnAlarm при установке в True свойства AlarmEnabled. - + + AutoSize Property + Свойство определяет, будет ли размер автоматически изменяться размер шрифта, которым отображается время в цифровом виде (значение ShowMode равно scDigital), при изменении размера элемента управления TRxClock. + @@ -1622,12 +1647,125 @@ FileName - Полное имя файла.

function NormalizeDirectoryName( + + + + + + const DirName: + + + + + + string): + + + + + + string;

Функция проверяет все разделители каталогов в указанном имени файла/каталога и, если нужно, меняет их на значение константы + + + + + + DirectorySeparator.
+ + + Класс TRxVersionInfo предоставляет доступ к информации о версии программы + +

Класс TRxVersionInfo предоставляет доступ к информации о версии программы.

+

После создания объекта этого класса вы можете получить доступ к информации из ресурса VERSIONINFO через свойства (только-для-чтения) объекта, если чтение ресурса из специфицированного файла окончилось успешно. Вы можете проверить результат чтения информации из файла по значению свойства Valid - значение True соответствует успешному чтению данных. При изменении свойства, задающего имя исполняемого файла с ресурсом VERSIONINFO, происходит обновление данных объекта. Успешность обновления можно также проверить по значению свойства Valid. +

+

Данный класс предоставляет информацию о наиболее часто используемых свойствах скомпилируемого исполняемого модуля. Фактически является надстройкой над пакетом fpc fcl-res +

+
+
+ Модуль RxVersInfo содержит инструменты доступа к информации о версии программы + Модуль RxVersInfo содержит инструменты доступа к информации о версии программы + + procedure LoadFromFile(const AFileName:string); + Процедура загружает данные о версии указанного исполняемого модуля + + + property FileName: string + Свойство указываеет + + + Создаёт объект и загружает данные о версии программы вызовом метода LoadFromFile + + + + + + property Valid: Boolean; + Свойство Valid (только-для-чтения) позволяет вам определить результат чтения данных с информацией о версии из специфицированного исполняемого файла. Значение True говорит о том, что чтение данных прошло успешно, в противном случае Valid = False. + + + Свойство задает имя исполняемого файла (EXE или DLL), из которого считывается информация о версии. При изменении значения свойства FileName происходит чтение ресурса VERSIONINFO из указанного файла. Если чтение данных окончилось успешно, свойство Valid (только чтение) устанавливается в значение True, иначе - в False. + + + + Значение свойства представляет собой указатель на массив идентификаторов языка (language) и набора символов (character-set), используемых при чтении данных из ресурса с информацией о версии. + + + Идентификатор языка (language), используемого при чтении информации из ресурса. + + + Идентификатор набора символов (character-set), используемого при чтении информации из ресурса + + + Свойство определяет номер версии файла как длинное целое. + + + Свойство позволяет получить строку из информации о версии, обозначенную как комментарий. + + + Свойство для доступа к строке из иформации о версии, специфицирующей имя компании-производителя. + + + Свойство для доступа к описанию исполнимого файла из информации о версии. + + + Свойство для доступа к строке, содержащей номер версии файла, полученной из ресурса типа VERSIONINFO. + + + Свойство для доступа к строке, содержашей "внутреннее" имя файла, если оно присутствует в информации о версии. Это, например, может быть имя модуля, если файл является динамически загружаемой библиотекой (DLL). + + + Свойство для доступа к строке из иформации о версии, специфицирующей авторские права. + + + Свойство для доступа к строке из иформации о версии, специфицирующей товарные знаки и зарегистрированные товарные знаки, применимые к файлу. + + + Свойство для доступа к строке из иформации о версии, специфицирующей оригинальное (первоначальное) имя файла (не включая путь). Эта информация может понадобиться, если файл переименован пользователем. + + + Свойство для доступа к строке, содержащей номер версии продукта, полученной из ресурса типа VERSIONINFO, например "3.10" или "5.00.RC2". + + + Свойство для доступа к имени продукта из информации о версии. Распространение продукта обычно производится с этим именем. + + + Свойство для доступа к строке из иформации о версии, содержащей частную (конфиденциальную) информацию о предварительной версии продукта. Как правило, в окончательных версиях исполняемых файлов такая информация отсутствует. + + + Свойство для доступа к строке из иформации о версии, содержащей частную (конфиденциальную) информацию о предварительной версии продукта. Как правило, в окончательных версиях исполняемых файлов такая информация отсутствует. + + + Values Property + Свойство предоставляет доступ к любой текстовой информации из ресурса VERSIONINFO. Считываемая строка задается параметром Name. + + +
diff --git a/components/rx/images/TRxVersionInfo.png b/components/rx/images/TRxVersionInfo.png new file mode 100644 index 000000000..f2e456a1e Binary files /dev/null and b/components/rx/images/TRxVersionInfo.png differ diff --git a/components/rx/images/mk_res.bat b/components/rx/images/mk_res.bat index 49c11c1b9..1d652a878 100644 --- a/components/rx/images/mk_res.bat +++ b/components/rx/images/mk_res.bat @@ -1,2 +1,2 @@ del rx.lrs -D:\lazarus\tools\lazres.exe rx.lrs TDBDateEdit.xpm TRXLookUpEdit.xpm TRxDBCalcEdit.xpm TRxDBLookupCombo.xpm TRxDBGrid.xpm TDualListDialog.xpm TFolderLister.xpm TRxMemoryData.xpm TCURRENCYEDIT.xpm TRXSWITCH.xpm TRXDICE.xpm TRXDBCOMBOBOX.xpm ttoolpanel.xpm trxxpmanifest.xpm TPAGEMANAGER.xpm TRXAPPICON.xpm TSECRETPANEL.xpm TRXLABEL.xpm tautopanel.xpm TRxCalendarGrid.xpm TRxDateEdit.bmp TRxClock.bmp TRxSpeedButton.bmp TRxSpinButton.png TRxSpinEdit.png TRXDBSpinEdit.png TRxTimeEdit.png TRxDBTimeEdit.png TRxDBProgressBar.png TRxDBTrackBar.png TRxLoginDialog.png +D:\lazarus\tools\lazres.exe rx.lrs TDBDateEdit.xpm TRXLookUpEdit.xpm TRxDBCalcEdit.xpm TRxDBLookupCombo.xpm TRxDBGrid.xpm TDualListDialog.xpm TFolderLister.xpm TRxMemoryData.xpm TCURRENCYEDIT.xpm TRXSWITCH.xpm TRXDICE.xpm TRXDBCOMBOBOX.xpm ttoolpanel.xpm trxxpmanifest.xpm TPAGEMANAGER.xpm TRXAPPICON.xpm TSECRETPANEL.xpm TRXLABEL.xpm tautopanel.xpm TRxCalendarGrid.xpm TRxDateEdit.bmp TRxClock.bmp TRxSpeedButton.bmp TRxSpinButton.png TRxSpinEdit.png TRXDBSpinEdit.png TRxTimeEdit.png TRxDBTimeEdit.png TRxDBProgressBar.png TRxDBTrackBar.png TRxLoginDialog.png TRxVersionInfo.png diff --git a/components/rx/images/mk_res.sh b/components/rx/images/mk_res.sh index 2f29b1358..5015637cf 100755 --- a/components/rx/images/mk_res.sh +++ b/components/rx/images/mk_res.sh @@ -1,2 +1,2 @@ rm rx.lrs -/usr/local/share/lazarus/tools/lazres rx.lrs TDBDateEdit.xpm TRXLookUpEdit.xpm TRxDBCalcEdit.xpm TRxDBLookupCombo.xpm TRxDBGrid.xpm TDualListDialog.xpm TFolderLister.xpm TRxMemoryData.xpm TCURRENCYEDIT.xpm TRXSWITCH.xpm TRXDICE.xpm TRXDBCOMBOBOX.xpm ttoolpanel.xpm trxxpmanifest.xpm TPAGEMANAGER.xpm TRXAPPICON.xpm TSECRETPANEL.xpm TRXLABEL.xpm tautopanel.xpm TRxCalendarGrid.xpm TRxDateEdit.png TRxClock.png TRxSpeedButton.png TRxSpinButton.png TRxSpinEdit.png TRXDBSpinEdit.png TRxTimeEdit.png TRxDBTimeEdit.png TRxDBProgressBar.png TRxDBTrackBar.png TRxLoginDialog.png \ No newline at end of file +/usr/local/share/lazarus/tools/lazres rx.lrs TDBDateEdit.xpm TRXLookUpEdit.xpm TRxDBCalcEdit.xpm TRxDBLookupCombo.xpm TRxDBGrid.xpm TDualListDialog.xpm TFolderLister.xpm TRxMemoryData.xpm TCURRENCYEDIT.xpm TRXSWITCH.xpm TRXDICE.xpm TRXDBCOMBOBOX.xpm ttoolpanel.xpm trxxpmanifest.xpm TPAGEMANAGER.xpm TRXAPPICON.xpm TSECRETPANEL.xpm TRXLABEL.xpm tautopanel.xpm TRxCalendarGrid.xpm TRxDateEdit.png TRxClock.png TRxSpeedButton.png TRxSpinButton.png TRxSpinEdit.png TRXDBSpinEdit.png TRxTimeEdit.png TRxDBTimeEdit.png TRxDBProgressBar.png TRxDBTrackBar.png TRxLoginDialog.png TRxVersionInfo.png \ No newline at end of file diff --git a/components/rx/images/rx.lrs b/components/rx/images/rx.lrs index ef3ef6353..b68e99807 100644 --- a/components/rx/images/rx.lrs +++ b/components/rx/images/rx.lrs @@ -322,8 +322,8 @@ LazarusResources.Add('TRxDateEdit','PNG',[ +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0','#144#198'\'#0#0#0#1'tRNS'#0'@'#230#216'f'#0#0#0#136'IDATx'#218 +'u'#145#139#10#128' '#12'E7'#130#22#132#254#255'o'#166#4'M'#8#155'R'#168'k*l' - +'x'#207'^*'#194'd!'#144'%s'#1#233#175#251#163#2#223#2#233'u'#192'b3Z'#128 - +#129'z'#16't'#151#252#1#31#246#166#158'>T@e<#c'#19''#161#186'G~'#5#194'!' + +'x'#207'^*'#194'd!'#144'%s'#1#233#175#251#163#2#223#2#233'u'#127#192'b3Z'#128 + +#129'z'#16't'#151#252#1#31#246#166#158'>T@e<#c'#19#127#161#186'G~'#5#194'!' +#137'z@'#220#233#3#232'+)'#16#29'D98'#13#162'H'#194#166#25'+Y'#0#170'5'#128 +#188'V2z'#128#179'K'#217#227#242'r'#203#134'b'#238#225#230#147#183#210#31#159 +'Ud['#15'h'#23'Z'#25#23#189'C'#28#0#0#0#0'IEND'#174'B`'#130 @@ -456,27 +456,27 @@ LazarusResources.Add('TRxSpinEdit','PNG',[ LazarusResources.Add('TRXDBSpinEdit','PNG',[ #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#6#0#0#0#224'w='#248#0 +#0#0#9'pHYs'#0#0#14#156#0#0#14#156#1#7#148'S'#221#0#0#1#230'IDATH'#137#205 - +#148#193'j'#19'Q'#24#133#191'2'#142'+)}'#129#190'D'#23#226'"P_A'#220#187#200 - +'n'#210#216'M'#7#178'(C'#9']T"*'#212'd#]'#248#12'n'#5#145','#220#139'o'#224 - +#170#22#196#166#134#218'af'#174#139#206#157#220#153';'#153#220#22#4#15#4#238 - +''#239#253#207#185'9'#255'a'#224#31'C'#244'"'#12'C'#165#215#211#233'T@'#169 - +#230#150#178'U'#218#207#13#132'a'#168#148#162#252#153'b'#205'X'''#222'B'#190 - +'JD)'#147#212']'#192#3#232#247#195#202'f'#189#6#16#145#194'6Mn'#174'm'#232#7 - +#249#0#147#201#180'BZ'#175'M'#153'*'#233#234'9'#220'<'#168#16#208#164'n'#208 - +'"nC'#22#237#181')'#160'_'#191#189#253#208'Q'#180#25#189#222'3i'#181#232#219 - +#215#217#157#201#15#15'cz'#189'5'#22#189'z'#243#206#218'K'#146#132' '#8#0#200 - +#178#12'gh'#221'Q'#179'1'#243'_'#223#129'B'#160#223#15#27'-jB'#16#4#229#4 - +#252#157'!'#217#231#23#214#29#233'F\|x'#190#20'Xe'#209#163#193#167'J'#227#151 - +#147#199#0#228#10':'#197#136#207#206#23#0'D'#251#3#198'/O,'#177'V'#139'4a]' - +#168#227'-'#215#151#243#5#163#209#176#20#137#227'c['#160#205'"M'#174#197#234 - +#184#248#249#155#189#221#131'JmB'#160#250#161#211'x'#253'vB '#235#5#164#27'Y' - +'{z'#200#27#155'['#226#129#157'wWr'#23#148'3'#184'/a\'#196#178#227#216',' - +#221#200'-E'#26'JA'#206'2!.8;_'#16#237#15#202#186#158'$'#207',D '#184#5'9' - +#220#164'H'''''#142#143#185#156'/*'#231#149''#224#145#146#233#173'|'#233'}Z' - +#156#231')x'#2#190#225#161'N'#205#222#238#129#149' K@'#169#28'H'#16#229#225 - +'y>Y'#14'H'#138#200#21#29#30#212'nC:'#27#225'wc'#139#244#207#199'#'#174#175 - +'~'#0'ELOO'#223#171#167'O'#238#158#148'U'#216#216#220#186#165#225#255'#'#254 - +#2#182'2'#241'd'#141']'#3'd'#0#0#0#0'IEND'#174'B`'#130 + +#148#193'j'#19'Q'#24#133#191#127'2'#142'+)}'#129#190'D'#23#226'"P_A'#220#187 + +#200'n'#210#216'M'#7#178'(C'#9']T"*'#212'd#]'#248#12'n'#5#145','#220#139'o' + +#224#170#22#196#166#134#218'af'#174#139#206#157#220#153';'#153#220#22#4#15#4 + +#238#127#239#253#207#185'9'#255'a'#224#31'C'#244'"'#12'C'#165#215#211#233'T@' + +#169#230#150#178'U'#218#207#13#132'a'#168#148#162#252#153'b'#205'X'''#222'B' + +#190'JD)'#147#212']'#192#3#232#247#195#202'f'#189#6#16#145#194'6Mn'#174'm' + +#232#7#249#0#147#201#180'BZ'#175'M'#153'*'#233#234'9'#220'<'#168#16#208#164 + +'n'#208'"nC'#22#237#181')'#160'_'#191#189#253#208'Q'#180#25#189#222'3i'#181 + +#232#219#215#217#157#201#15#15'cz'#189'5'#22#189'z'#243#206#218'K'#146#132' ' + +#8#0#200#178#12#127'gh'#221'Q'#179'1'#243'_'#223#129'B'#160#223#15#27'-jB'#16 + +#4#229#4#252#157'!'#217#231#23#214#29#233'F\|x'#190#20'Xe'#209#163#193#167'J' + +#227#151#147#199#0#228#10':'#197#136#207#206#23#0'D'#251#3#198'/O,'#177'V' + +#139'4a]'#168#227'-'#215#151#243#5#163#209#176#20#137#227'c['#160#205'"M'#174 + +#197#234#184#248#249#155#189#221#131'JmB'#160#250#161#211'x'#253'vB '#235#5 + +#164#27'Y{z'#200#27#155'['#226#129#157'wWr'#23#148'3'#184#127'/a\'#196#178 + +#227#216','#221#200'-E'#26'JA'#206'2!.8;_'#16#237#15#202#186#158'$'#207',D ' + +#184#5'9'#220#164'H'''''#142#143#185#156'/*'#231#149#127#224#145#146#233#173 + +'|'#233'}Z'#156#231')x'#2#190#225#161'N'#205#222#238#129#149' K@'#169#28'H' + +#16#229#225'y>Y'#14'H'#138#200#21#29#30#212'nC:'#27#225'wc'#139#244#207#199 + +'#'#174#175'~'#0'ELOO'#223#171#167'O'#238#158#148'U'#216#216#220#186#165#225 + +#255'#'#254#2#182'2'#241'd'#141']'#3'd'#0#0#0#0'IEND'#174'B`'#130 ]); LazarusResources.Add('TRxTimeEdit','PNG',[ #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#6#0#0#0#224'w='#248#0 @@ -515,9 +515,9 @@ LazarusResources.Add('TRxDBTimeEdit','PNG',[ +#10#160#251'IX'#174'j'#140'3'#223#202#208':'#0#157'j'#142#150#233'n'#247#141 +#178',]'#224#246#203#128#219'6'#7'd'#202#155#135#152#136#191#7#128#253'y ' +#169#0'V*9'#7#182#146#220'<'#184'e'#10#28'|'#13#179#141#10'{c'#141'1I'#1#224 - +'p'#162'%'#171'H'#161#21#232'='#213#138'Xv)'#12'M"'#204'@B'#18'SYx'#237#147 - +#206'd'#191#2#10#201'B'#12'%'#207#13'L-'#141#211#255'$Z'#252#2'}'#212'D'#152 - +'a'#180#26#28#0#0#0#0'IEND'#174'B`'#130 + +'p'#162'%'#171'H'#161#21#232'='#213#138'Xv)'#12'M"'#204'@B'#18#127'SYx'#237 + +#147#206'd'#191#2#10#201'B'#12'%'#207#13'L-'#141#211#255'$Z'#252#2'}'#212'D' + +#152'a'#180#26#28#0#0#0#0'IEND'#174'B`'#130 ]); LazarusResources.Add('TRxDBProgressBar','PNG',[ #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#6#0#0#0#224'w='#248#0 @@ -529,7 +529,7 @@ LazarusResources.Add('TRxDBProgressBar','PNG',[ +#128#184'Hf'#204#202#202#250#143'l'#1#204'7'#188#188#26'$X'#138#9':;'#243#24 +#25#24#240#4'Qp`'#16'E'#22#236#218's'#141#161#179'3'#143#17'g'#16#25#153#24 +'2x'#214'^'#132#243#183'7'#235'c'#240'q'#129'sg'#206#195#217','#217#217'Y'#12 - +#216#130#136#129#129#129#161'6'#206#0'I'#219''#12'>1'#128#5#22'$0'#128#204 + +#216#130#136#129#129#129#161'6'#206#0'I'#219#127#12'>1'#128#5#22'$0'#128#204 +'?w'#247#11'\'#220'J'#149#27#131'O'#148#5'0C'#177#129#173'G'#239#192#217'9' +#30#250#24'|b'#0#137#25#141't'#192#130#205#208#254')S'#25#190'}|G'#21#11#24 +#231#206']'#248#255#236#217#147'('#134#179'120'#236#219#179#151'"'#131'a'#201 @@ -542,18 +542,18 @@ LazarusResources.Add('TRxDBTrackBar','PNG',[ +#177'n'#194'0'#16'}F'#217'*v'#182'D'#130#161#202#152#137'.'#208#181'R'#7'>'#3 +']('#234#22'~!S$P,~'#161'_'#208#13#214'N'#29'Y*'#132#170'J'#253#139#234':'#4 +#187'Il'#167')*'#27'O'#178'd;'#207#239#249#238'|'#1#206#12#161'&D'#196'j.' - +#165#20#0#179#133'.'#204#189#22' "f'#134#30'e'#179#31#216#12''#135' "'#206 - +'si|'#136'c:FR6(" '#185'7'#204'$'#245#173#209'yJ'#172'l'#18#199#228#184'y1' - +#221'm[G'#224#1'@'#158#203#138'hu-*'#245'H'#146#21'z'#189'/L&'#247#154#31#4#3 - +','#174#150#156#166's#'#10#175','#234#134'2'#17#2'X'#254#169#22'B'#21#212#150 - +#162'n'#247#218'z'#200#26#193'be'#240#210't.'#26'S4'#157#222#25#135#214#235 - +'g'#231'm'#203'|'#197'kL'#209#199#251#167'S'#204#6#27#191#241#21#141'n'#199 - +'F'#209#146#196']'#3#27'_7'#25#17#233#225'n'#182#2#195#217#134#179','#227#195 - +#225#141#153#153#135#179#141#147#219#242#21'U'#17#133'>'#158'v'#192'c0'#192 - +#205#195#22'Q'#232#227#197#193#237#0#245#198'2'#215'uH'#234#139'('#244#181 - +#184#171#139#129#227#207#206#150#142#234'o'#194#14#146'{n'#18#215#6'u'#147'6' - +#226''''#195#245'JN'#221#239#252#223#213'.'#184#224'\'#248#6#216#165#172#203 - +#24'='#180#201#0#0#0#0'IEND'#174'B`'#130 + +#165#20#0#179#133'.'#204#189#22' "f'#134#30'e'#179#31#216#12#127#135' "'#206 + +'si|'#136'c:FR6(" '#185'7'#204'$'#245#173#209'yJ'#172'l'#18#199#228#184'y1' + +#127#221'm[G'#224#1'@'#158#203#138'hu-*'#245'H'#146#21'z'#189'/L&'#247#154#31 + +#4#3','#174#150#156#166's#'#10#175','#234#134'2'#17#2'X'#254#169#22'B'#21#212 + +#150#162'n'#247#218'z'#200#26#193'be'#240#210't.'#26'S4'#157#222#25#135#214 + +#235'g'#231'm'#203'|'#197'kL'#209#199#251#167'S'#204#6#27#191#241#21#141'n' + +#199'F'#209#146#196']'#3#27'_7'#25#17#233#225'n'#182#2#195#217#134#179','#227 + +#195#225#141#153#153#135#179#141#147#219#242#21'U'#17#133'>'#158'v'#192'c0' + +#192#205#195#22'Q'#232#227#197#193#237#0#245#198'2'#215'uH'#234#139'('#244 + +#181#184#171#139#129#227#207#206#150#142#234'o'#194#14#146'{n'#18#215#6'u' + +#147'6'#226''''#195#245'JN'#221#239#252#223#213'.'#184#224'\'#248#6#216#165 + +#172#203#24'='#180#201#0#0#0#0'IEND'#174'B`'#130 ]); LazarusResources.Add('TRxLoginDialog','PNG',[ #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#6#0#0#0#224'w='#248#0 @@ -575,7 +575,41 @@ LazarusResources.Add('TRxLoginDialog','PNG',[ +#153#191#4#167#29'x'#250' A'#228'DH'#128'['#203'/'#216'k'#3'8'#0#172'.'#193 +#221#197'&'#187#159'C'#2#0#188'o'#27'^'#173#223#160#249#1'n^'#133'O'#239#154 +'<'#175'C'#237#162#9#12#24';Mg'#164#225'#0#'#247#191#239#200#192#185#129#9'F' - +#133'1'#6#149'V'#168#180#234#15'4c'#12'i'#165'H'#171''#182#191#26#219#193'0' - +#233'5'#237#177#173'i'#175'm"'#192#176'q'#238'7'#226#189';9'#164#165#163#181 - +#14#190'k'#143#163#223'|G'#141#138'p'#211'x'#28#0#0#0#0'IEND'#174'B`'#130 + +#133'1'#6#149'V'#168#180#234#15'4c'#12'i'#165'H'#171#127#182#191#26#219#193 + +'0'#233'5'#237#177#173'i'#175'm"'#192#176'q'#238'7'#226#189';9'#164#165#163 + +#181#14#190'k'#143#163#223'|G'#141#138'p'#211'x'#28#0#0#0#0'IEND'#174'B`'#130 +]); +LazarusResources.Add('TRxVersionInfo','PNG',[ + #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#6#0#0#0#224'w='#248#0 + +#0#0#9'pHYs'#0#0#15#18#0#0#15#18#1'!'#155#242'3'#0#0#2#170'IDATH'#137#181#150 + +#221'KSq'#24#199'?g/:]'#237'E'#28':'#163#141'SQ'#138'D'#217'M'#180#155#224'x' + +#17#20'1'#194'.'#148#254#130#16#137'@'#11#202#219#8#186#137'n'#164#254#0#225 + +'T'#23#221#232']'#142#166#168#211#210#139'n'#180'a'#12#220'l'#202#214#182'4' + +#19'l'#237#215#197#220#209'mg'#203#23#250#194#225#192#239'w'#190#207#243'|' + +#159#239#239#229#192#127#134#164'7'#248'kkK'#0#164'3?X'#142'fp4'#216'8'#217 + +'l'#3#192'`4b'#169#181'`0H'#186#220'R'#152'J'#7#194#209'5'#241'a'#252'+N'#167 + +#137'T6'#203#13'_;'#170':C'#218'#'#200'l'#28#199#233'4qFn<'#188#164#233#217 + +'E'#1'B'#168'jH'#12#189#9#9#16'e'#143#170#170'"'#145'H'#138#3')'#8'G'#215#196 + +#247'x'#154't:'#11'@w'#247#229#138#164#229'X'#138#143#243#171'$'#18'I'#225'r' + +'5j'#173'ZX'#252'"'#218'Z'#207#21#181#206#4#16'Kn'#139#207'sa'#174'_k/'#10 + +#212#219'7'#0#128#209#236#198'R'#231#230#217#147#30#0#30#244#223#5'@UgX'#137 + +#175#138#19#238'f'#9' '#157'J'#233'+'#168#21#235'e'#19#189'}'#3#28#171'7'#209 + +#209'q'#17#155#221#206#198'&<'#127#241#142#251#247'n'#1'0'#240#248'-'#19#147 + +#179#216#236#157#21#149'j'#9#182#179'Y'#221#224'~'#191#31#159#239#138'&9'#239 + +'O'#30#194'l'#193#235'=EK'#139#171'j'#130'='#196']'#19'{'#251#250#133#170#170 + +#186'&'#170'j'#168#204#240#194#220#212#212't'#25#199#160#23#196'hv'#227#241 + +'xu'#139')5'#127'b'#242'S'#213#226'%'#128'D")'#198#198#150'4'#242#195#167'C' + +#248#175'^*j'#15#192#212#176#178#175#165'Y'#128#239'N@'#210#18#188#15#197#232 + +#185'y'#161#232#131#133#197'0'#133'e'#23#31'V'#4#138'r'#144#248#16#8#228'M' + +#174#171#179'`'#175')'#219#212#180#181#158#221#233'9'#240#231#145'F'#218#139 + +#8' WI,'#1#228'rB'#172'|[atd'#132#245#159'9m'#157#239'E|'#184#147'C+0'#24'$)' + +#151#19#162#171#235'6s'#243'KU9'#145'@'#0'Yo'#28#144')W'#164#245#165'p:&'#18 + +'I'#161#170#175#9#6#131#200#167#207#151#169#169#212#14#185#228']'#150#160#0 + +#151#171'Q'#138#198'b'#194#227#241'Ro5c{'#249#138'`p\_'#129#162#16#217#241'D' + +'V'#148#188'?'#5#139'v'#234#168'x'#166'of'#214#4#128#217#218#192#239#205#20 + +#235#163'='#255#246'`0P'#156'P'#169#176#209#0#172#142'&'#201#234'h'#146'j' + +#204'f'#201#234'h'#218#215#229#162#149'/'#23#10'Q*+'#208'C'#181#141'&'#3'D ' + +#18#201#7#150'ep'#15#14#30'('#254#1'P8'#171#170'xp'#180#224#187#168#232#193 + +#209#177#191#159#130'C'#160'X'#193'_'#28'('#24#148#232#9'"F'#0#0#0#0'IEND' + +#174'B`'#130 ]); diff --git a/components/rx/registerrx.pas b/components/rx/registerrx.pas index c6a047570..08d0189ce 100644 --- a/components/rx/registerrx.pas +++ b/components/rx/registerrx.pas @@ -15,7 +15,7 @@ uses curredit, rxswitch, rxdice, rxdbcomb, rxtoolbar, rxxpman, PageMngr, RxAppIcon, Dialogs, ComponentEditors, seldsfrm, DBPropEdits, DB, rxctrls, RxLogin, RxCustomChartPanel, AutoPanel, pickdate, rxconst, tooledit, rxclock, - rxceEditLookupFields, rxpopupunit, rxspin, RxTimeEdit; + rxceEditLookupFields, rxpopupunit, rxspin, RxTimeEdit, RxVersInfo; type @@ -204,6 +204,11 @@ begin RegisterComponents('RX',[TRxLoginDialog]); end; +procedure RegisterRxVersInfo; +begin + RegisterComponents('RX',[TRxVersionInfo]); +end; + procedure Register; begin //RX @@ -225,6 +230,7 @@ begin RegisterUnit('rxspin', @RegisterRxSpin); RegisterUnit('RxTimeEdit', @RegisterRxTimeEdit); RegisterUnit('RxLogin', @RegisterRxLogin); + RegisterUnit('RxVersInfo', @RegisterRxVersInfo); //RX DBAware RegisterUnit('dbdateedit', @RegisterUnitDBDateEdit); diff --git a/components/rx/rx.lrs b/components/rx/rx.lrs index ef3ef6353..b68e99807 100644 --- a/components/rx/rx.lrs +++ b/components/rx/rx.lrs @@ -322,8 +322,8 @@ LazarusResources.Add('TRxDateEdit','PNG',[ +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0','#144#198'\'#0#0#0#1'tRNS'#0'@'#230#216'f'#0#0#0#136'IDATx'#218 +'u'#145#139#10#128' '#12'E7'#130#22#132#254#255'o'#166#4'M'#8#155'R'#168'k*l' - +'x'#207'^*'#194'd!'#144'%s'#1#233#175#251#163#2#223#2#233'u'#192'b3Z'#128 - +#129'z'#16't'#151#252#1#31#246#166#158'>T@e<#c'#19''#161#186'G~'#5#194'!' + +'x'#207'^*'#194'd!'#144'%s'#1#233#175#251#163#2#223#2#233'u'#127#192'b3Z'#128 + +#129'z'#16't'#151#252#1#31#246#166#158'>T@e<#c'#19#127#161#186'G~'#5#194'!' +#137'z@'#220#233#3#232'+)'#16#29'D98'#13#162'H'#194#166#25'+Y'#0#170'5'#128 +#188'V2z'#128#179'K'#217#227#242'r'#203#134'b'#238#225#230#147#183#210#31#159 +'Ud['#15'h'#23'Z'#25#23#189'C'#28#0#0#0#0'IEND'#174'B`'#130 @@ -456,27 +456,27 @@ LazarusResources.Add('TRxSpinEdit','PNG',[ LazarusResources.Add('TRXDBSpinEdit','PNG',[ #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#6#0#0#0#224'w='#248#0 +#0#0#9'pHYs'#0#0#14#156#0#0#14#156#1#7#148'S'#221#0#0#1#230'IDATH'#137#205 - +#148#193'j'#19'Q'#24#133#191'2'#142'+)}'#129#190'D'#23#226'"P_A'#220#187#200 - +'n'#210#216'M'#7#178'(C'#9']T"*'#212'd#]'#248#12'n'#5#145','#220#139'o'#224 - +#170#22#196#166#134#218'af'#174#139#206#157#220#153';'#153#220#22#4#15#4#238 - +''#239#253#207#185'9'#255'a'#224#31'C'#244'"'#12'C'#165#215#211#233'T@'#169 - +#230#150#178'U'#218#207#13#132'a'#168#148#162#252#153'b'#205'X'''#222'B'#190 - +'JD)'#147#212']'#192#3#232#247#195#202'f'#189#6#16#145#194'6Mn'#174'm'#232#7 - +#249#0#147#201#180'BZ'#175'M'#153'*'#233#234'9'#220'<'#168#16#208#164'n'#208 - +'"nC'#22#237#181')'#160'_'#191#189#253#208'Q'#180#25#189#222'3i'#181#232#219 - +#215#217#157#201#15#15'cz'#189'5'#22#189'z'#243#206#218'K'#146#132' '#8#0#200 - +#178#12'gh'#221'Q'#179'1'#243'_'#223#129'B'#160#223#15#27'-jB'#16#4#229#4 - +#252#157'!'#217#231#23#214#29#233'F\|x'#190#20'Xe'#209#163#193#167'J'#227#151 - +#147#199#0#228#10':'#197#136#207#206#23#0'D'#251#3#198'/O,'#177'V'#139'4a]' - +#168#227'-'#215#151#243#5#163#209#176#20#137#227'c['#160#205'"M'#174#197#234 - +#184#248#249#155#189#221#131'JmB'#160#250#161#211'x'#253'vB '#235#5#164#27'Y' - +'{z'#200#27#155'['#226#129#157'wWr'#23#148'3'#184'/a\'#196#178#227#216',' - +#221#200'-E'#26'JA'#206'2!.8;_'#16#237#15#202#186#158'$'#207',D '#184#5'9' - +#220#164'H'''''#142#143#185#156'/*'#231#149''#224#145#146#233#173'|'#233'}Z' - +#156#231')x'#2#190#225#161'N'#205#222#238#129#149' K@'#169#28'H'#16#229#225 - +'y>Y'#14'H'#138#200#21#29#30#212'nC:'#27#225'wc'#139#244#207#199'#'#174#175 - +'~'#0'ELOO'#223#171#167'O'#238#158#148'U'#216#216#220#186#165#225#255'#'#254 - +#2#182'2'#241'd'#141']'#3'd'#0#0#0#0'IEND'#174'B`'#130 + +#148#193'j'#19'Q'#24#133#191#127'2'#142'+)}'#129#190'D'#23#226'"P_A'#220#187 + +#200'n'#210#216'M'#7#178'(C'#9']T"*'#212'd#]'#248#12'n'#5#145','#220#139'o' + +#224#170#22#196#166#134#218'af'#174#139#206#157#220#153';'#153#220#22#4#15#4 + +#238#127#239#253#207#185'9'#255'a'#224#31'C'#244'"'#12'C'#165#215#211#233'T@' + +#169#230#150#178'U'#218#207#13#132'a'#168#148#162#252#153'b'#205'X'''#222'B' + +#190'JD)'#147#212']'#192#3#232#247#195#202'f'#189#6#16#145#194'6Mn'#174'm' + +#232#7#249#0#147#201#180'BZ'#175'M'#153'*'#233#234'9'#220'<'#168#16#208#164 + +'n'#208'"nC'#22#237#181')'#160'_'#191#189#253#208'Q'#180#25#189#222'3i'#181 + +#232#219#215#217#157#201#15#15'cz'#189'5'#22#189'z'#243#206#218'K'#146#132' ' + +#8#0#200#178#12#127'gh'#221'Q'#179'1'#243'_'#223#129'B'#160#223#15#27'-jB'#16 + +#4#229#4#252#157'!'#217#231#23#214#29#233'F\|x'#190#20'Xe'#209#163#193#167'J' + +#227#151#147#199#0#228#10':'#197#136#207#206#23#0'D'#251#3#198'/O,'#177'V' + +#139'4a]'#168#227'-'#215#151#243#5#163#209#176#20#137#227'c['#160#205'"M'#174 + +#197#234#184#248#249#155#189#221#131'JmB'#160#250#161#211'x'#253'vB '#235#5 + +#164#27'Y{z'#200#27#155'['#226#129#157'wWr'#23#148'3'#184#127'/a\'#196#178 + +#227#216','#221#200'-E'#26'JA'#206'2!.8;_'#16#237#15#202#186#158'$'#207',D ' + +#184#5'9'#220#164'H'''''#142#143#185#156'/*'#231#149#127#224#145#146#233#173 + +'|'#233'}Z'#156#231')x'#2#190#225#161'N'#205#222#238#129#149' K@'#169#28'H' + +#16#229#225'y>Y'#14'H'#138#200#21#29#30#212'nC:'#27#225'wc'#139#244#207#199 + +'#'#174#175'~'#0'ELOO'#223#171#167'O'#238#158#148'U'#216#216#220#186#165#225 + +#255'#'#254#2#182'2'#241'd'#141']'#3'd'#0#0#0#0'IEND'#174'B`'#130 ]); LazarusResources.Add('TRxTimeEdit','PNG',[ #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#6#0#0#0#224'w='#248#0 @@ -515,9 +515,9 @@ LazarusResources.Add('TRxDBTimeEdit','PNG',[ +#10#160#251'IX'#174'j'#140'3'#223#202#208':'#0#157'j'#142#150#233'n'#247#141 +#178',]'#224#246#203#128#219'6'#7'd'#202#155#135#152#136#191#7#128#253'y ' +#169#0'V*9'#7#182#146#220'<'#184'e'#10#28'|'#13#179#141#10'{c'#141'1I'#1#224 - +'p'#162'%'#171'H'#161#21#232'='#213#138'Xv)'#12'M"'#204'@B'#18'SYx'#237#147 - +#206'd'#191#2#10#201'B'#12'%'#207#13'L-'#141#211#255'$Z'#252#2'}'#212'D'#152 - +'a'#180#26#28#0#0#0#0'IEND'#174'B`'#130 + +'p'#162'%'#171'H'#161#21#232'='#213#138'Xv)'#12'M"'#204'@B'#18#127'SYx'#237 + +#147#206'd'#191#2#10#201'B'#12'%'#207#13'L-'#141#211#255'$Z'#252#2'}'#212'D' + +#152'a'#180#26#28#0#0#0#0'IEND'#174'B`'#130 ]); LazarusResources.Add('TRxDBProgressBar','PNG',[ #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#6#0#0#0#224'w='#248#0 @@ -529,7 +529,7 @@ LazarusResources.Add('TRxDBProgressBar','PNG',[ +#128#184'Hf'#204#202#202#250#143'l'#1#204'7'#188#188#26'$X'#138#9':;'#243#24 +#25#24#240#4'Qp`'#16'E'#22#236#218's'#141#161#179'3'#143#17'g'#16#25#153#24 +'2x'#214'^'#132#243#183'7'#235'c'#240'q'#129'sg'#206#195#217','#217#217'Y'#12 - +#216#130#136#129#129#129#161'6'#206#0'I'#219''#12'>1'#128#5#22'$0'#128#204 + +#216#130#136#129#129#129#161'6'#206#0'I'#219#127#12'>1'#128#5#22'$0'#128#204 +'?w'#247#11'\'#220'J'#149#27#131'O'#148#5'0C'#177#129#173'G'#239#192#217'9' +#30#250#24'|b'#0#137#25#141't'#192#130#205#208#254')S'#25#190'}|G'#21#11#24 +#231#206']'#248#255#236#217#147'('#134#179'120'#236#219#179#151'"'#131'a'#201 @@ -542,18 +542,18 @@ LazarusResources.Add('TRxDBTrackBar','PNG',[ +#177'n'#194'0'#16'}F'#217'*v'#182'D'#130#161#202#152#137'.'#208#181'R'#7'>'#3 +']('#234#22'~!S$P,~'#161'_'#208#13#214'N'#29'Y*'#132#170'J'#253#139#234':'#4 +#187'Il'#167')*'#27'O'#178'd;'#207#239#249#238'|'#1#206#12#161'&D'#196'j.' - +#165#20#0#179#133'.'#204#189#22' "f'#134#30'e'#179#31#216#12''#135' "'#206 - +'si|'#136'c:FR6(" '#185'7'#204'$'#245#173#209'yJ'#172'l'#18#199#228#184'y1' - +#221'm[G'#224#1'@'#158#203#138'hu-*'#245'H'#146#21'z'#189'/L&'#247#154#31#4#3 - +','#174#150#156#166's#'#10#175','#234#134'2'#17#2'X'#254#169#22'B'#21#212#150 - +#162'n'#247#218'z'#200#26#193'be'#240#210't.'#26'S4'#157#222#25#135#214#235 - +'g'#231'm'#203'|'#197'kL'#209#199#251#167'S'#204#6#27#191#241#21#141'n'#199 - +'F'#209#146#196']'#3#27'_7'#25#17#233#225'n'#182#2#195#217#134#179','#227#195 - +#225#141#153#153#135#179#141#147#219#242#21'U'#17#133'>'#158'v'#192'c0'#192 - +#205#195#22'Q'#232#227#197#193#237#0#245#198'2'#215'uH'#234#139'('#244#181 - +#184#171#139#129#227#207#206#150#142#234'o'#194#14#146'{n'#18#215#6'u'#147'6' - +#226''''#195#245'JN'#221#239#252#223#213'.'#184#224'\'#248#6#216#165#172#203 - +#24'='#180#201#0#0#0#0'IEND'#174'B`'#130 + +#165#20#0#179#133'.'#204#189#22' "f'#134#30'e'#179#31#216#12#127#135' "'#206 + +'si|'#136'c:FR6(" '#185'7'#204'$'#245#173#209'yJ'#172'l'#18#199#228#184'y1' + +#127#221'm[G'#224#1'@'#158#203#138'hu-*'#245'H'#146#21'z'#189'/L&'#247#154#31 + +#4#3','#174#150#156#166's#'#10#175','#234#134'2'#17#2'X'#254#169#22'B'#21#212 + +#150#162'n'#247#218'z'#200#26#193'be'#240#210't.'#26'S4'#157#222#25#135#214 + +#235'g'#231'm'#203'|'#197'kL'#209#199#251#167'S'#204#6#27#191#241#21#141'n' + +#199'F'#209#146#196']'#3#27'_7'#25#17#233#225'n'#182#2#195#217#134#179','#227 + +#195#225#141#153#153#135#179#141#147#219#242#21'U'#17#133'>'#158'v'#192'c0' + +#192#205#195#22'Q'#232#227#197#193#237#0#245#198'2'#215'uH'#234#139'('#244 + +#181#184#171#139#129#227#207#206#150#142#234'o'#194#14#146'{n'#18#215#6'u' + +#147'6'#226''''#195#245'JN'#221#239#252#223#213'.'#184#224'\'#248#6#216#165 + +#172#203#24'='#180#201#0#0#0#0'IEND'#174'B`'#130 ]); LazarusResources.Add('TRxLoginDialog','PNG',[ #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#6#0#0#0#224'w='#248#0 @@ -575,7 +575,41 @@ LazarusResources.Add('TRxLoginDialog','PNG',[ +#153#191#4#167#29'x'#250' A'#228'DH'#128'['#203'/'#216'k'#3'8'#0#172'.'#193 +#221#197'&'#187#159'C'#2#0#188'o'#27'^'#173#223#160#249#1'n^'#133'O'#239#154 +'<'#175'C'#237#162#9#12#24';Mg'#164#225'#0#'#247#191#239#200#192#185#129#9'F' - +#133'1'#6#149'V'#168#180#234#15'4c'#12'i'#165'H'#171''#182#191#26#219#193'0' - +#233'5'#237#177#173'i'#175'm"'#192#176'q'#238'7'#226#189';9'#164#165#163#181 - +#14#190'k'#143#163#223'|G'#141#138'p'#211'x'#28#0#0#0#0'IEND'#174'B`'#130 + +#133'1'#6#149'V'#168#180#234#15'4c'#12'i'#165'H'#171#127#182#191#26#219#193 + +'0'#233'5'#237#177#173'i'#175'm"'#192#176'q'#238'7'#226#189';9'#164#165#163 + +#181#14#190'k'#143#163#223'|G'#141#138'p'#211'x'#28#0#0#0#0'IEND'#174'B`'#130 +]); +LazarusResources.Add('TRxVersionInfo','PNG',[ + #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#6#0#0#0#224'w='#248#0 + +#0#0#9'pHYs'#0#0#15#18#0#0#15#18#1'!'#155#242'3'#0#0#2#170'IDATH'#137#181#150 + +#221'KSq'#24#199'?g/:]'#237'E'#28':'#163#141'SQ'#138'D'#217'M'#180#155#224'x' + +#17#20'1'#194'.'#148#254#130#16#137'@'#11#202#219#8#186#137'n'#164#254#0#225 + +'T'#23#221#232']'#142#166#168#211#210#139'n'#180'a'#12#220'l'#202#214#182'4' + +#19'l'#237#215#197#220#209'mg'#203#23#250#194#225#192#239'w'#190#207#243'|' + +#159#239#239#229#192#127#134#164'7'#248'kkK'#0#164'3?X'#142'fp4'#216'8'#217 + +'l'#3#192'`4b'#169#181'`0H'#186#220'R'#152'J'#7#194#209'5'#241'a'#252'+N'#167 + +#137'T6'#203#13'_;'#170':C'#218'#'#200'l'#28#199#233'4qFn<'#188#164#233#217 + +'E'#1'B'#168'jH'#12#189#9#9#16'e'#143#170#170'"'#145'H'#138#3')'#8'G'#215#196 + +#247'x'#154't:'#11'@w'#247#229#138#164#229'X'#138#143#243#171'$'#18'I'#225'r' + +'5j'#173'ZX'#252'"'#218'Z'#207#21#181#206#4#16'Kn'#139#207'sa'#174'_k/'#10 + +#212#219'7'#0#128#209#236#198'R'#231#230#217#147#30#0#30#244#223#5'@UgX'#137 + +#175#138#19#238'f'#9' '#157'J'#233'+'#168#21#235'e'#19#189'}'#3#28#171'7'#209 + +#209'q'#17#155#221#206#198'&<'#127#241#142#251#247'n'#1'0'#240#248'-'#19#147 + +#179#216#236#157#21#149'j'#9#182#179'Y'#221#224'~'#191#31#159#239#138'&9'#239 + +'O'#30#194'l'#193#235'=EK'#139#171'j'#130'='#196']'#19'{'#251#250#133#170#170 + +#186'&'#170'j'#168#204#240#194#220#212#212't'#25#199#160#23#196'hv'#227#241 + +'xu'#139')5'#127'b'#242'S'#213#226'%'#128'D")'#198#198#150'4'#242#195#167'C' + +#248#175'^*j'#15#192#212#176#178#175#165'Y'#128#239'N@'#210#18#188#15#197#232 + +#185'y'#161#232#131#133#197'0'#133'e'#23#31'V'#4#138'r'#144#248#16#8#228'M' + +#174#171#179'`'#175')'#219#212#180#181#158#221#233'9'#240#231#145'F'#218#139 + +#8' WI,'#1#228'rB'#172'|[atd'#132#245#159'9m'#157#239'E|'#184#147'C+0'#24'$)' + +#151#19#162#171#235'6s'#243'KU9'#145'@'#0'Yo'#28#144')W'#164#245#165'p:&'#18 + +'I'#161#170#175#9#6#131#200#167#207#151#169#169#212#14#185#228']'#150#160#0 + +#151#171'Q'#138#198'b'#194#227#241'Ro5c{'#249#138'`p\_'#129#162#16#217#241'D' + +'V'#148#188'?'#5#139'v'#234#168'x'#166'of'#214#4#128#217#218#192#239#205#20 + +#235#163'='#255#246'`0P'#156'P'#169#176#209#0#172#142'&'#201#234'h'#146'j' + +#204'f'#201#234'h'#218#215#229#162#149'/'#23#10'Q*+'#208'C'#181#141'&'#3'D ' + +#18#201#7#150'ep'#15#14#30'('#254#1'P8'#171#170'xp'#180#224#187#168#232#193 + +#209#177#191#159#130'C'#160'X'#193'_'#28'('#24#148#232#9'"F'#0#0#0#0'IEND' + +#174'B`'#130 ]); diff --git a/components/rx/rxfileutils.pas b/components/rx/rxfileutils.pas index 0a1a3e658..a0d162d95 100644 --- a/components/rx/rxfileutils.pas +++ b/components/rx/rxfileutils.pas @@ -1,3 +1,33 @@ +{ rxFileUtils is part of RxFPC library + + Copyright (C) 2010 Lagunov A.A. alexs75@hotbox.ru + + This library is free software; you can redistribute it and/or modify it + under the terms of the GNU Library General Public License as published by + the Free Software Foundation; either version 2 of the License, or (at your + option) any later version with the following modification: + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules,and + to copy and distribute the resulting executable under terms of your choice, + provided that you also meet, for each linked independent module, the terms + and conditions of the license of that module. An independent module is a + module which is not derived from or based on this library. If you modify + this library, you may extend this exception to your version of the library, + but you are not obligated to do so. If you do not wish to do so, delete this + exception statement from your version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License + for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +} + unit rxFileUtils; {$mode objfpc}{$H+} diff --git a/components/rx/rxnew.lpk b/components/rx/rxnew.lpk index d376d2a6b..7cb983317 100644 --- a/components/rx/rxnew.lpk +++ b/components/rx/rxnew.lpk @@ -26,7 +26,7 @@ translate to Lazarus by alexs in 2005 - 2009 - + @@ -249,8 +249,12 @@ translate to Lazarus by alexs in 2005 - 2009 + + + + - + diff --git a/components/rx/rxnew.pas b/components/rx/rxnew.pas index 1d87af1a8..b66f8d482 100644 --- a/components/rx/rxnew.pas +++ b/components/rx/rxnew.pas @@ -16,7 +16,7 @@ uses rxdbgrid_findunit, rxdbgrid_columsunit, rxpopupunit, rxcustomchartpanel, rxsortmemds, AutoPanel, pickdate, rxiconv, rxceEditLookupFields, rxclock, rxspin, RxDBSpinEdit, RegisterRxDB, RxTimeEdit, RxDBTimeEdit, RxDBCtrls, - rxfilterby, rxconst, rxFileUtils, LazarusPackageIntf; + rxfilterby, rxconst, rxFileUtils, RxVersInfo, LazarusPackageIntf; implementation diff --git a/components/rx/rxversinfo.pas b/components/rx/rxversinfo.pas new file mode 100644 index 000000000..14474436e --- /dev/null +++ b/components/rx/rxversinfo.pas @@ -0,0 +1,293 @@ +{ RxVersInfo is part of RxFPC library + + Copyright (C) 2010 Lagunov A.A. alexs75@hotbox.ru + + This library is free software; you can redistribute it and/or modify it + under the terms of the GNU Library General Public License as published by + the Free Software Foundation; either version 2 of the License, or (at your + option) any later version with the following modification: + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules,and + to copy and distribute the resulting executable under terms of your choice, + provided that you also meet, for each linked independent module, the terms + and conditions of the license of that module. An independent module is a + module which is not derived from or based on this library. If you modify + this library, you may extend this exception to your version of the library, + but you are not obligated to do so. If you do not wish to do so, delete this + exception statement from your version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License + for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +} + +unit RxVersInfo; + +{$mode objfpc} + +interface + +uses + Classes, SysUtils, versionresource; + +type + TLongVersion = string; + TVersionCharSet = string; + TVersionLanguage = string; + + { TRxVersionInfo } + + TRxVersionInfo = class(TComponent) + private + FValid: Boolean; + FValues:TStringList; + function GetComments: string; + function GetCompanyName: string; + function GetFileDescription: string; + function GetFileLongVersion: TLongVersion; + function GetFileName: string; + function GetFileVersion: string; + //function GetFixedFileInfo: PVSFixedFileInfo; + function GetInternalName: string; + function GetLegalCopyright: string; + function GetLegalTrademarks: string; + function GetOriginalFilename: string; + function GetPrivateBuild: string; + function GetProductLongVersion: TLongVersion; + function GetProductName: string; + function GetProductVersion: string; + function GetSpecialBuild: string; + function GetTranslation: Pointer; + function GetVerFileDate: TDateTime; + function GetVersionCharSet: TVersionCharSet; + function GetVersionLanguage: TVersionLanguage; + function GetVersionNum: Longint; + function GetVerValue(const VerName: string): string; + procedure SetFileName(const AValue: string); + procedure DoVersionInfo(V:TVersionResource); + protected + { Protected declarations } + public + constructor Create(AOwner: TComponent);override; + destructor Destroy; override; + procedure LoadFromFile(const AFileName:string); + + property FileName: string read GetFileName write SetFileName; + property Valid: Boolean read FValid; + //property FixedFileInfo: PVSFixedFileInfo read GetFixedFileInfo; + property FileLongVersion: TLongVersion read GetFileLongVersion; + property ProductLongVersion: TLongVersion read GetProductLongVersion; + property Translation: Pointer read GetTranslation; + property VersionLanguage: TVersionLanguage read GetVersionLanguage; + property VersionCharSet: TVersionCharSet read GetVersionCharSet; + property VersionNum: Longint read GetVersionNum; + property Comments: string read GetComments; + property CompanyName: string read GetCompanyName; + property FileDescription: string read GetFileDescription; + property FileVersion: string read GetFileVersion; + property InternalName: string read GetInternalName; + property LegalCopyright: string read GetLegalCopyright; + property LegalTrademarks: string read GetLegalTrademarks; + property OriginalFilename: string read GetOriginalFilename; + property ProductVersion: string read GetProductVersion; + property ProductName: string read GetProductName; + property SpecialBuild: string read GetSpecialBuild; + property PrivateBuild: string read GetPrivateBuild; + property Values[const Name: string]: string read GetVerValue; + property VerFileDate: TDateTime read GetVerFileDate; + published + // + end; + + +implementation +uses FileUtil, resource, resreader, +{$IFDEF WINDOWS} + winpeimagereader +{$ENDIF} +{$IFDEF LINUX} + elfreader +{$ENDIF} + ; + +{ TRxVersionInfo } + +function TRxVersionInfo.GetComments: string; +begin + Result:=FValues.Values['Comments']; +end; + +function TRxVersionInfo.GetCompanyName: string; +begin + Result:=FValues.Values['CompanyName']; +end; + +function TRxVersionInfo.GetFileDescription: string; +begin + Result:=FValues.Values['FileDescription']; +end; + +function TRxVersionInfo.GetFileLongVersion: TLongVersion; +begin + Result:=FValues.Values['FileVersion']; +end; + +function TRxVersionInfo.GetFileName: string; +begin + Result:=FValues.Values['OriginalFilename']; +end; + +function TRxVersionInfo.GetFileVersion: string; +begin + Result:=FValues.Values['FileVersion']; +end; + +{function TRxVersionInfo.GetFixedFileInfo: PVSFixedFileInfo; +begin + Result:=''; +end;} + +function TRxVersionInfo.GetInternalName: string; +begin + Result:=FValues.Values['InternalName']; +end; + +function TRxVersionInfo.GetLegalCopyright: string; +begin + Result:=FValues.Values['LegalCopyright']; +end; + +function TRxVersionInfo.GetLegalTrademarks: string; +begin + Result:=FValues.Values['LegalTrademarks']; +end; + +function TRxVersionInfo.GetOriginalFilename: string; +begin + Result:=FValues.Values['LegalTrademarks']; +end; + +function TRxVersionInfo.GetPrivateBuild: string; +begin + Result:=''; +end; + +function TRxVersionInfo.GetProductLongVersion: TLongVersion; +begin + Result:=''; +end; + +function TRxVersionInfo.GetProductName: string; +begin + Result:=FValues.Values['ProductName']; +end; + +function TRxVersionInfo.GetProductVersion: string; +begin + Result:=FValues.Values['ProductVersion']; +end; + +function TRxVersionInfo.GetSpecialBuild: string; +begin + Result:=''; +end; + +function TRxVersionInfo.GetTranslation: Pointer; +begin + Result:=nil; +end; + +function TRxVersionInfo.GetVerFileDate: TDateTime; +begin + Result:=0; +end; + +function TRxVersionInfo.GetVersionCharSet: TVersionCharSet; +begin + Result:=''; +end; + +function TRxVersionInfo.GetVersionLanguage: TVersionLanguage; +begin + Result:=''; +end; + +function TRxVersionInfo.GetVersionNum: Longint; +begin + Result:=0; +end; + +procedure TRxVersionInfo.SetFileName(const AValue: string); +begin + +end; + +procedure TRxVersionInfo.DoVersionInfo(V: TVersionResource); +var + i,j:integer; +begin + for i:=0 to V.StringFileInfo.Count-1 do + begin + for j:=0 to V.StringFileInfo[i].Count-1 do + FValues.Values[V.StringFileInfo[i].Keys[j]]:=SysToUTF8(V.StringFileInfo[i].ValuesByIndex[j]); + end; +end; + +constructor TRxVersionInfo.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + FValues:=TStringList.Create; + LoadFromFile(ParamStr(0)); +end; + +destructor TRxVersionInfo.Destroy; +begin + FreeAndNil(FValues); + inherited Destroy; +end; + +procedure TRxVersionInfo.LoadFromFile(const AFileName: string); +var + Res:TResources; + i:integer; + Reader:TAbstractResourceReader; + V:TVersionResource; +begin + FValues.Clear; + FValid:=false; + {$IFDEF WINDOWS} + Reader:=TWinPEImageResourceReader.Create; + {$ENDIF} + {$IFDEF LINUX} + Reader:=TElfResourceReader.Create; + {$ENDIF} + Res:=TResources.Create; + try + Res.LoadFromFile(ParamStr(0), Reader); + for i:=0 to Res.Count-1 do + begin + if Res[i] is TVersionResource then + V:=Res[i] as TVersionResource; + end; + FValid:=Assigned(V); + if FValid then + DoVersionInfo(V); + finally + Res.Free; + Reader.Free; + end; +end; + +function TRxVersionInfo.GetVerValue(const VerName: string): string; +begin + Result:=FValues.Values[VerName]; +end; + +end.