From ea0e7297f1e7c0ae01640b077321112aa8968401 Mon Sep 17 00:00:00 2001 From: alexs75 Date: Tue, 16 Feb 2010 20:20:22 +0000 Subject: [PATCH] new component - TRxVersionInfo, documentation git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1158 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/rx/docs/WhatsNew.rus.txt | 1 + components/rx/docs/makehtml.sh | 8 + components/rx/docs/rxfpc.xml | 162 ++++++++++++- components/rx/images/TRxVersionInfo.png | Bin 0 -> 760 bytes components/rx/images/mk_res.bat | 2 +- components/rx/images/mk_res.sh | 2 +- components/rx/images/rx.lrs | 118 ++++++---- components/rx/registerrx.pas | 8 +- components/rx/rx.lrs | 118 ++++++---- components/rx/rxfileutils.pas | 30 +++ components/rx/rxnew.lpk | 8 +- components/rx/rxnew.pas | 2 +- components/rx/rxversinfo.pas | 293 ++++++++++++++++++++++++ 13 files changed, 650 insertions(+), 102 deletions(-) create mode 100755 components/rx/docs/makehtml.sh create mode 100644 components/rx/images/TRxVersionInfo.png create mode 100644 components/rx/rxversinfo.pas 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 0000000000000000000000000000000000000000..f2e456a1e0e4160c3faca7cff459a3715e66f75f GIT binary patch literal 760 zcmVQk?L{0qqm5HhibUB>w42~~5fm}P zE|mU)5Q#tw%G(IKiEgC+0O3>@-RND8rl`}>i*B@G4BTwW*0wYgZ0*;@+|g}k%NP2> z;lS^AzR&Y~pYQMGz<-9MH~4F7O8}%ZKUj`ta5UIB*=z&AU^HT>wO}wvy4+HjN(aKx zHSuBmD^910R5r^EUpuNgL)s(AY#hhwG;v05JiMgo*+l_DsA@tz$YeFGe;H__2? z5u4r4#wI*}@s9iVZUHdx_$?EYv)JsN6_siUwzFB?;C{a!pYMt$Iqy#%!fe6oJw;24 zt7?Kh#9b46`}&2ds=6ksYN*Wc!rau7sP0GI^M%s%AAXiB&0pxN*tbAKxbYz6}pE+%v??rsLlS3;o7$hl| z6QZl@Hgoe!RXLGB09kJwkSSNB^`&q+CK5@Zs;>zKgUF}Pm#L}L4!PuAmY@Kat5J%^ zV#4F`Qg1b5d-;lBa9m%3q7d2fL{^l%KLv|+>Zo|8Z)Vm6fZ5u>@68nJqdoujU@%ae zP^qxd0IZHC$?9m5YRqQI>S)^6<)W1@7Yb1-E6_u=jV1#`AQH(3mSu1c4jw4}0Z=%r qs(5g;;Jc{k!O^k5pMpc6SixT$C>WIJ2_i-S0000T@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.