new component - TRxVersionInfo, documentation

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1158 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2010-02-16 20:20:22 +00:00
parent 57ede0e824
commit ea0e7297f1
13 changed files with 650 additions and 102 deletions

View File

@ -53,6 +53,7 @@
NormalizeDirectoryName - приводит все разделитили каталогов в имени файла к тому виду, как принятов данной ОС. NormalizeDirectoryName - приводит все разделитили каталогов в имени файла к тому виду, как принятов данной ОС.
+ У TRxColumnFooter доступно свойство NumericValue - содержит числовое представление значения + У TRxColumnFooter доступно свойство NumericValue - содержит числовое представление значения
итогов по столбцу. Имеет смысл только для ValueType = fvtSum, fvtAvg, fvtMax, fvtMin итогов по столбцу. Имеет смысл только для ValueType = fvtSum, fvtAvg, fvtMax, fvtMin
+ Новая компонента TRxVersionInfo - обёртка над вызовами функция чтения ресурсов файла
22.05.2008 - версия 2.0.0.136 (svn revision 100) 22.05.2008 - версия 2.0.0.136 (svn revision 100)
+ У объекта TRxCustomDBLookupCombo введён контроль на CircularDataLink + У объекта TRxCustomDBLookupCombo введён контроль на CircularDataLink
+ У объекта TRxCustomDBLookupCombo ускорена отрисовка данных + У объекта TRxCustomDBLookupCombo ускорена отрисовка данных

8
components/rx/docs/makehtml.sh Executable file
View File

@ -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

View File

@ -57,13 +57,15 @@
<element name="TRxColumnFilter.ItemIndex"/> <element name="TRxColumnFilter.ItemIndex"/>
<element name="TRxDBGrid"> <element name="TRxDBGrid">
<short>Наследник от стандартного TDBGrid с дополнительными возможностями</short> <short>Наследник от стандартного TDBGrid с дополнительными возможностями</short>
<descr>Компонента TRxDBGrid предназначена, как и стандартная компонента TDBGrid, для отображения данных таблиц БД или результатов запросов в табличной форме. Являясь наследником TDBGrid, компонента TRxDBGrid имеет все те же свойства и методы, и, кроме того, некоторые свойства, находящиеся у TDBGrid в секции protected, вынесены в секцию public. Это такие свойства, как Col, Row, LeftCol, Canvas. <descr>
Другие отличия от TDBGrid: <p>Компонента TRxDBGrid предназначена, как и стандартная компонента TDBGrid, для отображения данных таблиц БД или результатов запросов в табличной форме. Являясь наследником TDBGrid, компонента TRxDBGrid имеет все те же свойства и методы, и, кроме того, некоторые свойства, находящиеся у TDBGrid в секции protected, вынесены в секцию public. Это такие свойства, как Col, Row, LeftCol, Canvas. </p>
- BLOB-поля базы данных, такие как графические изображения, текстовые мемо-поля, другие BLOB'ы могут отображаться в таблице в виде пиктограмм при установленном в True значении свойства ShowGlyphs; <p>Другие отличия от TDBGrid: </p>
- вы можете изменить цвет шрифта и фона любой ячейки таблицы (либо любой ее строки или столбца) в зависимости от значения поля или имени поля набора данных, определив обработчик события OnGetCellParams; <p>- BLOB-поля базы данных, такие как графические изображения, текстовые мемо-поля, другие BLOB'ы могут отображаться в таблице в виде пиктограмм при установленном в True значении свойства ShowGlyphs; </p>
- имеются методы SaveLayout и RestoreLayout для сохранения и восстановления порядка и ширин столбцов компоненты TRxDBGrid в INI-файле (или в Registry для Delphi 2.0). Вы можете также автоматически сохранять и восстанавливать эти параметры, присвоив значение свойству IniStorage. <p>- вы можете изменить цвет шрифта и фона любой ячейки таблицы (либо любой ее строки или столбца) в зависимости от значения поля или имени поля набора данных, определив обработчик события OnGetCellParams; </p>
- заголовки колонок Grid-а могут быть с помощью свойства TitleButtons использованы как кнопки, например, для изменения порядка сортировки отображаемых данных. <p>- имеются методы SaveLayout и RestoreLayout для сохранения и восстановления порядка и ширин столбцов компоненты TRxDBGrid в INI или XML-файле. Вы можете также автоматически сохранять и восстанавливать эти параметры, присвоив значение свойству IniStorage. </p>
- вы можете зафиксировать несколько первых колонок в Grid-е с помощью свойства FixedCols.</descr> <p>- заголовки колонок Grid-а могут быть с помощью свойства TitleButtons использованы как кнопки, например, для изменения порядка сортировки отображаемых данных. </p>
<p>- вы можете зафиксировать несколько первых колонок в Grid-е с помощью свойства FixedCols. </p>
</descr>
</element> </element>
<element name="TRxDBGrid.FilterRec"/> <element name="TRxDBGrid.FilterRec"/>
<element name="TRxDBGrid.Create"/> <element name="TRxDBGrid.Create"/>
@ -101,9 +103,11 @@
<element name="TRxDBGrid.Columns"/> <element name="TRxDBGrid.Columns"/>
<element name="TRxDBGrid.PropertyStorage"> <element name="TRxDBGrid.PropertyStorage">
<short>property IniStorage: TFormPlacement;</short> <short>property IniStorage: TFormPlacement;</short>
<descr>Свойство позволяет автоматически сохранять специфические установки компоненты в INI-файле или (для 32-разрядной версии) в системном регистре при помощи компонент TFormPlacement или TFormStorage. <descr>
При задании значения свойству IniStorage (и непустом имени компоненты), некоторые ее настройки, которые не являются published-свойствами и не могут быть заданы для TFormStorage напрямую, будут сохраняться и восстанавливаться одновременни с другими значениями, заданными для соответствующей компоненты TFormPlacement (TFormStorage). <p>Свойство позволяет автоматически сохранять специфические установки компоненты в INI-файле или (для 32-разрядной версии) в системном регистре при помощи компонент TFormPlacement или TFormStorage. </p>
Для TSpeedbar - это расположение кнопок на панели и положение самой панели, для TMRUManager - список строк, для TRxDBGrid - ширины и положение полей в таблице и т.д. Все компоненты, имеющие свойство IniStorage, имеют также методы для сохранения и восстановления их настроек вручную, такие как Save/RestoreLayout и т.д.</descr> <p>При задании значения свойству IniStorage (и непустом имени компоненты), некоторые ее настройки, которые не являются published-свойствами и не могут быть заданы для TFormStorage напрямую, будут сохраняться и восстанавливаться одновременни с другими значениями, заданными для соответствующей компоненты TFormPlacement (TFormStorage). </p>
<p>Для TSpeedbar - это расположение кнопок на панели и положение самой панели, для TMRUManager - список строк, для TRxDBGrid - ширины и положение полей в таблице и т.д. Все компоненты, имеющие свойство IniStorage, имеют также методы для сохранения и восстановления их настроек вручную, такие как Save/RestoreLayout и т.д.</p>
</descr>
</element> </element>
<element name="TRxDBGrid.Version"/> <element name="TRxDBGrid.Version"/>
<element name="TRxDBGrid.AllowedOperations"/> <element name="TRxDBGrid.AllowedOperations"/>
@ -524,6 +528,12 @@ TRxDBCalcEdit является наследником TDBCalcEdit и имеет
<b>Count</b> <b>Count</b>
</descr> </descr>
<seealso> <seealso>
@ -547,6 +557,12 @@ TRxDBCalcEdit является наследником TDBCalcEdit и имеет
<b>Execute</b> и по содержимому которого будет произведено заполнение массива Files</descr> <b>Execute</b> и по содержимому которого будет произведено заполнение массива Files</descr>
<seealso> <seealso>
<link id="TFolderLister.Execute"/> <link id="TFolderLister.Execute"/>
@ -942,7 +958,13 @@ Description
<element name="TToolPanel.Items"/> <element name="TToolPanel.Items"/>
<element name="TToolPanel.ImageList"/> <element name="TToolPanel.ImageList"/>
<element name="TToolPanel.ImageListSelected"/> <element name="TToolPanel.ImageListSelected"/>
<element name="TToolPanel.PropertyStorage"/> <element name="TToolPanel.PropertyStorage">
<descr>
<p>Свойство позволяет автоматически сохранять специфические установки компоненты в INI-файле или (для 32-разрядной версии) в системном регистре при помощи компонент TFormPlacement или TFormStorage. </p>
<p>При задании значения свойству IniStorage (и непустом имени компоненты), некоторые ее настройки, которые не являются published-свойствами и не могут быть заданы для TFormStorage напрямую, будут сохраняться и восстанавливаться одновременни с другими значениями, заданными для соответствующей компоненты TFormPlacement (TFormStorage). </p>
<p>Для TSpeedbar - это расположение кнопок на панели и положение самой панели, для TMRUManager - список строк, для TRxDBGrid - ширины и положение полей в таблице и т.д. Все компоненты, имеющие свойство IniStorage, имеют также методы для сохранения и восстановления их настроек вручную, такие как Save/RestoreLayout и т.д.</p>
</descr>
</element>
<element name="TToolPanel.BtnWidth"/> <element name="TToolPanel.BtnWidth"/>
<element name="TToolPanel.BtnHeight"/> <element name="TToolPanel.BtnHeight"/>
<element name="TToolPanel.ToolBarStyle"/> <element name="TToolPanel.ToolBarStyle"/>
@ -1087,7 +1109,10 @@ Description
<short>property AlarmSecond: Byte;</short> <short>property AlarmSecond: Byte;</short>
<descr>Свойство задает (совместно со значениями AlarmHour и AlarmMinute) время срабатывания "будильника", т.е. время, в которое произойдет событие OnAlarm при установке в True свойства AlarmEnabled.</descr> <descr>Свойство задает (совместно со значениями AlarmHour и AlarmMinute) время срабатывания "будильника", т.е. время, в которое произойдет событие OnAlarm при установке в True свойства AlarmEnabled.</descr>
</element> </element>
<element name="TRxClock.AutoSize"/> <element name="TRxClock.AutoSize">
<short>AutoSize Property</short>
<descr>Свойство определяет, будет ли размер автоматически изменяться размер шрифта, которым отображается время в цифровом виде (значение ShowMode равно scDigital), при изменении размера элемента управления TRxClock.</descr>
</element>
<element name="TRxClock.BevelInner"/> <element name="TRxClock.BevelInner"/>
<element name="TRxClock.BevelOuter"/> <element name="TRxClock.BevelOuter"/>
<element name="TRxClock.DotsColor"/> <element name="TRxClock.DotsColor"/>
@ -1622,12 +1647,125 @@ FileName - Полное имя файла.
<descr> <descr>
<p> <p>
<b>function</b> NormalizeDirectoryName( <b>function</b> NormalizeDirectoryName(
<b>const</b> DirName: <b>const</b> DirName:
<b>string</b>): <b>string</b>):
<b>string</b>;</p> <b>string</b>;</p>
Функция проверяет все разделители каталогов в указанном имени файла/каталога и, если нужно, меняет их на значение константы Функция проверяет все разделители каталогов в указанном имени файла/каталога и, если нужно, меняет их на значение константы
<b>DirectorySeparator</b>.</descr> <b>DirectorySeparator</b>.</descr>
</element> </element>
</module> </module>
<module name="RxVersInfo">
<element name="TRxVersionInfo">
<short>Класс TRxVersionInfo предоставляет доступ к информации о версии программы</short>
<descr>
<p>Класс TRxVersionInfo предоставляет доступ к информации о версии программы. </p>
<p>После создания объекта этого класса вы можете получить доступ к информации из ресурса VERSIONINFO через свойства (только-для-чтения) объекта, если чтение ресурса из специфицированного файла окончилось успешно. Вы можете проверить результат чтения информации из файла по значению свойства <link id="TRxVersionInfo.Valid">Valid</link> - значение True соответствует успешному чтению данных. При изменении свойства, задающего имя исполняемого файла с ресурсом VERSIONINFO, происходит обновление данных объекта. Успешность обновления можно также проверить по значению свойства <link id="TRxVersionInfo.Valid">Valid</link>.
</p>
<p>Данный класс предоставляет информацию о наиболее часто используемых свойствах скомпилируемого исполняемого модуля. Фактически является надстройкой над пакетом fpc <b>fcl-res</b>
</p>
</descr>
</element>
<short>Модуль RxVersInfo содержит инструменты доступа к информации о версии программы</short>
<descr>Модуль RxVersInfo содержит инструменты доступа к информации о версии программы</descr>
<element name="TRxVersionInfo.LoadFromFile">
<short>procedure LoadFromFile(const AFileName:string);</short>
<descr>Процедура загружает данные о версии указанного исполняемого модуля</descr>
</element>
<element name="TRxVersionInfo.FileName">
<short>property FileName: string</short>
<descr>Свойство указываеет</descr>
</element>
<element name="TRxVersionInfo.Create">
<descr>Создаёт объект и загружает данные о версии программы вызовом метода <link id="TRxVersionInfo.LoadFromFile">LoadFromFile</link>
</descr>
</element>
<element name="TRxVersionInfo.Destroy"/>
<element name="TRxVersionInfo.Valid">
<short>
<b>property</b> Valid: Boolean;</short>
<descr>Свойство Valid (только-для-чтения) позволяет вам определить результат чтения данных с информацией о версии из специфицированного исполняемого файла. Значение True говорит о том, что чтение данных прошло успешно, в противном случае Valid = False.</descr>
</element>
<element name="TRxVersionInfo.FileLongVersion">
<descr>Свойство задает имя исполняемого файла (EXE или DLL), из которого считывается информация о версии. При изменении значения свойства FileName происходит чтение ресурса VERSIONINFO из указанного файла. Если чтение данных окончилось успешно, свойство <link id="TRxVersionInfo.Valid">Valid</link> (только чтение) устанавливается в значение True, иначе - в False.</descr>
</element>
<element name="TRxVersionInfo.ProductLongVersion"/>
<element name="TRxVersionInfo.Translation">
<descr>Значение свойства представляет собой указатель на массив идентификаторов языка (language) и набора символов (character-set), используемых при чтении данных из ресурса с информацией о версии.</descr>
</element>
<element name="TRxVersionInfo.VersionLanguage">
<descr>Идентификатор языка (language), используемого при чтении информации из ресурса.</descr>
</element>
<element name="TRxVersionInfo.VersionCharSet">
<descr>Идентификатор набора символов (character-set), используемого при чтении информации из ресурса</descr>
</element>
<element name="TRxVersionInfo.VersionNum">
<descr>Свойство определяет номер версии файла как длинное целое.</descr>
</element>
<element name="TRxVersionInfo.Comments">
<descr>Свойство позволяет получить строку из информации о версии, обозначенную как комментарий.</descr>
</element>
<element name="TRxVersionInfo.CompanyName">
<descr>Свойство для доступа к строке из иформации о версии, специфицирующей имя компании-производителя.</descr>
</element>
<element name="TRxVersionInfo.FileDescription">
<descr>Свойство для доступа к описанию исполнимого файла из информации о версии.</descr>
</element>
<element name="TRxVersionInfo.FileVersion">
<descr>Свойство для доступа к строке, содержащей номер версии файла, полученной из ресурса типа VERSIONINFO.</descr>
</element>
<element name="TRxVersionInfo.InternalName">
<descr>Свойство для доступа к строке, содержашей "внутреннее" имя файла, если оно присутствует в информации о версии. Это, например, может быть имя модуля, если файл является динамически загружаемой библиотекой (DLL).</descr>
</element>
<element name="TRxVersionInfo.LegalCopyright">
<descr>Свойство для доступа к строке из иформации о версии, специфицирующей авторские права.</descr>
</element>
<element name="TRxVersionInfo.LegalTrademarks">
<descr>Свойство для доступа к строке из иформации о версии, специфицирующей товарные знаки и зарегистрированные товарные знаки, применимые к файлу.</descr>
</element>
<element name="TRxVersionInfo.OriginalFilename">
<descr>Свойство для доступа к строке из иформации о версии, специфицирующей оригинальное (первоначальное) имя файла (не включая путь). Эта информация может понадобиться, если файл переименован пользователем.</descr>
</element>
<element name="TRxVersionInfo.ProductVersion">
<descr>Свойство для доступа к строке, содержащей номер версии продукта, полученной из ресурса типа VERSIONINFO, например "3.10" или "5.00.RC2".</descr>
</element>
<element name="TRxVersionInfo.ProductName">
<descr>Свойство для доступа к имени продукта из информации о версии. Распространение продукта обычно производится с этим именем.</descr>
</element>
<element name="TRxVersionInfo.SpecialBuild">
<descr>Свойство для доступа к строке из иформации о версии, содержащей частную (конфиденциальную) информацию о предварительной версии продукта. Как правило, в окончательных версиях исполняемых файлов такая информация отсутствует.</descr>
</element>
<element name="TRxVersionInfo.PrivateBuild">
<descr>Свойство для доступа к строке из иформации о версии, содержащей частную (конфиденциальную) информацию о предварительной версии продукта. Как правило, в окончательных версиях исполняемых файлов такая информация отсутствует.</descr>
</element>
<element name="TRxVersionInfo.Values">
<short>Values Property</short>
<descr>Свойство предоставляет доступ к любой текстовой информации из ресурса VERSIONINFO. Считываемая строка задается параметром Name.</descr>
</element>
<element name="TRxVersionInfo.VerFileDate"/>
</module>
</package> </package>
</fpdoc-descriptions> </fpdoc-descriptions>

Binary file not shown.

After

Width:  |  Height:  |  Size: 760 B

View File

@ -1,2 +1,2 @@
del rx.lrs 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

View File

@ -1,2 +1,2 @@
rm rx.lrs 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 /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

View File

@ -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#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 +#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' +'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 +'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''#161#186'G~'#5#194'!' +#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 +#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 +#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 +'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',[ 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 #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 +#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 +#148#193'j'#19'Q'#24#133#191#127'2'#142'+)}'#129#190'D'#23#226'"P_A'#220#187
+'n'#210#216'M'#7#178'(C'#9']T"*'#212'd#]'#248#12'n'#5#145','#220#139'o'#224 +#200'n'#210#216'M'#7#178'(C'#9']T"*'#212'd#]'#248#12'n'#5#145','#220#139'o'
+#170#22#196#166#134#218'af'#174#139#206#157#220#153';'#153#220#22#4#15#4#238 +#224#170#22#196#166#134#218'af'#174#139#206#157#220#153';'#153#220#22#4#15#4
+''#239#253#207#185'9'#255'a'#224#31'C'#244'"'#12'C'#165#215#211#233'T@'#169 +#238#127#239#253#207#185'9'#255'a'#224#31'C'#244'"'#12'C'#165#215#211#233'T@'
+#230#150#178'U'#218#207#13#132'a'#168#148#162#252#153'b'#205'X'''#222'B'#190 +#169#230#150#178'U'#218#207#13#132'a'#168#148#162#252#153'b'#205'X'''#222'B'
+'JD)'#147#212']'#192#3#232#247#195#202'f'#189#6#16#145#194'6Mn'#174'm'#232#7 +#190'JD)'#147#212']'#192#3#232#247#195#202'f'#189#6#16#145#194'6Mn'#174'm'
+#249#0#147#201#180'BZ'#175'M'#153'*'#233#234'9'#220'<'#168#16#208#164'n'#208 +#232#7#249#0#147#201#180'BZ'#175'M'#153'*'#233#234'9'#220'<'#168#16#208#164
+'"nC'#22#237#181')'#160'_'#191#189#253#208'Q'#180#25#189#222'3i'#181#232#219 +'n'#208'"nC'#22#237#181')'#160'_'#191#189#253#208'Q'#180#25#189#222'3i'#181
+#215#217#157#201#15#15'cz'#189'5'#22#189'z'#243#206#218'K'#146#132' '#8#0#200 +#232#219#215#217#157#201#15#15'cz'#189'5'#22#189'z'#243#206#218'K'#146#132' '
+#178#12'gh'#221'Q'#179'1'#243'_'#223#129'B'#160#223#15#27'-jB'#16#4#229#4 +#8#0#200#178#12#127'gh'#221'Q'#179'1'#243'_'#223#129'B'#160#223#15#27'-jB'#16
+#252#157'!'#217#231#23#214#29#233'F\|x'#190#20'Xe'#209#163#193#167'J'#227#151 +#4#229#4#252#157'!'#217#231#23#214#29#233'F\|x'#190#20'Xe'#209#163#193#167'J'
+#147#199#0#228#10':'#197#136#207#206#23#0'D'#251#3#198'/O,'#177'V'#139'4a]' +#227#151#147#199#0#228#10':'#197#136#207#206#23#0'D'#251#3#198'/O,'#177'V'
+#168#227'-'#215#151#243#5#163#209#176#20#137#227'c['#160#205'"M'#174#197#234 +#139'4a]'#168#227'-'#215#151#243#5#163#209#176#20#137#227'c['#160#205'"M'#174
+#184#248#249#155#189#221#131'JmB'#160#250#161#211'x'#253'vB '#235#5#164#27'Y' +#197#234#184#248#249#155#189#221#131'JmB'#160#250#161#211'x'#253'vB '#235#5
+'{z'#200#27#155'['#226#129#157'wWr'#23#148'3'#184'/a\'#196#178#227#216',' +#164#27'Y{z'#200#27#155'['#226#129#157'wWr'#23#148'3'#184#127'/a\'#196#178
+#221#200'-E'#26'JA'#206'2!.8;_'#16#237#15#202#186#158'$'#207',D '#184#5'9' +#227#216','#221#200'-E'#26'JA'#206'2!.8;_'#16#237#15#202#186#158'$'#207',D '
+#220#164'H'''''#142#143#185#156'/*'#231#149''#224#145#146#233#173'|'#233'}Z' +#184#5'9'#220#164'H'''''#142#143#185#156'/*'#231#149#127#224#145#146#233#173
+#156#231')x'#2#190#225#161'N'#205#222#238#129#149' K@'#169#28'H'#16#229#225 +'|'#233'}Z'#156#231')x'#2#190#225#161'N'#205#222#238#129#149' K@'#169#28'H'
+'y>Y'#14'H'#138#200#21#29#30#212'nC:'#27#225'wc'#139#244#207#199'#'#174#175 +#16#229#225'y>Y'#14'H'#138#200#21#29#30#212'nC:'#27#225'wc'#139#244#207#199
+'~'#0'ELOO'#223#171#167'O'#238#158#148'U'#216#216#220#186#165#225#255'#'#254 +'#'#174#175'~'#0'ELOO'#223#171#167'O'#238#158#148'U'#216#216#220#186#165#225
+#2#182'2'#241'd'#141']'#3'd'#0#0#0#0'IEND'#174'B`'#130 +#255'#'#254#2#182'2'#241'd'#141']'#3'd'#0#0#0#0'IEND'#174'B`'#130
]); ]);
LazarusResources.Add('TRxTimeEdit','PNG',[ 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 #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 +#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 ' +#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 +#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 +'p'#162'%'#171'H'#161#21#232'='#213#138'Xv)'#12'M"'#204'@B'#18#127'SYx'#237
+#206'd'#191#2#10#201'B'#12'%'#207#13'L-'#141#211#255'$Z'#252#2'}'#212'D'#152 +#147#206'd'#191#2#10#201'B'#12'%'#207#13'L-'#141#211#255'$Z'#252#2'}'#212'D'
+'a'#180#26#28#0#0#0#0'IEND'#174'B`'#130 +#152'a'#180#26#28#0#0#0#0'IEND'#174'B`'#130
]); ]);
LazarusResources.Add('TRxDBProgressBar','PNG',[ 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 #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 +#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 +#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 +'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' +'?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 +#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 +#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 +#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 +']('#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.' +#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 +#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' +'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 +#127#221'm[G'#224#1'@'#158#203#138'hu-*'#245'H'#146#21'z'#189'/L&'#247#154#31
+','#174#150#156#166's#'#10#175','#234#134'2'#17#2'X'#254#169#22'B'#21#212#150 +#4#3','#174#150#156#166's#'#10#175','#234#134'2'#17#2'X'#254#169#22'B'#21#212
+#162'n'#247#218'z'#200#26#193'be'#240#210't.'#26'S4'#157#222#25#135#214#235 +#150#162'n'#247#218'z'#200#26#193'be'#240#210't.'#26'S4'#157#222#25#135#214
+'g'#231'm'#203'|'#197'kL'#209#199#251#167'S'#204#6#27#191#241#21#141'n'#199 +#235'g'#231'm'#203'|'#197'kL'#209#199#251#167'S'#204#6#27#191#241#21#141'n'
+'F'#209#146#196']'#3#27'_7'#25#17#233#225'n'#182#2#195#217#134#179','#227#195 +#199'F'#209#146#196']'#3#27'_7'#25#17#233#225'n'#182#2#195#217#134#179','#227
+#225#141#153#153#135#179#141#147#219#242#21'U'#17#133'>'#158'v'#192'c0'#192 +#195#225#141#153#153#135#179#141#147#219#242#21'U'#17#133'>'#158'v'#192'c0'
+#205#195#22'Q'#232#227#197#193#237#0#245#198'2'#215'uH'#234#139'('#244#181 +#192#205#195#22'Q'#232#227#197#193#237#0#245#198'2'#215'uH'#234#139'('#244
+#184#171#139#129#227#207#206#150#142#234'o'#194#14#146'{n'#18#215#6'u'#147'6' +#181#184#171#139#129#227#207#206#150#142#234'o'#194#14#146'{n'#18#215#6'u'
+#226''''#195#245'JN'#221#239#252#223#213'.'#184#224'\'#248#6#216#165#172#203 +#147'6'#226''''#195#245'JN'#221#239#252#223#213'.'#184#224'\'#248#6#216#165
+#24'='#180#201#0#0#0#0'IEND'#174'B`'#130 +#172#203#24'='#180#201#0#0#0#0'IEND'#174'B`'#130
]); ]);
LazarusResources.Add('TRxLoginDialog','PNG',[ 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 #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 +#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 +#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' +'<'#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' +#133'1'#6#149'V'#168#180#234#15'4c'#12'i'#165'H'#171#127#182#191#26#219#193
+#233'5'#237#177#173'i'#175'm"'#192#176'q'#238'7'#226#189';9'#164#165#163#181 +'0'#233'5'#237#177#173'i'#175'm"'#192#176'q'#238'7'#226#189';9'#164#165#163
+#14#190'k'#143#163#223'|G'#141#138'p'#211'x'#28#0#0#0#0'IEND'#174'B`'#130 +#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
]); ]);

View File

@ -15,7 +15,7 @@ uses
curredit, rxswitch, rxdice, rxdbcomb, rxtoolbar, rxxpman, PageMngr, RxAppIcon, curredit, rxswitch, rxdice, rxdbcomb, rxtoolbar, rxxpman, PageMngr, RxAppIcon,
Dialogs, ComponentEditors, seldsfrm, DBPropEdits, DB, rxctrls, RxLogin, Dialogs, ComponentEditors, seldsfrm, DBPropEdits, DB, rxctrls, RxLogin,
RxCustomChartPanel, AutoPanel, pickdate, rxconst, tooledit, rxclock, RxCustomChartPanel, AutoPanel, pickdate, rxconst, tooledit, rxclock,
rxceEditLookupFields, rxpopupunit, rxspin, RxTimeEdit; rxceEditLookupFields, rxpopupunit, rxspin, RxTimeEdit, RxVersInfo;
type type
@ -204,6 +204,11 @@ begin
RegisterComponents('RX',[TRxLoginDialog]); RegisterComponents('RX',[TRxLoginDialog]);
end; end;
procedure RegisterRxVersInfo;
begin
RegisterComponents('RX',[TRxVersionInfo]);
end;
procedure Register; procedure Register;
begin begin
//RX //RX
@ -225,6 +230,7 @@ begin
RegisterUnit('rxspin', @RegisterRxSpin); RegisterUnit('rxspin', @RegisterRxSpin);
RegisterUnit('RxTimeEdit', @RegisterRxTimeEdit); RegisterUnit('RxTimeEdit', @RegisterRxTimeEdit);
RegisterUnit('RxLogin', @RegisterRxLogin); RegisterUnit('RxLogin', @RegisterRxLogin);
RegisterUnit('RxVersInfo', @RegisterRxVersInfo);
//RX DBAware //RX DBAware
RegisterUnit('dbdateedit', @RegisterUnitDBDateEdit); RegisterUnit('dbdateedit', @RegisterUnitDBDateEdit);

View File

@ -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#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 +#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' +'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 +'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''#161#186'G~'#5#194'!' +#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 +#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 +#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 +'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',[ 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 #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 +#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 +#148#193'j'#19'Q'#24#133#191#127'2'#142'+)}'#129#190'D'#23#226'"P_A'#220#187
+'n'#210#216'M'#7#178'(C'#9']T"*'#212'd#]'#248#12'n'#5#145','#220#139'o'#224 +#200'n'#210#216'M'#7#178'(C'#9']T"*'#212'd#]'#248#12'n'#5#145','#220#139'o'
+#170#22#196#166#134#218'af'#174#139#206#157#220#153';'#153#220#22#4#15#4#238 +#224#170#22#196#166#134#218'af'#174#139#206#157#220#153';'#153#220#22#4#15#4
+''#239#253#207#185'9'#255'a'#224#31'C'#244'"'#12'C'#165#215#211#233'T@'#169 +#238#127#239#253#207#185'9'#255'a'#224#31'C'#244'"'#12'C'#165#215#211#233'T@'
+#230#150#178'U'#218#207#13#132'a'#168#148#162#252#153'b'#205'X'''#222'B'#190 +#169#230#150#178'U'#218#207#13#132'a'#168#148#162#252#153'b'#205'X'''#222'B'
+'JD)'#147#212']'#192#3#232#247#195#202'f'#189#6#16#145#194'6Mn'#174'm'#232#7 +#190'JD)'#147#212']'#192#3#232#247#195#202'f'#189#6#16#145#194'6Mn'#174'm'
+#249#0#147#201#180'BZ'#175'M'#153'*'#233#234'9'#220'<'#168#16#208#164'n'#208 +#232#7#249#0#147#201#180'BZ'#175'M'#153'*'#233#234'9'#220'<'#168#16#208#164
+'"nC'#22#237#181')'#160'_'#191#189#253#208'Q'#180#25#189#222'3i'#181#232#219 +'n'#208'"nC'#22#237#181')'#160'_'#191#189#253#208'Q'#180#25#189#222'3i'#181
+#215#217#157#201#15#15'cz'#189'5'#22#189'z'#243#206#218'K'#146#132' '#8#0#200 +#232#219#215#217#157#201#15#15'cz'#189'5'#22#189'z'#243#206#218'K'#146#132' '
+#178#12'gh'#221'Q'#179'1'#243'_'#223#129'B'#160#223#15#27'-jB'#16#4#229#4 +#8#0#200#178#12#127'gh'#221'Q'#179'1'#243'_'#223#129'B'#160#223#15#27'-jB'#16
+#252#157'!'#217#231#23#214#29#233'F\|x'#190#20'Xe'#209#163#193#167'J'#227#151 +#4#229#4#252#157'!'#217#231#23#214#29#233'F\|x'#190#20'Xe'#209#163#193#167'J'
+#147#199#0#228#10':'#197#136#207#206#23#0'D'#251#3#198'/O,'#177'V'#139'4a]' +#227#151#147#199#0#228#10':'#197#136#207#206#23#0'D'#251#3#198'/O,'#177'V'
+#168#227'-'#215#151#243#5#163#209#176#20#137#227'c['#160#205'"M'#174#197#234 +#139'4a]'#168#227'-'#215#151#243#5#163#209#176#20#137#227'c['#160#205'"M'#174
+#184#248#249#155#189#221#131'JmB'#160#250#161#211'x'#253'vB '#235#5#164#27'Y' +#197#234#184#248#249#155#189#221#131'JmB'#160#250#161#211'x'#253'vB '#235#5
+'{z'#200#27#155'['#226#129#157'wWr'#23#148'3'#184'/a\'#196#178#227#216',' +#164#27'Y{z'#200#27#155'['#226#129#157'wWr'#23#148'3'#184#127'/a\'#196#178
+#221#200'-E'#26'JA'#206'2!.8;_'#16#237#15#202#186#158'$'#207',D '#184#5'9' +#227#216','#221#200'-E'#26'JA'#206'2!.8;_'#16#237#15#202#186#158'$'#207',D '
+#220#164'H'''''#142#143#185#156'/*'#231#149''#224#145#146#233#173'|'#233'}Z' +#184#5'9'#220#164'H'''''#142#143#185#156'/*'#231#149#127#224#145#146#233#173
+#156#231')x'#2#190#225#161'N'#205#222#238#129#149' K@'#169#28'H'#16#229#225 +'|'#233'}Z'#156#231')x'#2#190#225#161'N'#205#222#238#129#149' K@'#169#28'H'
+'y>Y'#14'H'#138#200#21#29#30#212'nC:'#27#225'wc'#139#244#207#199'#'#174#175 +#16#229#225'y>Y'#14'H'#138#200#21#29#30#212'nC:'#27#225'wc'#139#244#207#199
+'~'#0'ELOO'#223#171#167'O'#238#158#148'U'#216#216#220#186#165#225#255'#'#254 +'#'#174#175'~'#0'ELOO'#223#171#167'O'#238#158#148'U'#216#216#220#186#165#225
+#2#182'2'#241'd'#141']'#3'd'#0#0#0#0'IEND'#174'B`'#130 +#255'#'#254#2#182'2'#241'd'#141']'#3'd'#0#0#0#0'IEND'#174'B`'#130
]); ]);
LazarusResources.Add('TRxTimeEdit','PNG',[ 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 #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 +#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 ' +#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 +#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 +'p'#162'%'#171'H'#161#21#232'='#213#138'Xv)'#12'M"'#204'@B'#18#127'SYx'#237
+#206'd'#191#2#10#201'B'#12'%'#207#13'L-'#141#211#255'$Z'#252#2'}'#212'D'#152 +#147#206'd'#191#2#10#201'B'#12'%'#207#13'L-'#141#211#255'$Z'#252#2'}'#212'D'
+'a'#180#26#28#0#0#0#0'IEND'#174'B`'#130 +#152'a'#180#26#28#0#0#0#0'IEND'#174'B`'#130
]); ]);
LazarusResources.Add('TRxDBProgressBar','PNG',[ 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 #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 +#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 +#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 +'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' +'?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 +#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 +#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 +#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 +']('#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.' +#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 +#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' +'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 +#127#221'm[G'#224#1'@'#158#203#138'hu-*'#245'H'#146#21'z'#189'/L&'#247#154#31
+','#174#150#156#166's#'#10#175','#234#134'2'#17#2'X'#254#169#22'B'#21#212#150 +#4#3','#174#150#156#166's#'#10#175','#234#134'2'#17#2'X'#254#169#22'B'#21#212
+#162'n'#247#218'z'#200#26#193'be'#240#210't.'#26'S4'#157#222#25#135#214#235 +#150#162'n'#247#218'z'#200#26#193'be'#240#210't.'#26'S4'#157#222#25#135#214
+'g'#231'm'#203'|'#197'kL'#209#199#251#167'S'#204#6#27#191#241#21#141'n'#199 +#235'g'#231'm'#203'|'#197'kL'#209#199#251#167'S'#204#6#27#191#241#21#141'n'
+'F'#209#146#196']'#3#27'_7'#25#17#233#225'n'#182#2#195#217#134#179','#227#195 +#199'F'#209#146#196']'#3#27'_7'#25#17#233#225'n'#182#2#195#217#134#179','#227
+#225#141#153#153#135#179#141#147#219#242#21'U'#17#133'>'#158'v'#192'c0'#192 +#195#225#141#153#153#135#179#141#147#219#242#21'U'#17#133'>'#158'v'#192'c0'
+#205#195#22'Q'#232#227#197#193#237#0#245#198'2'#215'uH'#234#139'('#244#181 +#192#205#195#22'Q'#232#227#197#193#237#0#245#198'2'#215'uH'#234#139'('#244
+#184#171#139#129#227#207#206#150#142#234'o'#194#14#146'{n'#18#215#6'u'#147'6' +#181#184#171#139#129#227#207#206#150#142#234'o'#194#14#146'{n'#18#215#6'u'
+#226''''#195#245'JN'#221#239#252#223#213'.'#184#224'\'#248#6#216#165#172#203 +#147'6'#226''''#195#245'JN'#221#239#252#223#213'.'#184#224'\'#248#6#216#165
+#24'='#180#201#0#0#0#0'IEND'#174'B`'#130 +#172#203#24'='#180#201#0#0#0#0'IEND'#174'B`'#130
]); ]);
LazarusResources.Add('TRxLoginDialog','PNG',[ 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 #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 +#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 +#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' +'<'#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' +#133'1'#6#149'V'#168#180#234#15'4c'#12'i'#165'H'#171#127#182#191#26#219#193
+#233'5'#237#177#173'i'#175'm"'#192#176'q'#238'7'#226#189';9'#164#165#163#181 +'0'#233'5'#237#177#173'i'#175'm"'#192#176'q'#238'7'#226#189';9'#164#165#163
+#14#190'k'#143#163#223'|G'#141#138'p'#211'x'#28#0#0#0#0'IEND'#174'B`'#130 +#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
]); ]);

View File

@ -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; unit rxFileUtils;
{$mode objfpc}{$H+} {$mode objfpc}{$H+}

View File

@ -26,7 +26,7 @@ translate to Lazarus by alexs in 2005 - 2009
<License Value="free ware <License Value="free ware
"/> "/>
<Version Major="2" Minor="1" Release="2" Build="105"/> <Version Major="2" Minor="1" Release="2" Build="105"/>
<Files Count="55"> <Files Count="56">
<Item1> <Item1>
<Filename Value="rxlookup.pas"/> <Filename Value="rxlookup.pas"/>
<UnitName Value="rxlookup"/> <UnitName Value="rxlookup"/>
@ -249,8 +249,12 @@ translate to Lazarus by alexs in 2005 - 2009
<Filename Value="rxfileutils.pas"/> <Filename Value="rxfileutils.pas"/>
<UnitName Value="rxFileUtils"/> <UnitName Value="rxFileUtils"/>
</Item55> </Item55>
<Item56>
<Filename Value="rxversinfo.pas"/>
<UnitName Value="RxVersInfo"/>
</Item56>
</Files> </Files>
<LazDoc Paths="docs\"/> <LazDoc Paths="docs\;\usr\local\share\lazarus\components\rxnew\docs\"/>
<i18n> <i18n>
<EnableI18N Value="True"/> <EnableI18N Value="True"/>
<OutDir Value="languages"/> <OutDir Value="languages"/>

View File

@ -16,7 +16,7 @@ uses
rxdbgrid_findunit, rxdbgrid_columsunit, rxpopupunit, rxcustomchartpanel, rxdbgrid_findunit, rxdbgrid_columsunit, rxpopupunit, rxcustomchartpanel,
rxsortmemds, AutoPanel, pickdate, rxiconv, rxceEditLookupFields, rxclock, rxsortmemds, AutoPanel, pickdate, rxiconv, rxceEditLookupFields, rxclock,
rxspin, RxDBSpinEdit, RegisterRxDB, RxTimeEdit, RxDBTimeEdit, RxDBCtrls, rxspin, RxDBSpinEdit, RegisterRxDB, RxTimeEdit, RxDBTimeEdit, RxDBCtrls,
rxfilterby, rxconst, rxFileUtils, LazarusPackageIntf; rxfilterby, rxconst, rxFileUtils, RxVersInfo, LazarusPackageIntf;
implementation implementation

View File

@ -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.