TRxLoginDialog now work

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@712 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75 2009-02-18 19:33:57 +00:00
parent 888fe094b7
commit a94f3a379b
23 changed files with 1453 additions and 922 deletions

View File

@ -1,60 +1,55 @@
object AboutForm: TAboutForm
BorderStyle = bsDialog
Caption = 'About...'
ClientHeight = 143
ClientWidth = 249
PixelsPerInch = 96
Position = poDesktopCenter
HorzScrollBar.Page = 248
VertScrollBar.Page = 142
Left = 393
Height = 143
Height = 163
Top = 386
Width = 249
Width = 274
ActiveControl = BitBtn1
Caption = 'About...'
ClientHeight = 163
ClientWidth = 274
Position = poDesktopCenter
LCLVersion = '0.9.27'
object Label1: TLabel
Left = 8
Height = 18
Top = 16
Width = 262
Alignment = taCenter
Anchors = [akTop, akLeft, akRight]
BorderSpacing.OnChange = nil
Caption = 'FolderLister component demo'
Color = clNone
Left = 8
Height = 17
Top = 16
Width = 237
ParentColor = False
end
object Label2: TLabel
Left = 8
Height = 18
Top = 56
Width = 261
Alignment = taCenter
Anchors = [akTop, akLeft, akRight]
BorderSpacing.OnChange = nil
Caption = '(c) 2005 by Alexs'
Color = clNone
Left = 8
Height = 13
Top = 56
Width = 236
Caption = '(c) 2005-2009 by Alexs'
ParentColor = False
end
object Label3: TLabel
Left = 8
Height = 18
Top = 84
Width = 262
Alignment = taCenter
Anchors = [akTop, akLeft, akRight]
BorderSpacing.OnChange = nil
Caption = 'alexs75@hotbox.ru'
Color = clNone
Left = 8
Height = 17
Top = 84
Width = 237
ParentColor = False
end
object BitBtn1: TBitBtn
Left = 96
Height = 34
Top = 123
Width = 56
Anchors = [akLeft, akBottom]
BorderSpacing.OnChange = nil
Caption = '&ÎÊ'
AutoSize = True
Caption = '&'
Default = True
Kind = bkOK
ModalResult = 1
TabOrder = 0
Left = 96
Height = 25
Top = 112
Width = 75
end
end

View File

@ -1,21 +1,19 @@
{ Ýòî - ôàéë ðåñóðñîâ, àâòîìàòè÷åñêè ñîçäàííûé lazarus }
LazarusResources.Add('TAboutForm','FORMDATA',[
'TPF0'#10'TAboutForm'#9'AboutForm'#11'BorderStyle'#7#8'bsDialog'#7'Caption'#6
+#8'About...'#12'ClientHeight'#3#143#0#11'ClientWidth'#3#249#0#13'PixelsPerIn'
+'ch'#2'`'#8'Position'#7#15'poDesktopCenter'#18'HorzScrollBar.Page'#3#248#0#18
+'VertScrollBar.Page'#3#142#0#4'Left'#3#137#1#6'Height'#3#143#0#3'Top'#3#130#1
+#5'Width'#3#249#0#0#6'TLabel'#6'Label1'#9'Alignment'#7#8'taCenter'#7'Anchors'
+#11#5'akTop'#6'akLeft'#7'akRight'#0#22'BorderSpacing.OnChange'#13#7'Caption'
+#6#27'FolderLister component demo'#5'Color'#7#6'clNone'#4'Left'#2#8#6'Height'
+#2#17#3'Top'#2#16#5'Width'#3#237#0#0#0#6'TLabel'#6'Label2'#9'Alignment'#7#8
+'taCenter'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#22'BorderSpacing.On'
+'Change'#13#7'Caption'#6#17'(c) 2005 by Alexs'#5'Color'#7#6'clNone'#4'Left'#2
+#8#6'Height'#2#13#3'Top'#2'8'#5'Width'#3#236#0#0#0#6'TLabel'#6'Label3'#9'Ali'
+'gnment'#7#8'taCenter'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#22'Bord'
+'erSpacing.OnChange'#13#7'Caption'#6#17'alexs75@hotbox.ru'#5'Color'#7#6'clNo'
+'ne'#4'Left'#2#8#6'Height'#2#17#3'Top'#2'T'#5'Width'#3#237#0#0#0#7'TBitBtn'#7
+'BitBtn1'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#22'BorderSpacing.OnChange'#13
+#7'Caption'#6#3'&'#206#202#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1
+#8'TabOrder'#2#0#4'Left'#2'`'#6'Height'#2#25#3'Top'#2'p'#5'Width'#2'K'#0#0#0
'TPF0'#10'TAboutForm'#9'AboutForm'#4'Left'#3#137#1#6'Height'#3#163#0#3'Top'#3
+#130#1#5'Width'#3#18#1#13'ActiveControl'#7#7'BitBtn1'#7'Caption'#6#8'About..'
+'.'#12'ClientHeight'#3#163#0#11'ClientWidth'#3#18#1#8'Position'#7#15'poDeskt'
+'opCenter'#10'LCLVersion'#6#6'0.9.27'#0#6'TLabel'#6'Label1'#4'Left'#2#8#6'He'
+'ight'#2#18#3'Top'#2#16#5'Width'#3#6#1#9'Alignment'#7#8'taCenter'#7'Anchors'
+#11#5'akTop'#6'akLeft'#7'akRight'#0#7'Caption'#6#27'FolderLister component d'
+'emo'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#8#6'Height'#2#18#3
+'Top'#2'8'#5'Width'#3#5#1#9'Alignment'#7#8'taCenter'#7'Anchors'#11#5'akTop'#6
+'akLeft'#7'akRight'#0#7'Caption'#6#22'(c) 2005-2009 by Alexs'#11'ParentColor'
+#8#0#0#6'TLabel'#6'Label3'#4'Left'#2#8#6'Height'#2#18#3'Top'#2'T'#5'Width'#3
+#6#1#9'Alignment'#7#8'taCenter'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0
+#7'Caption'#6#17'alexs75@hotbox.ru'#11'ParentColor'#8#0#0#7'TBitBtn'#7'BitBt'
+'n1'#4'Left'#2'`'#6'Height'#2'"'#3'Top'#2'{'#5'Width'#2'8'#7'Anchors'#11#6'a'
+'kLeft'#8'akBottom'#0#8'AutoSize'#9#7'Caption'#6#5'&'#208#158#208#154#7'Defa'
+'ult'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#8'TabOrder'#2#0#0#0#0
]);

View File

@ -2,197 +2,16 @@
<CONFIG>
<ProjectOptions>
<PathDelim Value="\"/>
<Version Value="5"/>
<Version Value="7"/>
<General>
<Flags>
<LRSInOutputDirectory Value="False"/>
</Flags>
<MainUnit Value="0"/>
<ActiveEditorIndexAtStart Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<Title Value="FolderLister"/>
<ActiveEditorIndexAtStart Value="0"/>
</General>
<JumpHistory Count="16" HistoryIndex="15">
<Position1>
<Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/>
<Caret Line="86" Column="29" TopLine="79"/>
</Position1>
<Position2>
<Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/>
<Caret Line="18" Column="5" TopLine="15"/>
</Position2>
<Position3>
<Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/>
<Caret Line="108" Column="4" TopLine="104"/>
</Position3>
<Position4>
<Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/>
<Caret Line="71" Column="27" TopLine="58"/>
</Position4>
<Position5>
<Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/>
<Caret Line="78" Column="16" TopLine="65"/>
</Position5>
<Position6>
<Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/>
<Caret Line="80" Column="20" TopLine="67"/>
</Position6>
<Position7>
<Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/>
<Caret Line="95" Column="16" TopLine="82"/>
</Position7>
<Position8>
<Filename Value="unit1.pas"/>
<Caret Line="36" Column="5" TopLine="32"/>
</Position8>
<Position9>
<Filename Value="unit1.pas"/>
<Caret Line="67" Column="33" TopLine="51"/>
</Position9>
<Position10>
<Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/>
<Caret Line="22" Column="32" TopLine="21"/>
</Position10>
<Position11>
<Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/>
<Caret Line="137" Column="26" TopLine="135"/>
</Position11>
<Position12>
<Filename Value="unit1.pas"/>
<Caret Line="19" Column="5" TopLine="19"/>
</Position12>
<Position13>
<Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/>
<Caret Line="23" Column="1" TopLine="1"/>
</Position13>
<Position14>
<Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/>
<Caret Line="118" Column="5" TopLine="82"/>
</Position14>
<Position15>
<Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/>
<Caret Line="1" Column="7" TopLine="1"/>
</Position15>
<Position16>
<Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/>
<Caret Line="5" Column="1" TopLine="1"/>
</Position16>
</JumpHistory>
<Units Count="15">
<Unit0>
<CursorPos X="24" Y="2"/>
<Filename Value="FolderLister.lpr"/>
<IsPartOfProject Value="True"/>
<TopLine Value="1"/>
<UnitName Value="FolderLister"/>
<UsageCount Value="23"/>
</Unit0>
<Unit1>
<CursorPos X="12" Y="23"/>
<EditorIndex Value="0"/>
<Filename Value="unit1.pas"/>
<ComponentName Value="MainForm"/>
<IsPartOfProject Value="True"/>
<Loaded Value="True"/>
<ResourceFilename Value="unit1.lrs"/>
<TopLine Value="23"/>
<UnitName Value="Unit1"/>
<UsageCount Value="23"/>
</Unit1>
<Unit2>
<CursorPos X="1" Y="88"/>
<EditorIndex Value="1"/>
<Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/>
<Loaded Value="True"/>
<TopLine Value="70"/>
<UnitName Value="FolderLister"/>
<UsageCount Value="11"/>
</Unit2>
<Unit3>
<CursorPos X="64" Y="123"/>
<Filename Value="c:\lazarus\fpcsrc\rtl\objpas\sysutils\filutilh.inc"/>
<TopLine Value="110"/>
<UsageCount Value="10"/>
</Unit3>
<Unit4>
<CursorPos X="52" Y="331"/>
<Filename Value="C:\lazarus\fpcsrc\rtl\win32\system.pp"/>
<TopLine Value="314"/>
<UnitName Value="System"/>
<UsageCount Value="10"/>
</Unit4>
<Unit5>
<CursorPos X="6" Y="1"/>
<Filename Value="C:\lazarus\components\RxNew\RxAppUtils.pas"/>
<TopLine Value="1"/>
<UnitName Value="RxAppUtils"/>
<UsageCount Value="10"/>
</Unit5>
<Unit6>
<CursorPos X="28" Y="12"/>
<Filename Value="AboutUnit.pas"/>
<ComponentName Value="AboutForm"/>
<IsPartOfProject Value="True"/>
<ResourceFilename Value="AboutUnit.lrs"/>
<TopLine Value="10"/>
<UnitName Value="AboutUnit"/>
<UsageCount Value="22"/>
</Unit6>
<Unit7>
<CursorPos X="43" Y="1700"/>
<Filename Value="C:\lazarus\lcl\include\customform.inc"/>
<TopLine Value="1695"/>
<UsageCount Value="10"/>
</Unit7>
<Unit8>
<CursorPos X="49" Y="2"/>
<Filename Value="unit1.lrs"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit8>
<Unit9>
<CursorPos X="37" Y="1169"/>
<Filename Value="C:\lazarus\lcl\Forms.pp"/>
<TopLine Value="1166"/>
<UnitName Value="Forms"/>
<UsageCount Value="10"/>
</Unit9>
<Unit10>
<CursorPos X="50" Y="146"/>
<Filename Value="C:\lazarus\lcl\include\application.inc"/>
<TopLine Value="142"/>
<UsageCount Value="10"/>
</Unit10>
<Unit11>
<CursorPos X="38" Y="48"/>
<Filename Value="C:\lazarus\lcl\Dialogs.pp"/>
<TopLine Value="37"/>
<UnitName Value="Dialogs"/>
<UsageCount Value="10"/>
</Unit11>
<Unit12>
<CursorPos X="2" Y="1182"/>
<Filename Value="C:\lazarus\lcl\Controls.pp"/>
<TopLine Value="1176"/>
<UnitName Value="Controls"/>
<UsageCount Value="10"/>
</Unit12>
<Unit13>
<CursorPos X="1" Y="1"/>
<EditorIndex Value="2"/>
<Filename Value="C:\lazarus\components\RxNew\RX.INC"/>
<Loaded Value="True"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit13>
<Unit14>
<CursorPos X="1" Y="15"/>
<EditorIndex Value="3"/>
<Filename Value="C:\lazarus\components\RxNew\RXStrutils.pas"/>
<Loaded Value="True"/>
<TopLine Value="1"/>
<UnitName Value="RxStrUtils"/>
<UsageCount Value="10"/>
</Unit14>
</Units>
<PublishOptions>
<Version Value="2"/>
<IgnoreBinaries Value="False"/>
@ -202,7 +21,7 @@
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="2">
@ -214,16 +33,158 @@
<PackageName Value="LCL"/>
</Item2>
</RequiredPackages>
<Units Count="15">
<Unit0>
<Filename Value="FolderLister.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="FolderLister"/>
<CursorPos X="24" Y="2"/>
<TopLine Value="1"/>
<UsageCount Value="23"/>
</Unit0>
<Unit1>
<Filename Value="unit1.pas"/>
<ComponentName Value="MainForm"/>
<IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="Unit1"/>
<CursorPos X="54" Y="78"/>
<TopLine Value="59"/>
<EditorIndex Value="0"/>
<UsageCount Value="23"/>
<Loaded Value="True"/>
</Unit1>
<Unit2>
<Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/>
<UnitName Value="FolderLister"/>
<CursorPos X="1" Y="88"/>
<TopLine Value="70"/>
<UsageCount Value="11"/>
</Unit2>
<Unit3>
<Filename Value="c:\lazarus\fpcsrc\rtl\objpas\sysutils\filutilh.inc"/>
<CursorPos X="64" Y="123"/>
<TopLine Value="110"/>
<UsageCount Value="10"/>
</Unit3>
<Unit4>
<Filename Value="C:\lazarus\fpcsrc\rtl\win32\system.pp"/>
<UnitName Value="System"/>
<CursorPos X="52" Y="331"/>
<TopLine Value="314"/>
<UsageCount Value="10"/>
</Unit4>
<Unit5>
<Filename Value="C:\lazarus\components\RxNew\RxAppUtils.pas"/>
<UnitName Value="RxAppUtils"/>
<CursorPos X="6" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit5>
<Unit6>
<Filename Value="AboutUnit.pas"/>
<ComponentName Value="AboutForm"/>
<IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="AboutUnit"/>
<CursorPos X="3" Y="15"/>
<TopLine Value="1"/>
<UsageCount Value="22"/>
</Unit6>
<Unit7>
<Filename Value="C:\lazarus\lcl\include\customform.inc"/>
<CursorPos X="43" Y="1700"/>
<TopLine Value="1695"/>
<UsageCount Value="10"/>
</Unit7>
<Unit8>
<Filename Value="unit1.lrs"/>
<CursorPos X="49" Y="2"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit8>
<Unit9>
<Filename Value="C:\lazarus\lcl\Forms.pp"/>
<UnitName Value="Forms"/>
<CursorPos X="37" Y="1169"/>
<TopLine Value="1166"/>
<UsageCount Value="10"/>
</Unit9>
<Unit10>
<Filename Value="C:\lazarus\lcl\include\application.inc"/>
<CursorPos X="50" Y="146"/>
<TopLine Value="142"/>
<UsageCount Value="10"/>
</Unit10>
<Unit11>
<Filename Value="C:\lazarus\lcl\Dialogs.pp"/>
<UnitName Value="Dialogs"/>
<CursorPos X="38" Y="48"/>
<TopLine Value="37"/>
<UsageCount Value="10"/>
</Unit11>
<Unit12>
<Filename Value="C:\lazarus\lcl\Controls.pp"/>
<UnitName Value="Controls"/>
<CursorPos X="2" Y="1182"/>
<TopLine Value="1176"/>
<UsageCount Value="10"/>
</Unit12>
<Unit13>
<Filename Value="C:\lazarus\components\RxNew\RX.INC"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit13>
<Unit14>
<Filename Value="C:\lazarus\components\RxNew\RXStrutils.pas"/>
<UnitName Value="RxStrUtils"/>
<CursorPos X="1" Y="15"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit14>
</Units>
<JumpHistory Count="8" HistoryIndex="7">
<Position1>
<Filename Value="unit1.pas"/>
<Caret Line="36" Column="5" TopLine="32"/>
</Position1>
<Position2>
<Filename Value="unit1.pas"/>
<Caret Line="67" Column="33" TopLine="51"/>
</Position2>
<Position3>
<Filename Value="unit1.pas"/>
<Caret Line="19" Column="5" TopLine="19"/>
</Position3>
<Position4>
<Filename Value="unit1.pas"/>
<Caret Line="23" Column="12" TopLine="23"/>
</Position4>
<Position5>
<Filename Value="unit1.pas"/>
<Caret Line="53" Column="20" TopLine="47"/>
</Position5>
<Position6>
<Filename Value="unit1.pas"/>
<Caret Line="36" Column="47" TopLine="36"/>
</Position6>
<Position7>
<Filename Value="unit1.pas"/>
<Caret Line="64" Column="8" TopLine="53"/>
</Position7>
<Position8>
<Filename Value="unit1.pas"/>
<Caret Line="35" Column="43" TopLine="35"/>
</Position8>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>
<Version Value="4"/>
<Version Value="8"/>
<PathDelim Value="\"/>
<SearchPaths>
<SrcPath Value="$(LazarusDir)\lcl\;$(LazarusDir)\lcl\interfaces\$(LCLWidgetType)\"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>

View File

@ -1,92 +1,109 @@
object MainForm: TMainForm
Caption = 'Main form'
ClientHeight = 281
ClientWidth = 391
Menu = MainMenu1
PixelsPerInch = 96
ShowHint = True
HorzScrollBar.Page = 390
VertScrollBar.Page = 280
Left = 251
Left = 427
Height = 300
Top = 138
Width = 391
Top = 245
Width = 460
ActiveControl = Edit1
Caption = 'Main form'
ClientHeight = 275
ClientWidth = 460
Menu = MainMenu1
OnCreate = FormCreate
Position = poDesktopCenter
ShowHint = True
LCLVersion = '0.9.27'
object Label1: TLabel
AutoSize = True
BorderSpacing.OnChange = nil
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Edit1
AnchorSideTop.Side = asrBottom
Left = 6
Height = 18
Top = 63
Width = 95
BorderSpacing.Around = 6
Caption = 'Folder for scan'
Color = clNone
Left = 8
Height = 13
Top = 56
Width = 72
ParentColor = False
end
object Label2: TLabel
AutoSize = True
BorderSpacing.OnChange = nil
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
Left = 6
Height = 18
Top = 6
Width = 71
BorderSpacing.Around = 6
Caption = 'Default ext'
Color = clNone
Left = 8
Height = 13
Top = 8
Width = 54
ParentColor = False
end
object Button1: TButton
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = DirectoryEdit1
AnchorSideTop.Side = asrBottom
Left = 6
Height = 29
Top = 120
Width = 44
Action = sysScan
BorderSpacing.OnChange = nil
AutoSize = True
BorderSpacing.Around = 6
TabOrder = 0
Left = 8
Height = 25
Hint = 'Scan folder'
Top = 112
Width = 75
end
object DirectoryEdit1: TDirectoryEdit
AnchorSideLeft.Control = Label1
AnchorSideTop.Control = Label1
AnchorSideTop.Side = asrBottom
Left = 12
Height = 27
Top = 87
Width = 417
Directory = 'C:\lazarus\components\'
ShowHidden = False
ButtonWidth = 23
NumGlyphs = 1
Anchors = [akTop, akLeft, akRight]
BorderSpacing.OnChange = nil
AutoSize = True
BorderSpacing.Left = 6
BorderSpacing.Top = 6
TabOrder = 1
Anchors = [akTop, akLeft, akRight]
BorderSpacing.OnChange = nil
TabOrder = 1
Text = 'C:\lazarus\components\'
Left = 16
Height = 23
Top = 80
Width = 344
end
object Edit1: TEdit
BorderSpacing.OnChange = nil
AnchorSideLeft.Control = Label2
AnchorSideTop.Control = Label2
AnchorSideTop.Side = asrBottom
Left = 12
Height = 27
Top = 30
Width = 80
AutoSize = True
BorderSpacing.Around = 6
TabOrder = 2
Text = '.pas'
Left = 16
Height = 23
Top = 24
Width = 80
end
object ActionList1: TActionList
left = 144
top = 112
object sysExit: TAction
Category = 'System'
Caption = 'Exit'
DisableIfNoHandler = True
Enabled = False
Hint = 'Exit form demo app'
OnExecute = sysExitExecute
ShortCut = 32856
Category = 'System'
end
object hlpAbout: TAction
Category = 'Help'
Caption = 'About'
DisableIfNoHandler = True
Hint = 'Information of app'
OnExecute = hlpAboutExecute
Category = 'Help'
end
object sysScan: TAction
Category = 'System'
Caption = 'Scan'
DisableIfNoHandler = True
Hint = 'Scan folder'
OnExecute = sysRescanExecute
Category = 'System'
end
end
object MainMenu1: TMainMenu
@ -109,7 +126,7 @@ object MainForm: TMainForm
Caption = 'Folder'
end
object HelpItems: TMenuItem
Caption = 'Ïîìîùü'
Caption = 'Help'
object MenuItem1: TMenuItem
Action = hlpAbout
OnClick = hlpAboutExecute

View File

@ -1,38 +1,45 @@
{ Ýòî - ôàéë ðåñóðñîâ, àâòîìàòè÷åñêè ñîçäàííûé lazarus }
LazarusResources.Add('TMainForm','FORMDATA',[
'TPF0'#9'TMainForm'#8'MainForm'#7'Caption'#6#9'Main form'#12'ClientHeight'#3
+#25#1#11'ClientWidth'#3#135#1#4'Menu'#7#9'MainMenu1'#13'PixelsPerInch'#2'`'#8
+'ShowHint'#9#18'HorzScrollBar.Page'#3#134#1#18'VertScrollBar.Page'#3#24#1#4
+'Left'#3#251#0#6'Height'#3','#1#3'Top'#3#138#0#5'Width'#3#135#1#0#6'TLabel'#6
+'Label1'#8'AutoSize'#9#22'BorderSpacing.OnChange'#13#7'Caption'#6#15'Folder '
+'for scan'#5'Color'#7#6'clNone'#4'Left'#2#8#6'Height'#2#13#3'Top'#2'8'#5'Wid'
+'th'#2'H'#0#0#6'TLabel'#6'Label2'#8'AutoSize'#9#22'BorderSpacing.OnChange'#13
+#7'Caption'#6#11'Default ext'#5'Color'#7#6'clNone'#4'Left'#2#8#6'Height'#2#13
+#3'Top'#2#8#5'Width'#2'6'#0#0#7'TButton'#7'Button1'#6'Action'#7#7'sysScan'#22
+'BorderSpacing.OnChange'#13#8'TabOrder'#2#0#4'Left'#2#8#6'Height'#2#25#4'Hin'
+'t'#6#11'Scan folder'#3'Top'#2'p'#5'Width'#2'K'#0#0#14'TDirectoryEdit'#14'Di'
+'rectoryEdit1'#9'Directory'#6#22'C:\lazarus\components\'#11'ButtonWidth'#2#23
+#9'NumGlyphs'#2#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#22'BorderSpa'
+'cing.OnChange'#13#8'TabOrder'#2#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRigh'
+'t'#0#22'BorderSpacing.OnChange'#13#8'TabOrder'#2#1#4'Text'#6#22'C:\lazarus\'
+'components\'#4'Left'#2#16#6'Height'#2#23#3'Top'#2'P'#5'Width'#3'X'#1#0#0#5
+'TEdit'#5'Edit1'#22'BorderSpacing.OnChange'#13#8'TabOrder'#2#2#4'Text'#6#4'.'
+'pas'#4'Left'#2#16#6'Height'#2#23#3'Top'#2#24#5'Width'#2'P'#0#0#11'TActionLi'
+'st'#11'ActionList1'#4'left'#3#144#0#3'top'#2'p'#0#7'TAction'#7'sysExit'#7'C'
+'aption'#6#4'Exit'#7'Enabled'#8#4'Hint'#6#18'Exit form demo app'#8'ShortCut'
+#4'X'#128#0#0#8'Category'#6#6'System'#0#0#7'TAction'#8'hlpAbout'#7'Caption'#6
+#5'About'#4'Hint'#6#18'Information of app'#9'OnExecute'#7#15'hlpAboutExecute'
+#8'Category'#6#4'Help'#0#0#7'TAction'#7'sysScan'#7'Caption'#6#4'Scan'#4'Hint'
+#6#11'Scan folder'#9'OnExecute'#7#16'sysRescanExecute'#8'Category'#6#6'Syste'
+'m'#0#0#0#9'TMainMenu'#9'MainMenu1'#4'left'#3#144#0#3'top'#2'0'#0#9'TMenuIte'
+'m'#11'SystemItems'#7'Caption'#6#6'System'#0#9'TMenuItem'#9'MenuItem3'#6'Act'
+'ion'#7#7'sysScan'#7'OnClick'#7#16'sysRescanExecute'#0#0#9'TMenuItem'#9'Menu'
+'Item4'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem2'#6'Action'#7#7'sysExi'
+'t'#0#0#0#9'TMenuItem'#11'FolderItems'#7'Caption'#6#6'Folder'#0#0#9'TMenuIte'
+'m'#9'HelpItems'#7'Caption'#6#6#207#238#236#238#249#252#0#9'TMenuItem'#9'Men'
+'uItem1'#6'Action'#7#8'hlpAbout'#7'OnClick'#7#15'hlpAboutExecute'#0#0#0#0#13
+'TFolderLister'#13'FolderLister1'#10'DefaultExt'#6#4'.pas'#13'OnExecuteItem'
+#7#24'FolderLister1ExecuteItem'#8'MenuItem'#7#11'FolderItems'#4'left'#3#144#0
+#3'top'#2#12#0#0#0
'TPF0'#9'TMainForm'#8'MainForm'#4'Left'#3#171#1#6'Height'#3','#1#3'Top'#3#245
+#0#5'Width'#3#204#1#13'ActiveControl'#7#5'Edit1'#7'Caption'#6#9'Main form'#12
+'ClientHeight'#3#19#1#11'ClientWidth'#3#204#1#4'Menu'#7#9'MainMenu1'#8'OnCre'
+'ate'#7#10'FormCreate'#8'Position'#7#15'poDesktopCenter'#8'ShowHint'#9#10'LC'
+'LVersion'#6#6'0.9.27'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#5
+'Owner'#21'AnchorSideTop.Control'#7#5'Edit1'#18'AnchorSideTop.Side'#7#9'asrB'
+'ottom'#4'Left'#2#6#6'Height'#2#18#3'Top'#2'?'#5'Width'#2'_'#20'BorderSpacin'
+'g.Around'#2#6#7'Caption'#6#15'Folder for scan'#11'ParentColor'#8#0#0#6'TLab'
+'el'#6'Label2'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Contro'
+'l'#7#5'Owner'#4'Left'#2#6#6'Height'#2#18#3'Top'#2#6#5'Width'#2'G'#20'Border'
+'Spacing.Around'#2#6#7'Caption'#6#11'Default ext'#11'ParentColor'#8#0#0#7'TB'
+'utton'#7'Button1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Co'
+'ntrol'#7#14'DirectoryEdit1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2
+#6#6'Height'#2#29#3'Top'#2'x'#5'Width'#2','#6'Action'#7#7'sysScan'#8'AutoSiz'
+'e'#9#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#0#0#0#14'TDirectoryEdit'#14
+'DirectoryEdit1'#22'AnchorSideLeft.Control'#7#6'Label1'#21'AnchorSideTop.Con'
+'trol'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#12#6'Heig'
+'ht'#2#27#3'Top'#2'W'#5'Width'#3#161#1#9'Directory'#6#22'C:\lazarus\componen'
+'ts\'#10'ShowHidden'#8#11'ButtonWidth'#2#23#9'NumGlyphs'#2#1#7'Anchors'#11#5
+'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#18'BorderSpacing.Left'#2#6#17'B'
+'orderSpacing.Top'#2#6#8'TabOrder'#2#1#0#0#5'TEdit'#5'Edit1'#22'AnchorSideLe'
+'ft.Control'#7#6'Label2'#21'AnchorSideTop.Control'#7#6'Label2'#18'AnchorSide'
+'Top.Side'#7#9'asrBottom'#4'Left'#2#12#6'Height'#2#27#3'Top'#2#30#5'Width'#2
+'P'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#2#4'Text'#6#4'.'
+'pas'#0#0#11'TActionList'#11'ActionList1'#4'left'#3#144#0#3'top'#2'p'#0#7'TA'
+'ction'#7'sysExit'#8'Category'#6#6'System'#7'Caption'#6#4'Exit'#18'DisableIf'
+'NoHandler'#9#7'Enabled'#8#4'Hint'#6#18'Exit form demo app'#9'OnExecute'#7#14
+'sysExitExecute'#8'ShortCut'#4'X'#128#0#0#0#0#7'TAction'#8'hlpAbout'#8'Categ'
+'ory'#6#4'Help'#7'Caption'#6#5'About'#18'DisableIfNoHandler'#9#4'Hint'#6#18
+'Information of app'#9'OnExecute'#7#15'hlpAboutExecute'#0#0#7'TAction'#7'sys'
+'Scan'#8'Category'#6#6'System'#7'Caption'#6#4'Scan'#18'DisableIfNoHandler'#9
+#4'Hint'#6#11'Scan folder'#9'OnExecute'#7#16'sysRescanExecute'#0#0#0#9'TMain'
+'Menu'#9'MainMenu1'#4'left'#3#144#0#3'top'#2'0'#0#9'TMenuItem'#11'SystemItem'
+'s'#7'Caption'#6#6'System'#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7#7'sysScan'
+#7'OnClick'#7#16'sysRescanExecute'#0#0#9'TMenuItem'#9'MenuItem4'#7'Caption'#6
+#1'-'#0#0#9'TMenuItem'#9'MenuItem2'#6'Action'#7#7'sysExit'#0#0#0#9'TMenuItem'
+#11'FolderItems'#7'Caption'#6#6'Folder'#0#0#9'TMenuItem'#9'HelpItems'#7'Capt'
+'ion'#6#4'Help'#0#9'TMenuItem'#9'MenuItem1'#6'Action'#7#8'hlpAbout'#7'OnClic'
+'k'#7#15'hlpAboutExecute'#0#0#0#0#13'TFolderLister'#13'FolderLister1'#10'Def'
+'aultExt'#6#4'.pas'#13'OnExecuteItem'#7#24'FolderLister1ExecuteItem'#8'MenuI'
+'tem'#7#11'FolderItems'#4'left'#3#144#0#3'top'#2#12#0#0#0
]);

View File

@ -32,7 +32,9 @@ type
HelpItems: TMenuItem;
FolderItems: TMenuItem;
procedure FolderLister1ExecuteItem(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure hlpAboutExecute(Sender: TObject);
procedure sysExitExecute(Sender: TObject);
procedure sysRescanExecute(Sender: TObject);
private
{ private declarations }
@ -58,6 +60,11 @@ begin
end;
end;
procedure TMainForm.sysExitExecute(Sender: TObject);
begin
Close;
end;
procedure TMainForm.FolderLister1ExecuteItem(Sender: TObject);
var
S:string;
@ -66,6 +73,11 @@ begin
MessageDlg('Result', S, mtInformation, [mbOK], 0);
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
DirectoryEdit1.Directory:=ExtractFileDir(ParamStr(0));
end;
procedure TMainForm.sysRescanExecute(Sender: TObject);
begin
FolderLister1.FileFolder:=DirectoryEdit1.Text;

View File

@ -2,8 +2,11 @@
<CONFIG>
<ProjectOptions>
<PathDelim Value="\"/>
<Version Value="5"/>
<Version Value="7"/>
<General>
<Flags>
<LRSInOutputDirectory Value="False"/>
</Flags>
<MainUnit Value="0"/>
<TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="0"/>
@ -22,7 +25,7 @@
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="4">
@ -47,20 +50,18 @@
<Filename Value="PhoneBookDemo.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="PhoneBookDemo"/>
<CursorPos X="53" Y="11"/>
<CursorPos X="13" Y="11"/>
<TopLine Value="1"/>
<EditorIndex Value="1"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
</Unit0>
<Unit1>
<Filename Value="pbmainunit.pas"/>
<ComponentName Value="pbMainForm"/>
<IsPartOfProject Value="True"/>
<ResourceFilename Value="pbmainunit.lrs"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="pbMainUnit"/>
<CursorPos X="12" Y="49"/>
<TopLine Value="17"/>
<TopLine Value="23"/>
<EditorIndex Value="0"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
@ -130,11 +131,8 @@
</JumpHistory>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<Version Value="8"/>
<PathDelim Value="\"/>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Linking>
<Options>
<Win32>

View File

@ -7,8 +7,8 @@ uses
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms
{ add your units here }, pbMainUnit, rxnew, DBFLaz;
Forms,
pbMainUnit;
begin
Application.Initialize;

View File

@ -1,13 +1,14 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<PathDelim Value="/"/>
<Version Value="6"/>
<Version Value="7"/>
<General>
<Flags>
<LRSInOutputDirectory Value="False"/>
</Flags>
<MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="3"/>
<ActiveEditorIndexAtStart Value="0"/>
</General>
<VersionInfo>
<ProjectVersion Value=""/>
@ -39,7 +40,7 @@
<MinVersion Major="1" Release="18" Build="56" Valid="True"/>
</Item3>
</RequiredPackages>
<Units Count="14">
<Units Count="10">
<Unit0>
<Filename Value="RxDBGridDemo.lpr"/>
<IsPartOfProject Value="True"/>
@ -52,10 +53,10 @@
<Filename Value="rxdbgridmainunit.pas"/>
<ComponentName Value="RxDBGridMainForm"/>
<IsPartOfProject Value="True"/>
<ResourceFilename Value="rxdbgridmainunit.lrs"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="RxDBGridMainUnit"/>
<CursorPos X="24" Y="53"/>
<TopLine Value="9"/>
<TopLine Value="127"/>
<EditorIndex Value="0"/>
<UsageCount Value="24"/>
<Loaded Value="True"/>
@ -112,180 +113,31 @@
<UsageCount Value="11"/>
</Unit8>
<Unit9>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<UnitName Value="rxdbgrid"/>
<CursorPos X="3" Y="1466"/>
<TopLine Value="1436"/>
<EditorIndex Value="3"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit9>
<Unit10>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxmemds.pas"/>
<UnitName Value="rxmemds"/>
<CursorPos X="1" Y="1335"/>
<TopLine Value="1312"/>
<EditorIndex Value="2"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit10>
<Unit11>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxpopupunit.pas"/>
<Filename Value="../../rxpopupunit.pas"/>
<UnitName Value="rxpopupunit"/>
<CursorPos X="15" Y="249"/>
<TopLine Value="246"/>
<EditorIndex Value="1"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit11>
<Unit12>
<Filename Value="/usr/local/share/lazarus/lcl/grids.pas"/>
<UnitName Value="Grids"/>
<CursorPos X="15" Y="854"/>
<TopLine Value="831"/>
<UsageCount Value="10"/>
</Unit12>
<Unit13>
<Filename Value="/usr/local/share/lazarus/lcl/dbgrids.pas"/>
<UnitName Value="DBGrids"/>
<CursorPos X="14" Y="450"/>
<TopLine Value="427"/>
<EditorIndex Value="4"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit13>
</Unit9>
</Units>
<JumpHistory Count="30" HistoryIndex="29">
<JumpHistory Count="2" HistoryIndex="1">
<Position1>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="226" Column="22" TopLine="203"/>
</Position1>
<Position2>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="280" Column="32" TopLine="257"/>
</Position2>
<Position3>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="281" Column="32" TopLine="258"/>
</Position3>
<Position4>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1465" Column="1" TopLine="1434"/>
</Position4>
<Position5>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1708" Column="38" TopLine="1685"/>
</Position5>
<Position6>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1710" Column="20" TopLine="1687"/>
</Position6>
<Position7>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1711" Column="61" TopLine="1688"/>
</Position7>
<Position8>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1713" Column="25" TopLine="1690"/>
</Position8>
<Position9>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1716" Column="33" TopLine="1693"/>
</Position9>
<Position10>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1722" Column="38" TopLine="1699"/>
</Position10>
<Position11>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1724" Column="20" TopLine="1701"/>
</Position11>
<Position12>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1725" Column="20" TopLine="1702"/>
</Position12>
<Position13>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1909" Column="1" TopLine="1880"/>
</Position13>
<Position14>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1911" Column="35" TopLine="1888"/>
</Position14>
<Position15>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1912" Column="36" TopLine="1889"/>
</Position15>
<Position16>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1903" Column="32" TopLine="1893"/>
</Position16>
<Position17>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="52" Column="18" TopLine="9"/>
</Position17>
<Position18>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="2343" Column="35" TopLine="2336"/>
</Position18>
<Position19>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="2339" Column="37" TopLine="2336"/>
</Position19>
<Position20>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position20>
<Position21>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="2338" Column="37" TopLine="2315"/>
</Position21>
<Position22>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position22>
<Position23>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1942" Column="25" TopLine="1919"/>
</Position23>
<Position24>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1947" Column="25" TopLine="1924"/>
</Position24>
<Position25>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="2338" Column="37" TopLine="2315"/>
</Position25>
<Position26>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position26>
<Position27>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1942" Column="25" TopLine="1919"/>
</Position27>
<Position28>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1947" Column="25" TopLine="1924"/>
</Position28>
<Position29>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1468" Column="14" TopLine="1436"/>
</Position29>
<Position30>
</Position1>
<Position2>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="15" Column="4" TopLine="9"/>
</Position30>
</Position2>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<Version Value="8"/>
<SearchPaths>
<SrcPath Value="$(LazarusDir)/lcl/;$(LazarusDir)/lcl/interfaces/$(LCLWidgetType)/"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Linking>
<Options>
<Win32>

View File

@ -1,48 +1,57 @@
object RxDBGridMainForm: TRxDBGridMainForm
Left = 301
Left = 299
Height = 582
Top = 161
Width = 969
HorzScrollBar.Page = 968
VertScrollBar.Page = 581
ActiveControl = RxDBGrid1
ActiveControl = Panel1
Caption = 'RxDBGrid Demo (ver 3) ...'
ClientHeight = 582
ClientWidth = 969
OnCreate = FormCreate
LCLVersion = '0.9.27'
object RxDBGrid1: TRxDBGrid
Height = 532
Top = 50
Left = 0
Height = 533
Top = 49
Width = 969
TitleButtons = False
AutoSort = False
Columns = <
item
Title.Alignment = taCenter
Title.Caption = 'Code'
Title.Orientation = toHorizontal
FieldName = 'ID'
Footer.Alignment = taRightJustify
Footer.DisplayFormat = 'Count: %d'
Footer.ValueType = fvtCount
Filter.DropDownRows = 0
Filter.Color = clLime
Filter.ItemIndex = -1
end
item
Title.Alignment = taCenter
Title.Caption = 'Software Name'
Title.Orientation = toHorizontal
Width = 350
FieldName = 'NAME'
Filter.DropDownRows = 0
Filter.Color = clLime
Filter.ItemIndex = -1
end
item
Title.Alignment = taCenter
Title.Orientation = toHorizontal
Width = 150
FieldName = 'Developer'
Filter.DropDownRows = 0
Filter.Color = clLime
Filter.ItemIndex = -1
end
item
Title.Alignment = taCenter
Title.Caption = 'Cost'
Title.Orientation = toHorizontal
Width = 90
FieldName = 'PRICE'
DisplayFormat = '#,##0.00'
@ -50,20 +59,25 @@ object RxDBGridMainForm: TRxDBGridMainForm
Footer.DisplayFormat = '#,##0.00'
Footer.FieldName = 'PRICE'
Footer.ValueType = fvtSum
Filter.DropDownRows = 0
Filter.Color = clLime
Filter.ItemIndex = -1
end
item
Title.Alignment = taCenter
Title.Caption = 'Date Present'
Title.Orientation = toHorizontal
Width = 100
FieldName = 'Date_Present'
Filter.DropDownRows = 0
Filter.ItemIndex = -1
end
item
Title.Alignment = taCenter
Title.Orientation = toHorizontal
Width = 150
FieldName = 'DEVELOPER_ID'
Filter.DropDownRows = 0
Filter.ItemIndex = -1
end>
OptionsRx = [rdgFooterRows]
@ -73,52 +87,67 @@ object RxDBGridMainForm: TRxDBGridMainForm
Align = alClient
FocusColor = clRed
SelectedColor = clHighlight
GridLineStyle = psSolid
DataSource = Datasource1
FixedColor = clBtnFace
Options = [dgEditing, dgTitles, dgIndicator, dgColumnResize, dgColumnMove, dgColLines, dgRowLines, dgTabs, dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit, dgMultiselect]
OptionsExtra = [dgeAutoColumns, dgeCheckboxColumn]
ParentColor = False
PopupMenu = PopupMenu1
TabOrder = 0
TabStop = True
end
object Panel1: TPanel
Height = 50
Left = 0
Height = 49
Top = 0
Width = 969
Align = alTop
ClientHeight = 50
AutoSize = True
ClientHeight = 49
ClientWidth = 969
TabOrder = 1
object Button1: TButton
Left = 8
Height = 25
Top = 8
Width = 75
AnchorSideLeft.Control = Panel1
AnchorSideTop.Control = Panel1
Left = 6
Height = 37
Top = 6
Width = 92
Action = actCalcTotal
AutoSize = True
BorderSpacing.Around = 6
BorderSpacing.InnerBorder = 4
TabOrder = 0
end
object Button2: TButton
Left = 88
Height = 25
Top = 8
Width = 136
AnchorSideLeft.Control = Button1
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel1
Left = 104
Height = 37
Top = 6
Width = 165
Action = actOptimizeColumnsWidthAll
AutoSize = True
BorderSpacing.Around = 6
BorderSpacing.InnerBorder = 4
TabOrder = 1
end
object CheckBox1: TCheckBox
Left = 241
Height = 20
Top = 8
Width = 75
AnchorSideLeft.Control = Button2
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Button1
AnchorSideTop.Side = asrCenter
Left = 275
Height = 22
Top = 13
Width = 81
BorderSpacing.Left = 6
Caption = 'Use filter'
OnChange = CheckBox1Change
TabOrder = 2
UseOnChange = True
end
end
object RxMemoryData1: TRxMemoryData
AutoCalcFields = False
FieldDefs = <
item
Name = 'ID'
@ -147,59 +176,87 @@ object RxDBGridMainForm: TRxDBGridMainForm
item
Name = 'Date_Present'
DataType = ftDate
Precision = 0
Size = 0
end
item
Name = 'DEVELOPER_ID'
DataType = ftInteger
Precision = 0
Size = 0
end>
OnFilterRecordEx = RxMemoryData1FilterRecordEx
left = 152
top = 264
object RxMemoryData1ID1: TLongintField
AlignMent = taRightJustify
DisplayWidth = 10
FieldKind = fkData
FieldName = 'ID'
Index = 0
LookupCache = False
ProviderFlags = [pfInUpdate, pfInWhere]
ReadOnly = False
Required = False
end
object RxMemoryData1NAME1: TStringField
DisplayWidth = 150
FieldKind = fkData
FieldName = 'NAME'
Index = 1
LookupCache = False
ProviderFlags = [pfInUpdate, pfInWhere]
ReadOnly = False
Required = False
Size = 150
end
object RxMemoryData1PRICE1: TFloatField
AlignMent = taRightJustify
DisplayWidth = 10
FieldKind = fkData
FieldName = 'PRICE'
Index = 2
LookupCache = False
ProviderFlags = [pfInUpdate, pfInWhere]
ReadOnly = False
Required = False
DisplayFormat = '#,##0.00'
MaxValue = 0
MinValue = 0
Precision = 2
end
object RxMemoryData1Developer1: TStringField
DisplayWidth = 150
FieldKind = fkData
FieldName = 'Developer'
Index = 3
LookupCache = False
ProviderFlags = [pfInUpdate, pfInWhere]
ReadOnly = False
Required = False
Size = 150
end
object RxMemoryData1Date_Present1: TDateField
DisplayWidth = 10
FieldKind = fkData
FieldName = 'Date_Present'
Index = 4
LookupCache = False
ProviderFlags = [pfInUpdate, pfInWhere]
ReadOnly = False
Required = False
end
object RxMemoryData1DEVELOPER_ID1: TLongintField
AlignMent = taRightJustify
DisplayWidth = 10
FieldKind = fkData
FieldName = 'DEVELOPER_ID'
Index = 5
KeyFields = 'DEVELOPER_ID'
LookupCache = False
LookupDataSet = RxMemoryData2
LookupKeyFields = 'DEVELOPER_ID'
LookupResultField = 'DEVELOPER_NAME'
KeyFields = 'DEVELOPER_ID'
ProviderFlags = [pfInUpdate, pfInWhere]
ReadOnly = False
Required = False
end
end
object Datasource1: TDatasource
@ -251,29 +308,41 @@ object RxDBGridMainForm: TRxDBGridMainForm
top = 264
end
object RxMemoryData2: TRxMemoryData
AutoCalcFields = False
FieldDefs = <
item
Name = 'DEVELOPER_ID'
DataType = ftInteger
Precision = 0
Size = 0
end
item
Name = 'DEVELOPER_NAME'
DataType = ftString
Precision = 0
Size = 130
end>
left = 240
top = 264
object RxMemoryData2DEVELOPER_ID1: TLongintField
AlignMent = taRightJustify
DisplayWidth = 10
FieldKind = fkData
FieldName = 'DEVELOPER_ID'
Index = 0
LookupCache = False
ProviderFlags = [pfInUpdate, pfInWhere]
ReadOnly = False
Required = False
end
object RxMemoryData2DEVELOPER_NAME1: TStringField
DisplayWidth = 130
FieldKind = fkData
FieldName = 'DEVELOPER_NAME'
Index = 1
LookupCache = False
ProviderFlags = [pfInUpdate, pfInWhere]
ReadOnly = False
Required = False
Size = 130
end
end

View File

@ -1,90 +1,110 @@
{ Ýòî - ôàéë ðåñóðñîâ, àâòîìàòè÷åñêè ñîçäàííûé lazarus }
LazarusResources.Add('TRxDBGridMainForm','FORMDATA',[
'TPF0'#17'TRxDBGridMainForm'#16'RxDBGridMainForm'#4'Left'#3'-'#1#6'Height'#3
+'F'#2#3'Top'#3#161#0#5'Width'#3#201#3#18'HorzScrollBar.Page'#3#200#3#18'Vert'
+'ScrollBar.Page'#3'E'#2#13'ActiveControl'#7#9'RxDBGrid1'#7'Caption'#6#26'RxD'
+'BGrid Demo (ver 3) ...'#12'ClientHeight'#3'F'#2#11'ClientWidth'#3#201#3#8
+'OnCreate'#7#10'FormCreate'#0#9'TRxDBGrid'#9'RxDBGrid1'#6'Height'#3#20#2#3'T'
+'op'#2'2'#5'Width'#3#201#3#7'Columns'#14#1#15'Title.Alignment'#7#8'taCenter'
+#13'Title.Caption'#6#4'Code'#9'FieldName'#6#2'ID'#16'Footer.Alignment'#7#14
+'taRightJustify'#20'Footer.DisplayFormat'#6#9'Count: %d'#16'Footer.ValueType'
+#7#8'fvtCount'#12'Filter.Color'#7#6'clLime'#16'Filter.ItemIndex'#2#255#0#1#15
+'Title.Alignment'#7#8'taCenter'#13'Title.Caption'#6#13'Software Name'#5'Widt'
+'h'#3'^'#1#9'FieldName'#6#4'NAME'#12'Filter.Color'#7#6'clLime'#16'Filter.Ite'
+'mIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCenter'#5'Width'#3#150#0#9'Fiel'
+'dName'#6#9'Developer'#12'Filter.Color'#7#6'clLime'#16'Filter.ItemIndex'#2
+#255#0#1#15'Title.Alignment'#7#8'taCenter'#13'Title.Caption'#6#4'Cost'#5'Wid'
+'th'#2'Z'#9'FieldName'#6#5'PRICE'#13'DisplayFormat'#6#8'#,##0.00'#16'Footer.'
+'Alignment'#7#14'taRightJustify'#20'Footer.DisplayFormat'#6#8'#,##0.00'#16'F'
+'ooter.FieldName'#6#5'PRICE'#16'Footer.ValueType'#7#6'fvtSum'#12'Filter.Colo'
+'r'#7#6'clLime'#16'Filter.ItemIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCen'
+'ter'#13'Title.Caption'#6#12'Date Present'#5'Width'#2'd'#9'FieldName'#6#12'D'
+'ate_Present'#16'Filter.ItemIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCente'
+'r'#5'Width'#3#150#0#9'FieldName'#6#12'DEVELOPER_ID'#16'Filter.ItemIndex'#2
+#255#0#0#9'OptionsRx'#11#13'rdgFooterRows'#0#11'FooterColor'#7#8'clYellow'#14
+'FooterRowCount'#2#1#9'OnFiltred'#7#16'RxDBGrid1Filtred'#5'Align'#7#8'alClie'
+'nt'#10'FocusColor'#7#5'clRed'#13'SelectedColor'#7#11'clHighlight'#10'DataSo'
+'urce'#7#11'Datasource1'#10'FixedColor'#7#9'clBtnFace'#7'Options'#11#9'dgEdi'
+'ting'#8'dgTitles'#11'dgIndicator'#14'dgColumnResize'#12'dgColumnMove'#10'dg'
+'ColLines'#10'dgRowLines'#6'dgTabs'#21'dgAlwaysShowSelection'#15'dgConfirmDe'
+'lete'#14'dgCancelOnExit'#13'dgMultiselect'#0#12'OptionsExtra'#11#14'dgeAuto'
+'Columns'#17'dgeCheckboxColumn'#0#11'ParentColor'#8#9'PopupMenu'#7#10'PopupM'
+'enu1'#8'TabOrder'#2#0#7'TabStop'#9#0#0#6'TPanel'#6'Panel1'#6'Height'#2'2'#5
+'Width'#3#201#3#5'Align'#7#5'alTop'#12'ClientHeight'#2'2'#11'ClientWidth'#3
+#201#3#8'TabOrder'#2#1#0#7'TButton'#7'Button1'#4'Left'#2#8#6'Height'#2#25#3
+'Top'#2#8#5'Width'#2'K'#6'Action'#7#12'actCalcTotal'#25'BorderSpacing.InnerB'
+'order'#2#4#8'TabOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#2'X'#6'Height'
+#2#25#3'Top'#2#8#5'Width'#3#136#0#6'Action'#7#26'actOptimizeColumnsWidthAll'
+#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#1#0#0#9'TCheckBox'#9'CheckB'
+'ox1'#4'Left'#3#241#0#6'Height'#2#20#3'Top'#2#8#5'Width'#2'K'#7'Caption'#6#10
+'Use filter'#8'OnChange'#7#15'CheckBox1Change'#8'TabOrder'#2#2#11'UseOnChang'
+'e'#9#0#0#0#13'TRxMemoryData'#13'RxMemoryData1'#9'FieldDefs'#14#1#4'Name'#6#2
+'ID'#8'DataType'#7#9'ftInteger'#9'Precision'#2#255#4'Size'#2#7#0#1#4'Name'#6
+#4'NAME'#8'DataType'#7#8'ftString'#9'Precision'#2#255#4'Size'#3#150#0#0#1#4
+'Name'#6#5'PRICE'#8'DataType'#7#7'ftFloat'#9'Precision'#2#2#4'Size'#2#12#0#1
+#4'Name'#6#9'Developer'#8'DataType'#7#8'ftString'#9'Precision'#2#255#4'Size'
+#3#150#0#0#1#4'Name'#6#12'Date_Present'#8'DataType'#7#6'ftDate'#0#1#4'Name'#6
+#12'DEVELOPER_ID'#8'DataType'#7#9'ftInteger'#0#0#16'OnFilterRecordEx'#7#27'R'
+'xMemoryData1FilterRecordEx'#4'left'#3#152#0#3'top'#3#8#1#0#13'TLongintField'
+#16'RxMemoryData1ID1'#9'AlignMent'#7#14'taRightJustify'#12'DisplayWidth'#2#10
+#9'FieldName'#6#2'ID'#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#0#0
+#12'TStringField'#18'RxMemoryData1NAME1'#12'DisplayWidth'#3#150#0#9'FieldNam'
+'e'#6#4'NAME'#5'Index'#2#1#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0
+#4'Size'#3#150#0#0#0#11'TFloatField'#19'RxMemoryData1PRICE1'#9'AlignMent'#7
+#14'taRightJustify'#12'DisplayWidth'#2#10#9'FieldName'#6#5'PRICE'#5'Index'#2
+#2#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#13'DisplayFormat'#6#8
+'#,##0.00'#9'Precision'#2#2#0#0#12'TStringField'#23'RxMemoryData1Developer1'
+#12'DisplayWidth'#3#150#0#9'FieldName'#6#9'Developer'#5'Index'#2#3#13'Provid'
+'erFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#4'Size'#3#150#0#0#0#10'TDateField'
+#26'RxMemoryData1Date_Present1'#12'DisplayWidth'#2#10#9'FieldName'#6#12'Date'
+'_Present'#5'Index'#2#4#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#0
+#0#13'TLongintField'#26'RxMemoryData1DEVELOPER_ID1'#9'AlignMent'#7#14'taRigh'
+'tJustify'#12'DisplayWidth'#2#10#9'FieldName'#6#12'DEVELOPER_ID'#5'Index'#2#5
+#13'LookupDataSet'#7#13'RxMemoryData2'#15'LookupKeyFields'#6#12'DEVELOPER_ID'
+#17'LookupResultField'#6#14'DEVELOPER_NAME'#9'KeyFields'#6#12'DEVELOPER_ID'
+#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#0#0#0#11'TDatasource'#11
+'Datasource1'#7'DataSet'#7#13'RxMemoryData1'#4'left'#2'x'#3'top'#3#8#1#0#0#10
,'TPopupMenu'#10'PopupMenu1'#4'left'#3#152#0#3'top'#3#197#0#0#9'TMenuItem'#9
+'MenuItem1'#6'Action'#7#20'actOptimizeWidthCol1'#7'OnClick'#7#27'actOptimize'
+'WidthCol1Execute'#0#0#9'TMenuItem'#9'MenuItem2'#7'Caption'#6#1'-'#0#0#9'TMe'
+'nuItem'#9'MenuItem4'#6'Action'#7#12'actCalcTotal'#7'OnClick'#7#19'actCalcTo'
+'talExecute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7#26'actOptimizeColumns'
+'WidthAll'#7'OnClick'#7'!actOptimizeColumnsWidthAllExecute'#0#0#0#11'TAction'
+'List'#11'ActionList1'#4'left'#3#206#0#3'top'#3#197#0#0#7'TAction'#12'actCal'
+'cTotal'#7'Caption'#6#13'Calc total...'#18'DisableIfNoHandler'#9#9'OnExecute'
+#7#19'actCalcTotalExecute'#0#0#7'TAction'#26'actOptimizeColumnsWidthAll'#7'C'
+'aption'#6#25'Optimize width for all...'#18'DisableIfNoHandler'#9#9'OnExecut'
+'e'#7'!actOptimizeColumnsWidthAllExecute'#0#0#7'TAction'#20'actOptimizeWidth'
+'Col1'#7'Caption'#6#17'Optimize width...'#18'DisableIfNoHandler'#9#9'OnExecu'
+'te'#7#27'actOptimizeWidthCol1Execute'#0#0#0#11'TDatasource'#11'Datasource2'
+#7'DataSet'#7#13'RxMemoryData2'#4'left'#3#207#0#3'top'#3#8#1#0#0#13'TRxMemor'
+'yData'#13'RxMemoryData2'#9'FieldDefs'#14#1#4'Name'#6#12'DEVELOPER_ID'#8'Dat'
+'aType'#7#9'ftInteger'#0#1#4'Name'#6#14'DEVELOPER_NAME'#8'DataType'#7#8'ftSt'
+'ring'#4'Size'#3#130#0#0#0#4'left'#3#240#0#3'top'#3#8#1#0#13'TLongintField'
+#26'RxMemoryData2DEVELOPER_ID1'#9'AlignMent'#7#14'taRightJustify'#12'Display'
+'Width'#2#10#9'FieldName'#6#12'DEVELOPER_ID'#13'ProviderFlags'#11#10'pfInUpd'
+'ate'#9'pfInWhere'#0#0#0#12'TStringField'#28'RxMemoryData2DEVELOPER_NAME1'#12
+'DisplayWidth'#3#130#0#9'FieldName'#6#14'DEVELOPER_NAME'#5'Index'#2#1#13'Pro'
+'viderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#4'Size'#3#130#0#0#0#0#0
'TPF0'#17'TRxDBGridMainForm'#16'RxDBGridMainForm'#4'Left'#3'+'#1#6'Height'#3
+'F'#2#3'Top'#3#161#0#5'Width'#3#201#3#13'ActiveControl'#7#6'Panel1'#7'Captio'
+'n'#6#26'RxDBGrid Demo (ver 3) ...'#12'ClientHeight'#3'F'#2#11'ClientWidth'
+#3#201#3#8'OnCreate'#7#10'FormCreate'#10'LCLVersion'#6#6'0.9.27'#0#9'TRxDBGr'
+'id'#9'RxDBGrid1'#4'Left'#2#0#6'Height'#3#21#2#3'Top'#2'1'#5'Width'#3#201#3
+#12'TitleButtons'#8#8'AutoSort'#8#7'Columns'#14#1#15'Title.Alignment'#7#8'ta'
+'Center'#13'Title.Caption'#6#4'Code'#17'Title.Orientation'#7#12'toHorizontal'
+#9'FieldName'#6#2'ID'#16'Footer.Alignment'#7#14'taRightJustify'#20'Footer.Di'
+'splayFormat'#6#9'Count: %d'#16'Footer.ValueType'#7#8'fvtCount'#19'Filter.Dr'
+'opDownRows'#2#0#12'Filter.Color'#7#6'clLime'#16'Filter.ItemIndex'#2#255#0#1
+#15'Title.Alignment'#7#8'taCenter'#13'Title.Caption'#6#13'Software Name'#17
+'Title.Orientation'#7#12'toHorizontal'#5'Width'#3'^'#1#9'FieldName'#6#4'NAME'
+#19'Filter.DropDownRows'#2#0#12'Filter.Color'#7#6'clLime'#16'Filter.ItemInde'
+'x'#2#255#0#1#15'Title.Alignment'#7#8'taCenter'#17'Title.Orientation'#7#12't'
+'oHorizontal'#5'Width'#3#150#0#9'FieldName'#6#9'Developer'#19'Filter.DropDow'
+'nRows'#2#0#12'Filter.Color'#7#6'clLime'#16'Filter.ItemIndex'#2#255#0#1#15'T'
+'itle.Alignment'#7#8'taCenter'#13'Title.Caption'#6#4'Cost'#17'Title.Orientat'
+'ion'#7#12'toHorizontal'#5'Width'#2'Z'#9'FieldName'#6#5'PRICE'#13'DisplayFor'
+'mat'#6#8'#,##0.00'#16'Footer.Alignment'#7#14'taRightJustify'#20'Footer.Disp'
+'layFormat'#6#8'#,##0.00'#16'Footer.FieldName'#6#5'PRICE'#16'Footer.ValueTyp'
+'e'#7#6'fvtSum'#19'Filter.DropDownRows'#2#0#12'Filter.Color'#7#6'clLime'#16
+'Filter.ItemIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCenter'#13'Title.Capt'
+'ion'#6#12'Date Present'#17'Title.Orientation'#7#12'toHorizontal'#5'Width'#2
+'d'#9'FieldName'#6#12'Date_Present'#19'Filter.DropDownRows'#2#0#16'Filter.It'
+'emIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCenter'#17'Title.Orientation'#7
+#12'toHorizontal'#5'Width'#3#150#0#9'FieldName'#6#12'DEVELOPER_ID'#19'Filter'
+'.DropDownRows'#2#0#16'Filter.ItemIndex'#2#255#0#0#9'OptionsRx'#11#13'rdgFoo'
+'terRows'#0#11'FooterColor'#7#8'clYellow'#14'FooterRowCount'#2#1#9'OnFiltred'
+#7#16'RxDBGrid1Filtred'#5'Align'#7#8'alClient'#10'FocusColor'#7#5'clRed'#13
+'SelectedColor'#7#11'clHighlight'#13'GridLineStyle'#7#7'psSolid'#10'DataSour'
+'ce'#7#11'Datasource1'#7'Options'#11#9'dgEditing'#8'dgTitles'#11'dgIndicator'
+#14'dgColumnResize'#12'dgColumnMove'#10'dgColLines'#10'dgRowLines'#6'dgTabs'
+#21'dgAlwaysShowSelection'#15'dgConfirmDelete'#14'dgCancelOnExit'#13'dgMulti'
+'select'#0#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu1'#8'TabOrder'#2#0#0
+#0#6'TPanel'#6'Panel1'#4'Left'#2#0#6'Height'#2'1'#3'Top'#2#0#5'Width'#3#201#3
+#5'Align'#7#5'alTop'#8'AutoSize'#9#12'ClientHeight'#2'1'#11'ClientWidth'#3
+#201#3#8'TabOrder'#2#1#0#7'TButton'#7'Button1'#22'AnchorSideLeft.Control'#7#6
+'Panel1'#21'AnchorSideTop.Control'#7#6'Panel1'#4'Left'#2#6#6'Height'#2'%'#3
+'Top'#2#6#5'Width'#2'\'#6'Action'#7#12'actCalcTotal'#8'AutoSize'#9#20'Border'
+'Spacing.Around'#2#6#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#0#0#0#7
+'TButton'#7'Button2'#22'AnchorSideLeft.Control'#7#7'Button1'#19'AnchorSideLe'
+'ft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Panel1'#4'Left'#2'h'#6
+'Height'#2'%'#3'Top'#2#6#5'Width'#3#165#0#6'Action'#7#26'actOptimizeColumnsW'
+'idthAll'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#25'BorderSpacing.InnerB'
+'order'#2#4#8'TabOrder'#2#1#0#0#9'TCheckBox'#9'CheckBox1'#22'AnchorSideLeft.'
+'Control'#7#7'Button2'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideT'
+'op.Control'#7#7'Button1'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#19
+#1#6'Height'#2#22#3'Top'#2#13#5'Width'#2'Q'#18'BorderSpacing.Left'#2#6#7'Cap'
+'tion'#6#10'Use filter'#8'OnChange'#7#15'CheckBox1Change'#8'TabOrder'#2#2#0#0
+#0#13'TRxMemoryData'#13'RxMemoryData1'#14'AutoCalcFields'#8#9'FieldDefs'#14#1
+#4'Name'#6#2'ID'#8'DataType'#7#9'ftInteger'#9'Precision'#2#255#4'Size'#2#7#0
+#1#4'Name'#6#4'NAME'#8'DataType'#7#8'ftString'#9'Precision'#2#255#4'Size'#3
+#150#0#0#1#4'Name'#6#5'PRICE'#8'DataType'#7#7'ftFloat'#9'Precision'#2#2#4'Si'
+'ze'#2#12#0#1#4'Name'#6#9'Developer'#8'DataType'#7#8'ftString'#9'Precision'#2
+#255#4'Size'#3#150#0#0#1#4'Name'#6#12'Date_Present'#8'DataType'#7#6'ftDate'#9
+'Precision'#2#0#4'Size'#2#0#0#1#4'Name'#6#12'DEVELOPER_ID'#8'DataType'#7#9'f'
+'tInteger'#9'Precision'#2#0#4'Size'#2#0#0#0#16'OnFilterRecordEx'#7#27'RxMemo'
+'ryData1FilterRecordEx'#4'left'#3#152#0#3'top'#3#8#1#0#13'TLongintField'#16
+'RxMemoryData1ID1'#12'DisplayWidth'#2#10#9'FieldKind'#7#6'fkData'#9'FieldNam'
+'e'#6#2'ID'#5'Index'#2#0#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpdat'
+'e'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#0#0#12'TStringField'#18'RxMem'
+'oryData1NAME1'#12'DisplayWidth'#3#150#0#9'FieldKind'#7#6'fkData'#9'FieldNam'
+'e'#6#4'NAME'#5'Index'#2#1#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpd'
+'ate'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#4'Size'#3#150#0#0#0#11'TFlo'
,'atField'#19'RxMemoryData1PRICE1'#12'DisplayWidth'#2#10#9'FieldKind'#7#6'fkD'
+'ata'#9'FieldName'#6#5'PRICE'#5'Index'#2#2#11'LookupCache'#8#13'ProviderFlag'
+'s'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#13'DisplayF'
+'ormat'#6#8'#,##0.00'#8'MaxValue'#5#0#0#0#0#0#0#0#0#0#0#8'MinValue'#5#0#0#0#0
+#0#0#0#0#0#0#9'Precision'#2#2#0#0#12'TStringField'#23'RxMemoryData1Developer'
+'1'#12'DisplayWidth'#3#150#0#9'FieldKind'#7#6'fkData'#9'FieldName'#6#9'Devel'
+'oper'#5'Index'#2#3#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpdate'#9
+'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#4'Size'#3#150#0#0#0#10'TDateField'
+#26'RxMemoryData1Date_Present1'#12'DisplayWidth'#2#10#9'FieldKind'#7#6'fkDat'
+'a'#9'FieldName'#6#12'Date_Present'#5'Index'#2#4#11'LookupCache'#8#13'Provid'
+'erFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#0#0#13
+'TLongintField'#26'RxMemoryData1DEVELOPER_ID1'#12'DisplayWidth'#2#10#9'Field'
+'Kind'#7#6'fkData'#9'FieldName'#6#12'DEVELOPER_ID'#5'Index'#2#5#9'KeyFields'
+#6#12'DEVELOPER_ID'#11'LookupCache'#8#13'LookupDataSet'#7#13'RxMemoryData2'
+#15'LookupKeyFields'#6#12'DEVELOPER_ID'#17'LookupResultField'#6#14'DEVELOPER'
+'_NAME'#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnly'#8#8'R'
+'equired'#8#0#0#0#11'TDatasource'#11'Datasource1'#7'DataSet'#7#13'RxMemoryDa'
+'ta1'#4'left'#2'x'#3'top'#3#8#1#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#3
+#152#0#3'top'#3#197#0#0#9'TMenuItem'#9'MenuItem1'#6'Action'#7#20'actOptimize'
+'WidthCol1'#7'OnClick'#7#27'actOptimizeWidthCol1Execute'#0#0#9'TMenuItem'#9
+'MenuItem2'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem4'#6'Action'#7#12'a'
+'ctCalcTotal'#7'OnClick'#7#19'actCalcTotalExecute'#0#0#9'TMenuItem'#9'MenuIt'
+'em3'#6'Action'#7#26'actOptimizeColumnsWidthAll'#7'OnClick'#7'!actOptimizeCo'
+'lumnsWidthAllExecute'#0#0#0#11'TActionList'#11'ActionList1'#4'left'#3#206#0
+#3'top'#3#197#0#0#7'TAction'#12'actCalcTotal'#7'Caption'#6#13'Calc total...'
+#18'DisableIfNoHandler'#9#9'OnExecute'#7#19'actCalcTotalExecute'#0#0#7'TActi'
+'on'#26'actOptimizeColumnsWidthAll'#7'Caption'#6#25'Optimize width for all..'
+'.'#18'DisableIfNoHandler'#9#9'OnExecute'#7'!actOptimizeColumnsWidthAllExecu'
+'te'#0#0#7'TAction'#20'actOptimizeWidthCol1'#7'Caption'#6#17'Optimize width.'
+'..'#18'DisableIfNoHandler'#9#9'OnExecute'#7#27'actOptimizeWidthCol1Execute'
+#0#0#0#11'TDatasource'#11'Datasource2'#7'DataSet'#7#13'RxMemoryData2'#4'left'
+#3#207#0#3'top'#3#8#1#0#0#13'TRxMemoryData'#13'RxMemoryData2'#14'AutoCalcFie'
+'lds'#8#9'FieldDefs'#14#1#4'Name'#6#12'DEVELOPER_ID'#8'DataType'#7#9'ftInteg'
+'er'#9'Precision'#2#0#4'Size'#2#0#0#1#4'Name'#6#14'DEVELOPER_NAME'#8'DataTyp'
+'e'#7#8'ftString'#9'Precision'#2#0#4'Size'#3#130#0#0#0#4'left'#3#240#0#3'top'
+#3#8#1#0#13'TLongintField'#26'RxMemoryData2DEVELOPER_ID1'#12'DisplayWidth'#2
+#10#9'FieldKind'#7#6'fkData'#9'FieldName'#6#12'DEVELOPER_ID'#5'Index'#2#0#11
+'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnl'
+'y'#8#8'Required'#8#0#0#12'TStringField'#28'RxMemoryData2DEVELOPER_NAME1'#12
+'DisplayWidth'#3#130#0#9'FieldKind'#7#6'fkData'#9'FieldName'#6#14'DEVELOPER_'
+'NAME'#5'Index'#2#1#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpdate'#9
+'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#4'Size'#3#130#0#0#0#0#0
]);

View File

@ -12,6 +12,7 @@
- исправлены глифы у TRxClock, TRxDateEdit, TAutoPanel (Edward Ivanov)
- Исправления в TRxDatePicker (Edward Ivanov)
+ Добавлены компоненты TRxDBSpinEdit, TRxTimeEdit, TRxDBTimeEdit
+ TRxLoginDialo теперь работает. По сравнению с оригинальным функционал сильно расширен. Изменён дизайн формы
22.05.2008 - версия 2.0.0.136 (svn revision 100)
+ У объекта TRxCustomDBLookupCombo введён контроль на CircularDataLink
+ У объекта TRxCustomDBLookupCombo ускорена отрисовка данных

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

View File

@ -1,2 +1,2 @@
del rx.lrs
D:\lazarus\tools\lazres.exe rx.lrs TDBDateEdit.xpm TRXLookUpEdit.xpm TRxDBCalcEdit.xpm TRxDBLookupCombo.xpm TRxDBGrid.xpm TDualListDialog.xpm TFolderLister.xpm TRxMemoryData.xpm TCURRENCYEDIT.xpm TRXSWITCH.xpm TRXDICE.xpm TRXDBCOMBOBOX.xpm ttoolpanel.xpm trxxpmanifest.xpm TPAGEMANAGER.xpm TRXAPPICON.xpm TSECRETPANEL.xpm TRXLABEL.xpm tautopanel.xpm TRxCalendarGrid.xpm TRxDateEdit.bmp TRxClock.bmp TRxSpeedButton.bmp TRxSpinButton.png TRxSpinEdit.png TRXDBSpinEdit.png TRxTimeEdit.png TRxDBTimeEdit.png TRxDBProgressBar.png TRxDBTrackBar.png
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

View File

@ -1,3 +1,2 @@
rm rx.lrs
/usr/local/share/lazarus/tools/lazres rx.lrs TDBDateEdit.xpm TRXLookUpEdit.xpm TRxDBCalcEdit.xpm TRxDBLookupCombo.xpm TRxDBGrid.xpm TDualListDialog.xpm TFolderLister.xpm TRxMemoryData.xpm TCURRENCYEDIT.xpm TRXSWITCH.xpm TRXDICE.xpm TRXDBCOMBOBOX.xpm ttoolpanel.xpm trxxpmanifest.xpm TPAGEMANAGER.xpm TRXAPPICON.xpm TSECRETPANEL.xpm TRXLABEL.xpm tautopanel.xpm TRxCalendarGrid.xpm TRxDateEdit.png TRxClock.png TRxSpeedButton.png TRxSpinButton.png TRxSpinEdit.png TRXDBSpinEdit.png TRxTimeEdit.png TRxDBTimeEdit.png TRxDBProgressBar.png TRxDBTrackBar.png
/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

View File

@ -555,3 +555,27 @@ LazarusResources.Add('TRxDBTrackBar','PNG',[
+#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
+#0#0#9'pHYs'#0#0#14#156#0#0#14#156#1#7#148'S'#221#0#0#1#212'IDATH'#137#213
+#149'?hSQ'#20#135#191#27'S'#229#17'hET'#208','#25#218'A%T'#168'"'#220'!'#185
+'NJ'#165#155'S'#187#212#209'!'#234#224#164#203'-d'#233#148'5'#16#138#144#205
+','#26#23'!'#211'u'#17#137#155#8'>'#130#213#169')Ei'#254',Akr'#29#170#177#205
+'K^^'#211#183#248#155#238';'#247#156#243#157#195'}'#156#3#255#187#196#160'A+'
+'l'#255'l'#236#224#245'Xi%'#254#196#238#231#142#30#190#182'v'#144'i'#189'5'
+#140#148#224'`A'#214#130#16#209#145#222'C'#131#142#174'C'#229'i'#173#143#151
+'m@Zko'#7'J'#169'P'#146#27'c'#0#136'L'#18'\.'#151')'#22#139#129'|'#143#12#232
+'v'#187#8'!p'#28#135'R'#169#20'.'#192'u]'#242#249'<'#213'j'#149'B'#161#128#16
+#130'L&'#19#30' '#153'L'#226#186'.'#217'l'#150'J'#165#130#148#146'h'#212#255
+'G'#28#9'x'#244'p'#133#31#173#28'ra'#11'y'#173#133'\p'#233't:'#244'z'#189#190
+'O<'#30''''#151#203'M'#6#184'}]0?{'#158'''K+|'#251#186#195#148'3G'#235#251'6'
+#141'F'#131'g'#27#247'}'#147#30#212#200#254'"'''#247'85'#245#18#189#241#24
+#219'^'#167#241#22'Rg-'#175#239#213'9w'#165'N- '#192#247#13'b'#177#203#196#18
+')j;'#155#156'Im'#146'X'#252'B'#236'B'#224#226#253#1#246#215'O'#232#188#1#166
+#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
]);

View File

@ -555,3 +555,27 @@ LazarusResources.Add('TRxDBTrackBar','PNG',[
+#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
+#0#0#9'pHYs'#0#0#14#156#0#0#14#156#1#7#148'S'#221#0#0#1#212'IDATH'#137#213
+#149'?hSQ'#20#135#191#27'S'#229#17'hET'#208','#25#218'A%T'#168'"'#220'!'#185
+'NJ'#165#155'S'#187#212#209'!'#234#224#164#203'-d'#233#148'5'#16#138#144#205
+','#26#23'!'#211'u'#17#137#155#8'>'#130#213#169')Ei'#254',Akr'#29#170#177#205
+'K^^'#211#183#248#155#238';'#247#156#243#157#195'}'#156#3#255#187#196#160'A+'
+'l'#255'l'#236#224#245'Xi%'#254#196#238#231#142#30#190#182'v'#144'i'#189'5'
+#140#148#224'`A'#214#130#16#209#145#222'C'#131#142#174'C'#229'i'#173#143#151
+'m@Zko'#7'J'#169'P'#146#27'c'#0#136'L'#18'\.'#151')'#22#139#129'|'#143#12#232
+'v'#187#8'!p'#28#135'R'#169#20'.'#192'u]'#242#249'<'#213'j'#149'B'#161#128#16
+#130'L&'#19#30' '#153'L'#226#186'.'#217'l'#150'J'#165#130#148#146'h'#212#255
+'G'#28#9'x'#244'p'#133#31#173#28'ra'#11'y'#173#133'\p'#233't:'#244'z'#189#190
+'O<'#30''''#151#203'M'#6#184'}]0?{'#158'''K+|'#251#186#195#148'3G'#235#251'6'
+#141'F'#131'g'#27#247'}'#147#30#212#200#254'"'''#247'85'#245#18#189#241#24
+#219'^'#167#241#22'Rg-'#175#239#213'9w'#165'N- '#192#247#13'b'#177#203#196#18
+')j;'#155#156'Im'#146'X'#252'B'#236'B'#224#226#253#1#246#215'O'#232#188#1#166
+#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
]);

View File

@ -30,11 +30,21 @@ type
const
OnGetDefaultIniName: TOnGetDefaultIniName = nil;
//Save to IniFile or TRegIniFile string value
procedure IniWriteString(IniFile: TObject; const Section, Ident,
Value: string);
function IniReadString(IniFile: TObject; const Section, Ident,
Value: string):string;
//Save to IniFile or TRegIniFile integer value
procedure IniWriteInteger(IniFile: TObject; const Section, Ident:string;
const Value: integer);
function IniReadInteger(IniFile: TObject; const Section, Ident:string;
const Value: integer):integer;
function GetDefaultIniRegKey: string;
implementation
uses Registry, Forms;
uses Registry, Forms, FileUtil;
function GetDefaultSection(Component: TComponent): string;
var
@ -64,11 +74,21 @@ begin
end;
function GetDefaultIniName: string;
var
S:string;
begin
if Assigned(OnGetDefaultIniName) then
Result:= OnGetDefaultIniName()
else
Result := ExtractFileName(ChangeFileExt(Application.ExeName, '.INI'));
begin
Result := ExtractFileName(ChangeFileExt(Application.ExeName, '.ini'));
{$IFNDEF WIN32}
S:=UTF8ToSys(GetAppConfigDir(false));
if not DirectoryExists(S) then
mkdir(S);
Result:=S+Result;
{$ENDIF}
end;
end;
procedure GetDefaultIniData(Control: TControl; var IniFileName,
@ -99,7 +119,29 @@ var
begin
if IniFile is TRegIniFile then
TRegIniFile(IniFile).WriteString(Section, Ident, Value)
else begin
else
begin
S := Value;
if S <> '' then
begin
if ((S[1] = '"') and (S[Length(S)] = '"')) or
((S[1] = '''') and (S[Length(S)] = '''')) then
S := '"' + S + '"';
end;
if IniFile is TIniFile then
TIniFile(IniFile).WriteString(Section, Ident, S);
end;
end;
function IniReadString(IniFile: TObject; const Section, Ident, Value: string
): string;
var
S: string;
begin
if IniFile is TRegIniFile then
Result:=TRegIniFile(IniFile).ReadString(Section, Ident, Value)
else
begin
S := Value;
if S <> '' then begin
if ((S[1] = '"') and (S[Length(S)] = '"')) or
@ -107,7 +149,31 @@ begin
S := '"' + S + '"';
end;
if IniFile is TIniFile then
TIniFile(IniFile).WriteString(Section, Ident, S);
Result:=TIniFile(IniFile).ReadString(Section, Ident, S);
end;
end;
procedure IniWriteInteger(IniFile: TObject; const Section, Ident: string;
const Value: integer);
begin
if IniFile is TRegIniFile then
TRegIniFile(IniFile).WriteInteger(Section, Ident, Value)
else
begin
if IniFile is TIniFile then
TIniFile(IniFile).WriteInteger(Section, Ident, Value);
end;
end;
function IniReadInteger(IniFile: TObject; const Section, Ident: string;
const Value: integer): integer;
begin
if IniFile is TRegIniFile then
Result:=TRegIniFile(IniFile).ReadInteger(Section, Ident, Value)
else
begin
if IniFile is TIniFile then
Result:=TIniFile(IniFile).ReadInteger(Section, Ident, Value);
end;
end;
@ -121,22 +187,6 @@ begin
Result := 'Software\' + Result;
end;
{
procedure IniWriteString(IniFile: TIniFile; const Section, Ident,
Value: string);
var
S: string;
begin
S := Value;
if S <> '' then
begin
if ((S[1] = '"') and (S[Length(S)] = '"')) or
((S[1] = '''') and (S[Length(S)] = '''')) then
S := '"' + S + '"';
end;
if IniFile is TIniFile then
TIniFile(IniFile).WriteString(Section, Ident, S);
end;
}
end.

View File

@ -121,6 +121,8 @@ resourcestring
SHintLabel = 'Введите Ваше пользовательское имя и пароль';
SUserNameLabel = '&Имя пользователя:';
SPasswordLabel = '&Пароль:';
SMore1 = '&Больше >>';
SMore2 = '&Меньше <<';
SInvalidUserName = 'Неверное имя пользователя или пароль';
SChangePassword = 'Смена пароля';
SOldPasswordLabel = '&Старый пароль:';

View File

@ -1,174 +1,382 @@
object RxLoginForm: TRxLoginForm
Cursor = crArrow
Left = 230
Height = 159
Top = 141
Width = 442
HorzScrollBar.Page = 441
VertScrollBar.Page = 158
BorderIcons = []
BorderStyle = bsDialog
Left = 458
Height = 203
Top = 193
Width = 455
ActiveControl = UserNameEdit
BorderIcons = [biSystemMenu, biHelp]
Caption = 'RxLoginForm'
ClientHeight = 159
ClientWidth = 442
Font.Height = -11
Font.Name = 'MS Sans Serif'
ClientHeight = 203
ClientWidth = 455
FormStyle = fsStayOnTop
OnCreate = FormCreate
OnShow = FormShow
Position = poScreenCenter
LCLVersion = '0.9.25'
LCLVersion = '0.9.27'
object AppIcon: TImage
Left = 14
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
Left = 6
Height = 32
Top = 12
Top = 6
Width = 32
AutoSize = True
BorderSpacing.Around = 6
end
object KeyImage: TImage
Left = 10
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
Left = 6
Height = 32
Top = 15
Top = 6
Width = 32
AutoSize = True
BorderSpacing.Around = 6
Picture.Data = {
055449636F6EEB0400002F2A2058504D202A2F0A737461746963206368617220
2A677261706869635B5D203D207B0A22333220333220342031222C0A222E2063
204E6F6E65222C0A222C20632023383038303830222C0A222D20632023303030
303030222C0A222A20632023464646464646222C0A222E2E2E2E2E2E2E2E2E2E
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C
0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E
2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E
2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E
2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E
2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C
0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E
2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E
2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E
2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E
2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C
0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E
2E2E222C0A222C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2D2E2E2E2E2E2E2E
2E2E2E2E2E2E222C0A222C2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2D2E2E2E
2E2E2E2E2E2E2E2E2E2E222C0A222C2A2A2C2D2D2A2A2A2A2A2A2A2A2A2A2A2A
2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222C2A2C2D2C2D2D2A2A2A2A2A2A2A
2A2A2A2A2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222C2A2D2D2A2A2D2D2D2D
2D2D2D2D2D2D2D2A2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222C2A2D2D2A2A
2D2D2D2D2D2D2D2D2D2D2D2A2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222C2A
2C2D2C2D2D2A2A2A2A2D2D2A2D2D2A2A2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C
0A222C2A2A2C2D2D2A2A2A2A2A2D2D2A2D2D2A2A2D2E2E2E2E2E2E2E2E2E2E2E
2E2E222C0A222C2A2A2A2A2A2A2A2A2A2A2D2D2A2D2D2A2A2D2E2E2E2E2E2E2E
2E2E2E2E2E2E222C0A222C2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2D2E2E2E
2E2E2E2E2E2E2E2E2E2E222C0A222C2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A
2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222D2D2D2D2D2D2D2D2D2D2D2D2D2D
2D2D2D2D2D2E2E2E2E2E2E2E2E2E2E2E2E2E227D0A
055449636F6EBE1000000000010001002020000001002000A810000016000000
2800000020000000400000000100200000000000001000006400000064000000
0000000000000000000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FFFFFFFFFF
000000FF000000FFFFFFFFFFFFFFFFFF000000FF000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000808080FFFFFFFFFFFFFFFFFF808080FF000000FF000000FF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FFFFFFFFFF
000000FF000000FFFFFFFFFFFFFFFFFF000000FF000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000808080FFFFFFFFFF808080FF000000FF808080FF000000FF
000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FFFFFFFFFF
000000FF000000FFFFFFFFFFFFFFFFFF000000FF000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000808080FFFFFFFFFF000000FF000000FFFFFFFFFFFFFFFFFF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FFFFFFFFFF000000FF000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000808080FFFFFFFFFF000000FF000000FFFFFFFFFFFFFFFFFF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FFFFFFFFFF000000FF000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000808080FFFFFFFFFF808080FF000000FF808080FF000000FF
000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000808080FFFFFFFFFFFFFFFFFF808080FF000000FF000000FF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000808080FF808080FF808080FF808080FF808080FF808080FF
808080FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF
808080FF808080FF808080FF808080FF000000FF000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000
}
end
object HintLabel: TLabel
Left = 64
Height = 13
Top = 31
Width = 285
AutoSize = False
AnchorSideLeft.Control = AppIcon
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Owner
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 44
Height = 18
Top = 6
Width = 405
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
Caption = 'HintLabel'
ParentColor = False
ShowAccelChar = False
end
object UserNameLabel: TLabel
Left = 64
Height = 13
Top = 64
Width = 105
AutoSize = False
AnchorSideLeft.Control = Owner
AnchorSideBottom.Control = UserNameEdit
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 18
Top = 63
Width = 70
Anchors = [akLeft, akBottom]
BorderSpacing.Left = 6
Caption = 'UserName'
FocusControl = UserNameEdit
ParentColor = False
end
object PasswordLabel: TLabel
Left = 64
Height = 13
AnchorSideLeft.Control = Owner
AnchorSideBottom.Control = PasswordEdit
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 18
Top = 96
Width = 105
AutoSize = False
Width = 60
Anchors = [akLeft, akBottom]
BorderSpacing.Left = 6
Caption = 'Password'
FocusControl = PasswordEdit
ParentColor = False
end
object AppTitleLabel: TLabel
Left = 64
Height = 13
Top = 12
Width = 285
AutoSize = False
AnchorSideLeft.Control = AppIcon
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = HintLabel
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 44
Height = 18
Top = 30
Width = 405
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
Caption = 'AppTitleLabel'
ParentColor = False
ShowAccelChar = False
end
object CustomLabel: TLabel
Left = 64
Height = 13
Top = 128
Width = 105
AutoSize = False
object DataBaseLabel: TLabel
AnchorSideLeft.Control = Owner
AnchorSideBottom.Control = CustomCombo
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 18
Top = 133
Width = 63
Anchors = [akLeft, akBottom]
BorderSpacing.Left = 6
Caption = 'Database'
FocusControl = CustomCombo
ParentColor = False
end
object UserNameEdit: TEdit
AnchorSideLeft.Control = UserNameLabel
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = AppTitleLabel
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Cursor = crIBeam
Left = 172
Height = 21
Top = 60
Width = 169
Left = 94
Height = 27
Top = 54
Width = 355
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Left = 12
BorderSpacing.Around = 6
TabOrder = 0
Text = '1'
end
object PasswordEdit: TEdit
AnchorSideLeft.Control = UserNameEdit
AnchorSideTop.Control = UserNameEdit
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = UserNameEdit
AnchorSideRight.Side = asrBottom
Cursor = crIBeam
Left = 172
Height = 21
Top = 92
Width = 169
Left = 94
Height = 27
Top = 87
Width = 355
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Top = 6
EchoMode = emPassword
PasswordChar = '*'
TabOrder = 1
end
object OkBtn: TButton
Left = 356
Height = 25
Top = 12
Width = 77
BorderSpacing.InnerBorder = 2
Caption = 'OK'
Default = True
OnClick = OkBtnClick
TabOrder = 3
end
object CancelBtn: TButton
Left = 356
Height = 25
Top = 44
Width = 77
BorderSpacing.InnerBorder = 2
Cancel = True
Caption = 'Cancel'
ModalResult = 2
TabOrder = 4
Text = '1'
end
object CustomCombo: TComboBox
Left = 172
Height = 21
Top = 124
Width = 169
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending]
ItemHeight = 13
MaxLength = 0
Sorted = True
AnchorSideLeft.Control = UserNameEdit
AnchorSideTop.Control = PasswordEdit
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = UserNameEdit
AnchorSideRight.Side = asrBottom
Left = 94
Height = 31
Top = 120
Width = 355
Anchors = [akTop, akLeft, akRight]
AutoComplete = False
BorderSpacing.Top = 6
ItemHeight = 0
ItemWidth = 0
Style = csDropDownList
TabOrder = 2
end
object btnOK: TBitBtn
AnchorSideLeft.Control = PasswordEdit
AnchorSideTop.Control = btnCancel
AnchorSideRight.Control = btnCancel
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 190
Height = 38
Top = 159
Width = 60
Anchors = [akTop, akRight, akBottom]
AutoSize = True
BorderSpacing.Right = 6
BorderSpacing.Bottom = 6
BorderSpacing.InnerBorder = 2
Caption = '&ОК'
Default = True
Kind = bkOK
ModalResult = 1
OnClick = btnOKClick
TabOrder = 3
end
object btnCancel: TBitBtn
AnchorSideTop.Control = CustomCombo
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = btnHelp
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 256
Height = 38
Top = 159
Width = 93
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Around = 6
BorderSpacing.InnerBorder = 2
Cancel = True
Caption = 'Отмена'
Kind = bkCancel
ModalResult = 2
TabOrder = 4
end
object btnHelp: TBitBtn
AnchorSideTop.Control = btnCancel
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 355
Height = 38
Top = 159
Width = 94
Anchors = [akTop, akRight, akBottom]
AutoSize = True
BorderSpacing.Right = 6
BorderSpacing.Bottom = 6
Caption = '&Справка'
Kind = bkHelp
TabOrder = 5
end
object btnMore: TBitBtn
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = btnCancel
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 38
Top = 159
Width = 73
Anchors = [akTop, akLeft, akBottom]
AutoSize = True
BorderSpacing.Left = 6
BorderSpacing.Bottom = 6
Caption = 'More >>'
OnClick = btnMoreClick
TabOrder = 6
end
end

View File

@ -1,56 +1,220 @@
{ Ýòî - ôàéë ðåñóðñîâ, àâòîìàòè÷åñêè ñîçäàííûé lazarus }
LazarusResources.Add('TRxLoginForm','FORMDATA',[
'TPF0'#12'TRxLoginForm'#11'RxLoginForm'#6'Cursor'#7#7'crArrow'#4'Left'#3#230#0
+#6'Height'#3#159#0#3'Top'#3#141#0#5'Width'#3#186#1#18'HorzScrollBar.Page'#3
+#185#1#18'VertScrollBar.Page'#3#158#0#11'BorderIcons'#11#0#11'BorderStyle'#7
+#8'bsDialog'#7'Caption'#6#11'RxLoginForm'#12'ClientHeight'#3#159#0#11'Client'
+'Width'#3#186#1#11'Font.Height'#2#245#9'Font.Name'#6#13'MS Sans Serif'#9'For'
+'mStyle'#7#11'fsStayOnTop'#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormSh'
+'ow'#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.25'#0#6'TImage'
+#7'AppIcon'#4'Left'#2#14#6'Height'#2' '#3'Top'#2#12#5'Width'#2' '#8'AutoSize'
+#9#0#0#6'TImage'#8'KeyImage'#4'Left'#2#10#6'Height'#2' '#3'Top'#2#15#5'Width'
+#2' '#8'AutoSize'#9#12'Picture.Data'#10#245#4#0#0#5'TIcon'#235#4#0#0'/* XPM '
+'*/'#10'static char *graphic[] = {'#10'"32 32 4 1",'#10'". c None",'#10'", c'
+' #808080",'#10'"- c #000000",'#10'"* c #FFFFFF",'#10'".....................'
+'...........",'#10'"................................",'#10'"................'
+'................",'#10'"................................",'#10'"...........'
+'.....................",'#10'"................................",'#10'"......'
+'..........................",'#10'"................................",'#10'".'
+'...............................",'#10'"................................",'
+#10'"................................",'#10'"...............................'
+'.",'#10'"................................",'#10'"..........................'
+'......",'#10'"................................",'#10'".....................'
+'...........",'#10'"................................",'#10'"................'
+'................",'#10'"................................",'#10'"...........'
+'.....................",'#10'",,,,,,,,,,,,,,,,,,-.............",'#10'",*****'
+'************-.............",'#10'",**,--************-.............",'#10'",'
+'*,-,--***********-.............",'#10'",*--**-----------*-.............",'
+#10'",*--**-----------*-.............",'#10'",*,-,--****--*--**-............'
+'.",'#10'",**,--*****--*--**-.............",'#10'",**********--*--**-.......'
+'......",'#10'",*****************-.............",'#10'",*****************-..'
+'...........",'#10'"-------------------............."}'#10#0#0#6'TLabel'#9'H'
+'intLabel'#4'Left'#2'@'#6'Height'#2#13#3'Top'#2#31#5'Width'#3#29#1#8'AutoSiz'
+'e'#8#11'ParentColor'#8#13'ShowAccelChar'#8#0#0#6'TLabel'#13'UserNameLabel'#4
+'Left'#2'@'#6'Height'#2#13#3'Top'#2'@'#5'Width'#2'i'#8'AutoSize'#8#12'FocusC'
+'ontrol'#7#12'UserNameEdit'#11'ParentColor'#8#0#0#6'TLabel'#13'PasswordLabel'
+#4'Left'#2'@'#6'Height'#2#13#3'Top'#2'`'#5'Width'#2'i'#8'AutoSize'#8#12'Focu'
+'sControl'#7#12'PasswordEdit'#11'ParentColor'#8#0#0#6'TLabel'#13'AppTitleLab'
+'el'#4'Left'#2'@'#6'Height'#2#13#3'Top'#2#12#5'Width'#3#29#1#8'AutoSize'#8#11
+'ParentColor'#8#13'ShowAccelChar'#8#0#0#6'TLabel'#11'CustomLabel'#4'Left'#2
+'@'#6'Height'#2#13#3'Top'#3#128#0#5'Width'#2'i'#8'AutoSize'#8#12'FocusContro'
+'l'#7#11'CustomCombo'#11'ParentColor'#8#0#0#5'TEdit'#12'UserNameEdit'#6'Curs'
+'or'#7#7'crIBeam'#4'Left'#3#172#0#6'Height'#2#21#3'Top'#2'<'#5'Width'#3#169#0
+#8'TabOrder'#2#0#0#0#5'TEdit'#12'PasswordEdit'#6'Cursor'#7#7'crIBeam'#4'Left'
+#3#172#0#6'Height'#2#21#3'Top'#2'\'#5'Width'#3#169#0#8'EchoMode'#7#10'emPass'
+'word'#12'PasswordChar'#6#1'*'#8'TabOrder'#2#1#0#0#7'TButton'#5'OkBtn'#4'Lef'
+'t'#3'd'#1#6'Height'#2#25#3'Top'#2#12#5'Width'#2'M'#25'BorderSpacing.InnerBo'
+'rder'#2#2#7'Caption'#6#2'OK'#7'Default'#9#7'OnClick'#7#10'OkBtnClick'#8'Tab'
+'Order'#2#3#0#0#7'TButton'#9'CancelBtn'#4'Left'#3'd'#1#6'Height'#2#25#3'Top'
+#2','#5'Width'#2'M'#25'BorderSpacing.InnerBorder'#2#2#6'Cancel'#9#7'Caption'
+#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#4#0#0#9'TComboBox'#11'CustomC'
+'ombo'#4'Left'#3#172#0#6'Height'#2#21#3'Top'#2'|'#5'Width'#3#169#0#16'AutoCo'
+'mpleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#10'Ite'
+'mHeight'#2#13#9'MaxLength'#2#0#6'Sorted'#9#5'Style'#7#14'csDropDownList'#8
+'TabOrder'#2#2#0#0#0
'TPF0'#12'TRxLoginForm'#11'RxLoginForm'#6'Cursor'#7#7'crArrow'#4'Left'#3#202#1
+#6'Height'#3#203#0#3'Top'#3#193#0#5'Width'#3#199#1#13'ActiveControl'#7#12'Us'
+'erNameEdit'#11'BorderIcons'#11#12'biSystemMenu'#6'biHelp'#0#7'Caption'#6#11
+'RxLoginForm'#12'ClientHeight'#3#203#0#11'ClientWidth'#3#199#1#9'FormStyle'#7
+#11'fsStayOnTop'#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#8'Posi'
+'tion'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.27'#0#6'TImage'#7'AppIcon'
+#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4
+'Left'#2#6#6'Height'#2' '#3'Top'#2#6#5'Width'#2' '#8'AutoSize'#9#20'BorderSp'
+'acing.Around'#2#6#0#0#6'TImage'#8'KeyImage'#22'AnchorSideLeft.Control'#7#5
+'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#6#6'Height'#2' '#3'To'
+'p'#2#6#5'Width'#2' '#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#12'Picture.'
+'Data'#10#200#16#0#0#5'TIcon'#190#16#0#0#0#0#1#0#1#0' '#0#0#1#0' '#0#168#16
+#0#0#22#0#0#0'('#0#0#0' '#0#0#0'@'#0#0#0#1#0' '#0#0#0#0#0#0#16#0#0'd'#0#0#0
+'d'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#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#128#128#128#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#0#0#0#255#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#128#128#128#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#0#0#0#255#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#128#128#128
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#0#0#0#255#0#0#0#255#255#255#255#255#0#0#0#255#0#0#0#255#255#255
+#255#255#255#255#255#255#0#0#0#255#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#128#128#128
+#255#255#255#255#255#255#255#255#255#128#128#128#255#0#0#0#255#0#0#0#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#0#0#0#255#0#0#0#255#255#255#255#255#0#0#0#255#0#0#0#255#255#255#255#255#255
+#255#255#255#0#0#0#255#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#128#128#128#255#255#255
+#255#255#128#128#128#255#0#0#0#255#128#128#128#255#0#0#0#255#0#0#0#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0
+#255#255#255#255#255#0#0#0#255#0#0#0#255#255#255#255#255#255#255#255#255#0#0
+#0#255#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#128#128#128#255#255#255#255#255#0#0#0#255
+#0#0#0#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0
+#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255
+#255#255#255#255#0#0#0#255#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#128#128#128#255#255
+#255#255#255#0#0#0#255#0#0#0#255#255#255#255#255#255#255#255#255#0#0#0#255#0
+#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#255#255#255#255#255#0#0#0#255#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#128#128#128#255#255#255#255#255#128#128#128#255#0#0#0#255#128#128#128#255
+#0#0#0#255#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#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#128#128#128#255#255#255#255#255#255#255#255#255#128#128#128#255#0#0#0
+#255#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#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#128#128#128#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
,#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#0#0#0#255#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#128#128#128#255#128#128#128#255
+#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128
+#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128
+#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128
+#128#128#255#128#128#128#255#0#0#0#255#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#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#6'TLabel'#9'HintLabel'#22
+'AnchorSideLeft.Control'#7#7'AppIcon'#19'AnchorSideLeft.Side'#7#9'asrBottom'
+#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner'
+#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2','#6'Height'#2#18#3'Top'#2
+#6#5'Width'#3#149#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderS'
+'pacing.Around'#2#6#7'Caption'#6#9'HintLabel'#11'ParentColor'#8#13'ShowAccel'
+'Char'#8#0#0#6'TLabel'#13'UserNameLabel'#22'AnchorSideLeft.Control'#7#5'Owne'
+'r'#24'AnchorSideBottom.Control'#7#12'UserNameEdit'#21'AnchorSideBottom.Side'
+#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#18#3'Top'#2'?'#5'Width'#2'F'#7'Ancho'
+'rs'#11#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#6#7'Caption'#6#8'Us'
+'erName'#12'FocusControl'#7#12'UserNameEdit'#11'ParentColor'#8#0#0#6'TLabel'
+#13'PasswordLabel'#22'AnchorSideLeft.Control'#7#5'Owner'#24'AnchorSideBottom'
+'.Control'#7#12'PasswordEdit'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Lef'
+'t'#2#6#6'Height'#2#18#3'Top'#2'`'#5'Width'#2'<'#7'Anchors'#11#6'akLeft'#8'a'
+'kBottom'#0#18'BorderSpacing.Left'#2#6#7'Caption'#6#8'Password'#12'FocusCont'
+'rol'#7#12'PasswordEdit'#11'ParentColor'#8#0#0#6'TLabel'#13'AppTitleLabel'#22
+'AnchorSideLeft.Control'#7#7'AppIcon'#19'AnchorSideLeft.Side'#7#9'asrBottom'
+#21'AnchorSideTop.Control'#7#9'HintLabel'#18'AnchorSideTop.Side'#7#9'asrBott'
+'om'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asr'
+'Bottom'#4'Left'#2','#6'Height'#2#18#3'Top'#2#30#5'Width'#3#149#1#7'Anchors'
+#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6
+#13'AppTitleLabel'#11'ParentColor'#8#13'ShowAccelChar'#8#0#0#6'TLabel'#13'Da'
+'taBaseLabel'#22'AnchorSideLeft.Control'#7#5'Owner'#24'AnchorSideBottom.Cont'
+'rol'#7#11'CustomCombo'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#6
+#6'Height'#2#18#3'Top'#3#133#0#5'Width'#2'?'#7'Anchors'#11#6'akLeft'#8'akBot'
+'tom'#0#18'BorderSpacing.Left'#2#6#7'Caption'#6#8'Database'#12'FocusControl'
+#7#11'CustomCombo'#11'ParentColor'#8#0#0#5'TEdit'#12'UserNameEdit'#22'Anchor'
+'SideLeft.Control'#7#13'UserNameLabel'#19'AnchorSideLeft.Side'#7#9'asrBottom'
+#21'AnchorSideTop.Control'#7#13'AppTitleLabel'#18'AnchorSideTop.Side'#7#9'as'
+'rBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9
+'asrBottom'#6'Cursor'#7#7'crIBeam'#4'Left'#2'^'#6'Height'#2#27#3'Top'#2'6'#5
+'Width'#3'c'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#18
+'BorderSpacing.Left'#2#12#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#0#4'Tex'
+'t'#6#1'1'#0#0#5'TEdit'#12'PasswordEdit'#22'AnchorSideLeft.Control'#7#12'Use'
+'rNameEdit'#21'AnchorSideTop.Control'#7#12'UserNameEdit'#18'AnchorSideTop.Si'
+'de'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#12'UserNameEdit'#20'Anchor'
+'SideRight.Side'#7#9'asrBottom'#6'Cursor'#7#7'crIBeam'#4'Left'#2'^'#6'Height'
+#2#27#3'Top'#2'W'#5'Width'#3'c'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'
+#0#8'AutoSize'#9#17'BorderSpacing.Top'#2#6#8'EchoMode'#7#10'emPassword'#12'P'
+'asswordChar'#6#1'*'#8'TabOrder'#2#1#4'Text'#6#1'1'#0#0#9'TComboBox'#11'Cust'
+'omCombo'#22'AnchorSideLeft.Control'#7#12'UserNameEdit'#21'AnchorSideTop.Con'
+'trol'#7#12'PasswordEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSid'
+'eRight.Control'#7#12'UserNameEdit'#20'AnchorSideRight.Side'#7#9'asrBottom'#4
+'Left'#2'^'#6'Height'#2#31#3'Top'#2'x'#5'Width'#3'c'#1#7'Anchors'#11#5'akTop'
+#6'akLeft'#7'akRight'#0#12'AutoComplete'#8#17'BorderSpacing.Top'#2#6#10'Item'
+'Height'#2#0#9'ItemWidth'#2#0#5'Style'#7#14'csDropDownList'#8'TabOrder'#2#2#0
+#0#7'TBitBtn'#5'btnOK'#22'AnchorSideLeft.Control'#7#12'PasswordEdit'#21'Anch'
+'orSideTop.Control'#7#9'btnCancel'#23'AnchorSideRight.Control'#7#9'btnCancel'
+#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBo'
+'ttom'#4'Left'#3#190#0#6'Height'#2'&'#3'Top'#3#159#0#5'Width'#2'<'#7'Anchors'
,#11#5'akTop'#7'akRight'#8'akBottom'#0#8'AutoSize'#9#19'BorderSpacing.Right'#2
+#6#20'BorderSpacing.Bottom'#2#6#25'BorderSpacing.InnerBorder'#2#2#7'Caption'
+#6#5'&'#208#158#208#154#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#7
+'OnClick'#7#10'btnOKClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#9'btnCancel'#21'An'
+'chorSideTop.Control'#7#11'CustomCombo'#18'AnchorSideTop.Side'#7#9'asrBottom'
+#23'AnchorSideRight.Control'#7#7'btnHelp'#24'AnchorSideBottom.Control'#7#5'O'
+'wner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#0#1#6'Height'#2'&'
+#3'Top'#3#159#0#5'Width'#2']'#7'Anchors'#11#7'akRight'#8'akBottom'#0#8'AutoS'
+'ize'#9#20'BorderSpacing.Around'#2#6#25'BorderSpacing.InnerBorder'#2#2#6'Can'
+'cel'#9#7'Caption'#6#12#208#158#209#130#208#188#208#181#208#189#208#176#4'Ki'
+'nd'#7#8'bkCancel'#11'ModalResult'#2#2#8'TabOrder'#2#4#0#0#7'TBitBtn'#7'btnH'
+'elp'#21'AnchorSideTop.Control'#7#9'btnCancel'#23'AnchorSideRight.Control'#7
+#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Contro'
+'l'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'c'#1#6'Hei'
+'ght'#2'&'#3'Top'#3#159#0#5'Width'#2'^'#7'Anchors'#11#5'akTop'#7'akRight'#8
+'akBottom'#0#8'AutoSize'#9#19'BorderSpacing.Right'#2#6#20'BorderSpacing.Bott'
+'om'#2#6#7'Caption'#6#15'&'#208#161#208#191#209#128#208#176#208#178#208#186
+#208#176#4'Kind'#7#6'bkHelp'#8'TabOrder'#2#5#0#0#7'TBitBtn'#7'btnMore'#22'An'
+'chorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#9'btnCancel'#24
+'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBotto'
+'m'#4'Left'#2#6#6'Height'#2'&'#3'Top'#3#159#0#5'Width'#2'I'#7'Anchors'#11#5
+'akTop'#6'akLeft'#8'akBottom'#0#8'AutoSize'#9#18'BorderSpacing.Left'#2#6#20
+'BorderSpacing.Bottom'#2#6#7'Caption'#6#7'More >>'#7'OnClick'#7#12'btnMoreCl'
+'ick'#8'TabOrder'#2#6#0#0#0
]);

View File

@ -18,6 +18,15 @@ uses LResources, LCLType, LCLIntf, SysUtils, LMessages, Classes, Graphics,
type
TUpdateCaption = (ucNoChange, ucAppTitle, ucFormCaption);
TRxLoginOption = (rloCustomSelect, rloMoreBtn, rloHelpBtn);
TRxLoginOptions = set of TRxLoginOption;
TRxLoginStorageParam = (rlsUserName, rlsTop, rlsLeft, rlsDetailStatus,
rlsDetailItem);
TRxLoginStorageParams = set of TRxLoginStorageParam;
TRxLoginEvent = procedure(Sender: TObject; const UserName, Password: string;
var AllowLogin: Boolean) of object;
TCheckUnlockEvent = function(const Password: string): Boolean of object;
@ -32,11 +41,16 @@ type
private
FActive: Boolean;
FAttemptNumber: Integer;
FLoggedUser: {$IFDEF RX_D3}String{$ELSE}PString{$ENDIF};
FDetailItem: integer;
FDetailItems: TStrings;
FLoggedUser: string;
FMaxPasswordLen: Integer;
FAllowEmpty: Boolean;
FLoginOptions: TRxLoginOptions;
FShowDetails: boolean;
FStorageParams: TRxLoginStorageParams;
FUpdateCaption: TUpdateCaption;
FIniFileName: {$IFDEF RX_D3}String{$ELSE}PString{$ENDIF};
FIniFileName: string;
FUseRegistry: Boolean;
FLocked: Boolean;
FUnlockDlgShowing: Boolean;
@ -46,11 +60,10 @@ type
FOnUnlock: TCheckUnlockEvent;
FOnUnlockApp: TUnlockAppEvent;
FOnIconDblClick: TNotifyEvent;
{$IFNDEF RX_D3}
function GetLoggedUser: string;
procedure SetIniFileName(const Value: string);
{$ENDIF}
function GetIniFileName: string;
procedure SetDetailItems(const AValue: TStrings);
procedure SetLoginOptions(const AValue: TRxLoginOptions);
procedure SetShowDetails(const AValue: boolean);
function UnlockHook(var Message: TLMessage): Boolean;
protected
function CheckUnlock(const UserName, Password: string): Boolean; dynamic;
@ -66,10 +79,16 @@ type
property Active: Boolean read FActive write FActive default True;
property AllowEmptyPassword: Boolean read FAllowEmpty write FAllowEmpty default True;
property AttemptNumber: Integer read FAttemptNumber write FAttemptNumber default 3;
property IniFileName: string read GetIniFileName write {$IFDEF RX_D3}FIniFileName{$ELSE}SetIniFileName{$ENDIF};
property IniFileName: string read GetIniFileName write FIniFileName;
property MaxPasswordLen: Integer read FMaxPasswordLen write FMaxPasswordLen default 0;
property UpdateCaption: TUpdateCaption read FUpdateCaption write FUpdateCaption default ucNoChange;
property UseRegistry: Boolean read FUseRegistry write FUseRegistry default False;
property ShowDetails: boolean read FShowDetails write SetShowDetails;
property StorageParams:TRxLoginStorageParams read FStorageParams write FStorageParams default [rlsUserName];
property DetailItems:TStrings read FDetailItems write SetDetailItems;
property DetailItem:integer read FDetailItem write FDetailItem;
property LoginOptions:TRxLoginOptions read FLoginOptions write SetLoginOptions default [rloCustomSelect, rloMoreBtn, rloHelpBtn];
property AfterLogin: TNotifyEvent read FAfterLogin write FAfterLogin;
property BeforeLogin: TNotifyEvent read FBeforeLogin write FBeforeLogin;
property OnUnlock: TCheckUnlockEvent read FOnUnlock write FOnUnlock; { obsolete }
@ -81,7 +100,7 @@ type
function Login: Boolean; virtual;
procedure TerminateApplication;
procedure Lock;
property LoggedUser: string read {$IFDEF RX_D3}FLoggedUser{$ELSE}GetLoggedUser{$ENDIF};
property LoggedUser: string read FLoggedUser;
end;
{ TRxLoginDialog }
@ -89,9 +108,12 @@ type
TRxLoginDialog = class(TRxCustomLogin)
private
FOnCheckUser: TRxLoginEvent;
FUserName:string;
FFormTop:integer;
FFormLeft:integer;
procedure OkButtonClick(Sender: TObject);
procedure WriteUserName(const UserName: string);
function ReadUserName(const UserName: string): string;
procedure WriteParams;
procedure LoadParams;
protected
function DoCheckUser(const UserName, Password: string): Boolean; dynamic;
function DoLogin(var UserName: string): Boolean; override;
@ -100,9 +122,14 @@ type
property Active;
property AttemptNumber;
property IniFileName;
property DetailItems;
property DetailItem;
property MaxPasswordLen;
property UpdateCaption;
property UseRegistry;
property ShowDetails;
property LoginOptions;
property StorageParams;
property OnCheckUser: TRxLoginEvent read FOnCheckUser write FOnCheckUser;
property AfterLogin;
property BeforeLogin;
@ -114,27 +141,32 @@ type
TRxLoginForm = class(TForm)
AppIcon: TImage;
btnHelp: TBitBtn;
btnMore: TBitBtn;
btnCancel: TBitBtn;
KeyImage: TImage;
HintLabel: TLabel;
btnOK: TBitBtn;
UserNameLabel: TLabel;
PasswordLabel: TLabel;
UserNameEdit: TEdit;
PasswordEdit: TEdit;
AppTitleLabel: TLabel;
OkBtn: TButton;
CancelBtn: TButton;
CustomLabel: TLabel;
DataBaseLabel: TLabel;
CustomCombo: TComboBox;
procedure btnMoreClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure OkBtnClick(Sender: TObject);
procedure btnOKClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
FSelectDatabase: Boolean;
FUnlockMode: Boolean;
FAttempt: Integer;
FOnFormShow: TNotifyEvent;
FOnOkClick: TNotifyEvent;
function GetShowDetailParams: boolean;
procedure SetLoginOptions(const AValue: TRxLoginOptions);
procedure SetShowDetailParams(const AValue: boolean);
public
{ Public declarations }
AttemptNumber: Integer;
@ -142,6 +174,8 @@ type
property SelectDatabase: Boolean read FSelectDatabase write FSelectDatabase;
property OnFormShow: TNotifyEvent read FOnFormShow write FOnFormShow;
property OnOkClick: TNotifyEvent read FOnOkClick write FOnOkClick;
property ShowDetailParams:boolean read GetShowDetailParams write SetShowDetailParams;
property LoginOptions:TRxLoginOptions write SetLoginOptions;
end;
function CreateLoginDialog(UnlockMode, ASelectDatabase: Boolean;
@ -149,25 +183,33 @@ function CreateLoginDialog(UnlockMode, ASelectDatabase: Boolean;
implementation
uses {$IFDEF WIN32} Registry, {$ENDIF} IniFiles, RxAppUtils, RxDConst,
VclUtils, RxConst;
uses
Registry, IniFiles, RxAppUtils, RxDConst, VclUtils, RxConst;
const
keyLoginSection = 'Login Dialog';
keyLastLoginUserName = 'Last Logged User';
keyLoginSection = 'Login Dialog';
keyLastLoginUserName = 'Last Logged User';
keyLastLoginFormTop = 'Last Logged Form Top';
keyLastLoginFormLeft = 'Last Logged Form Left';
keyLastLoginFormDetailStatus = 'Last Logged Detail Status';
keyLastLoginFormDetailSelected = 'Last Logged Selected Detail';
function CreateLoginDialog(UnlockMode, ASelectDatabase: Boolean;
FormShowEvent, OkClickEvent: TNotifyEvent): TRxLoginForm;
begin
Result := TRxLoginForm.Create(Application);
with Result do begin
with Result do
begin
FSelectDatabase := ASelectDatabase;
FUnlockMode := UnlockMode;
if FUnlockMode then begin
if FUnlockMode then
begin
FormStyle := fsNormal;
FSelectDatabase := False;
end
else begin
else
begin
FormStyle := fsStayOnTop;
end;
OnFormShow := FormShowEvent;
@ -180,14 +222,13 @@ end;
constructor TRxCustomLogin.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFNDEF RX_D3}
FIniFileName := NullStr;
FLoggedUser := NullStr;
{$ENDIF}
FDetailItems:=TStringList.Create;
FActive := True;
FAttemptNumber := 3;
FAllowEmpty := True;
FUseRegistry := False;
FStorageParams:=[rlsUserName];
FLoginOptions:=[rloCustomSelect, rloMoreBtn, rloHelpBtn];
end;
destructor TRxCustomLogin.Destroy;
@ -197,45 +238,43 @@ begin
// Application.UnhookMainWindow(UnlockHook);
FLocked := False;
end;
{$IFNDEF RX_D3}
DisposeStr(FLoggedUser);
DisposeStr(FIniFileName);
{$ENDIF}
FreeAndNil(FDetailItems);
inherited Destroy;
end;
function TRxCustomLogin.GetIniFileName: string;
begin
Result := FIniFileName{$IFNDEF RX_D3}^{$ENDIF};
if (Result = '') and not (csDesigning in ComponentState) then begin
{$IFDEF WIN32}
if UseRegistry then Result := GetDefaultIniRegKey
else Result := GetDefaultIniName;
{$ELSE}
Result := GetDefaultIniName;
{$ENDIF}
Result := FIniFileName;
if (Result = '') and not (csDesigning in ComponentState) then
begin
if UseRegistry then
Result := GetDefaultIniRegKey
else
Result := GetDefaultIniName;
end;
end;
{$IFNDEF RX_D3}
procedure TRxCustomLogin.SetIniFileName(const Value: string);
procedure TRxCustomLogin.SetDetailItems(const AValue: TStrings);
begin
AssignStr(FIniFileName, Value);
if Assigned(AValue) then
FDetailItems.Assign(AValue);
end;
function TRxCustomLogin.GetLoggedUser: string;
procedure TRxCustomLogin.SetLoginOptions(const AValue: TRxLoginOptions);
begin
Result := FLoggedUser^;
if FLoginOptions=AValue then exit;
FLoginOptions:=AValue;
end;
procedure TRxCustomLogin.SetShowDetails(const AValue: boolean);
begin
if FShowDetails=AValue then exit;
FShowDetails:=AValue;
end;
{$ENDIF}
procedure TRxCustomLogin.SetLoggedUser(const Value: string);
begin
{$IFDEF RX_D3}
FLoggedUser := Value;
{$ELSE}
AssignStr(FLoggedUser, Value);
{$ENDIF}
end;
procedure TRxCustomLogin.DoAfterLogin;
@ -278,7 +317,8 @@ begin
LoginName := EmptyStr;
DoBeforeLogin;
Result := DoLogin(LoginName);
if Result then begin
if Result then
begin
SetLoggedUser(LoginName);
DoUpdateCaption;
DoAfterLogin;
@ -334,14 +374,18 @@ end;
function TRxCustomLogin.CreateLoginForm(UnlockMode: Boolean): TRxLoginForm;
begin
Result := TRxLoginForm.Create(Application);
with Result do begin
with Result do
begin
FUnlockMode := UnlockMode;
if FUnlockMode then begin
if FUnlockMode then
begin
FormStyle := fsNormal;
FSelectDatabase := False;
end
else FormStyle := fsStayOnTop;
if Assigned(Self.FOnIconDblClick) then begin
else
FormStyle := fsStayOnTop;
if Assigned(Self.FOnIconDblClick) then
begin
with AppIcon do
begin
OnDblClick := @DoIconDblClick;
@ -399,7 +443,7 @@ function TRxCustomLogin.UnlockHook(var Message: TLMessage): Boolean;
{$ELSE}
BringWindowToTop(Popup);
{$ENDIF}
end; *)
end; //*)
Result := False;
(* Exit;
end;
@ -429,8 +473,8 @@ begin
UnlockHook := not DoUnlock;
end;
LM_SYSCOMMAND:
if (WParam and $FFF0 = SC_RESTORE) {or
(WParam and $FFF0 = SC_ZOOM) }then
if (WParam and $FFF0 = SC_RESTORE)
{ or (WParam and $FFF0 = SC_ZOOM) }then
begin
UnlockHook := not DoUnlock;
end;
@ -446,7 +490,8 @@ var
begin
FLoading := csLoading in ComponentState;
inherited Loaded;
if not (csDesigning in ComponentState) and FLoading then begin
if not (csDesigning in ComponentState) and FLoading then
begin
if Active and not Login then
TerminateApplication;
end;
@ -464,7 +509,8 @@ begin
SC := True;
{$ENDIF}
try
if SC then Screen.Cursor := crHourGlass;
if SC then
Screen.Cursor := crHourGlass;
try
if DoCheckUser(UserNameEdit.Text, PasswordEdit.Text) then
ModalResult := mrOk
@ -486,19 +532,24 @@ begin
FOnCheckUser(Self, UserName, Password, Result);
end;
procedure TRxLoginDialog.WriteUserName(const UserName: string);
procedure TRxLoginDialog.WriteParams;
var
Ini: TObject;
begin
try
{$IFDEF WIN32}
if UseRegistry then Ini := TRegIniFile.Create(IniFileName)
else Ini := TIniFile.Create(IniFileName);
{$ELSE}
Ini := TIniFile.Create(IniFileName);
{$ENDIF}
try
IniWriteString(Ini, keyLoginSection, keyLastLoginUserName, UserName);
if rlsUserName in FStorageParams then
IniWriteString(Ini, keyLoginSection, keyLastLoginUserName, FUserName);
if rlsTop in FStorageParams then
IniWriteInteger(Ini, keyLoginSection, keyLastLoginFormTop, FFormTop);
if rlsLeft in FStorageParams then
IniWriteInteger(Ini, keyLoginSection, keyLastLoginFormLeft, FFormLeft);
if rlsDetailStatus in FStorageParams then
IniWriteInteger(Ini, keyLoginSection, keyLastLoginFormDetailStatus, ord(FShowDetails));
if rlsDetailItem in FStorageParams then
IniWriteInteger(Ini, keyLoginSection, keyLastLoginFormDetailSelected, FDetailItem);
finally
Ini.Free;
end;
@ -506,50 +557,83 @@ begin
end;
end;
function TRxLoginDialog.ReadUserName(const UserName: string): string;
procedure TRxLoginDialog.LoadParams;
var
Ini: TObject;
begin
try
{$IFDEF WIN32}
if UseRegistry then begin
if UseRegistry then
begin
Ini := TRegIniFile.Create(IniFileName);
{$IFDEF RX_D5}
TRegIniFile(Ini).Access := KEY_READ;
{$ENDIF}
end
else
else
Ini := TIniFile.Create(IniFileName);
{$ELSE}
Ini := TIniFile.Create(IniFileName);
{$ENDIF}
try
{ Result := IniReadString(Ini, keyLoginSection, keyLastLoginUserName,
UserName);}
if rlsUserName in FStorageParams then
FUserName:=IniReadString(Ini, keyLoginSection, keyLastLoginUserName, FUserName);
if rlsTop in FStorageParams then
FFormTop:=IniReadInteger(Ini, keyLoginSection, keyLastLoginFormTop, FFormTop);
if rlsLeft in FStorageParams then
FFormLeft:=IniReadInteger(Ini, keyLoginSection, keyLastLoginFormLeft, FFormLeft);
if rlsDetailStatus in FStorageParams then
FShowDetails:=IniReadInteger(Ini, keyLoginSection, keyLastLoginFormDetailStatus, ord(FShowDetails))=1;
if rlsDetailItem in FStorageParams then
FDetailItem:=IniReadInteger(Ini, keyLoginSection, keyLastLoginFormDetailSelected, FDetailItem);
finally
Ini.Free;
end;
except
Result := UserName;
end;
end;
function TRxLoginDialog.DoLogin(var UserName: string): Boolean;
var
LoginForm:TRxLoginForm;
begin
try
{ with CreateLoginForm(False) do
LoginForm:=CreateLoginForm(False);
try
OnOkClick := Self.OkButtonClick;
UserName := ReadUserName(UserName);
UserNameEdit.Text := UserName;
Result := (ShowModal = mrOk);
if Result then begin
UserName := UserNameEdit.Text;
WriteUserName(UserName);
FUserName:=UserName;
LoginForm.OnOkClick := @Self.OkButtonClick;
LoadParams;
LoginForm.LoginOptions:=FLoginOptions;
if rlsUserName in StorageParams then
LoginForm.UserNameEdit.Text := FUserName;
if rlsTop in StorageParams then
LoginForm.Top:=FFormTop;
if rlsLeft in StorageParams then
LoginForm.Left:=FFormLeft;
if rloCustomSelect in LoginOptions then
begin
LoginForm.CustomCombo.Items.Assign(DetailItems);
if (FDetailItem>=0) and (FDetailItem<DetailItems.Count) then
LoginForm.CustomCombo.ItemIndex:=FDetailItem;
end;
LoginForm.ShowDetailParams:=ShowDetails;
Result := (LoginForm.ShowModal = mrOk);
if Result then
begin
if rlsTop in StorageParams then
FFormTop:=LoginForm.Top;
if rlsLeft in StorageParams then
FFormLeft:=LoginForm.Left;
if rloCustomSelect in LoginOptions then
FDetailItem:=LoginForm.CustomCombo.ItemIndex;
ShowDetails:=LoginForm.ShowDetailParams;
UserName := LoginForm.UserNameEdit.Text;
FUserName:=UserName;
WriteParams;
end;
finally
Free;
end;}
LoginForm.Free;
end;
except
Application.HandleException(Self);
Result := False;
@ -560,17 +644,20 @@ end;
procedure TRxLoginForm.FormCreate(Sender: TObject);
begin
{ Icon := Application.Icon;
if Icon.Empty then Icon.Handle := LoadIcon(0, IDI_APPLICATION);
Icon.Assign(Application.Icon);
// if Icon.Empty then Icon.Handle := LoadIcon(0, IDI_APPLICATION);
AppIcon.Picture.Assign(Icon);
AppTitleLabel.Caption := FmtLoadStr(SAppTitleLabel, [Application.Title]);
PasswordLabel.Caption := LoadStr(SPasswordLabel);
UserNameLabel.Caption := LoadStr(SUserNameLabel);
OkBtn.Caption := ResStr(SOKButton);
CancelBtn.Caption := ResStr(SCancelButton);}
AppTitleLabel.Caption := Format(SAppTitleLabel, [Application.Title]);
PasswordLabel.Caption := SPasswordLabel;
UserNameLabel.Caption := SUserNameLabel;
end;
procedure TRxLoginForm.OkBtnClick(Sender: TObject);
procedure TRxLoginForm.btnMoreClick(Sender: TObject);
begin
ShowDetailParams:=not ShowDetailParams;
end;
procedure TRxLoginForm.btnOKClick(Sender: TObject);
begin
Inc(FAttempt);
if Assigned(FOnOkClick) then FOnOkClick(Self)
@ -584,33 +671,76 @@ var
I: Integer;
S: string;
begin
{ if FSelectDatabase then
if FSelectDatabase then
begin
ClientHeight := CustomCombo.Top + PasswordEdit.Top - UserNameEdit.Top;
S := LoadStr(SDatabaseName);
S := SDatabaseName;
I := Pos(':', S);
if I = 0 then I := Length(S);
CustomLabel.Caption := '&' + Copy(S, 1, I);
DataBaseLabel.Caption := '&' + Copy(S, 1, I);
end
else begin
ClientHeight := PasswordEdit.Top + PasswordEdit.Top - UserNameEdit.Top;
CustomLabel.Visible := False;
else
begin
DataBaseLabel.Visible := False;
CustomCombo.Visible := False;
btnMore.Visible := False;
end;
if not FUnlockMode then begin
HintLabel.Caption := LoadStr(SHintLabel);
Caption := LoadStr(SRegistration);
SetShowDetailParams(ShowDetailParams);
if not FUnlockMode then
begin
HintLabel.Caption := SHintLabel;
Caption := SRegistration;
end
else begin
HintLabel.Caption := LoadStr(SUnlockHint);
Caption := LoadStr(SUnlockCaption);
else
begin
HintLabel.Caption := SUnlockHint;
Caption := SUnlockCaption;
end;
if (UserNameEdit.Text = EmptyStr) and not FUnlockMode then
ActiveControl := UserNameEdit
else
ActiveControl := PasswordEdit;
if Assigned(FOnFormShow) then FOnFormShow(Self);
FAttempt := 0;}
FAttempt := 0;
end;
procedure TRxLoginForm.SetShowDetailParams(const AValue: boolean);
begin
DataBaseLabel.Visible:=AValue;
CustomCombo.Visible:=AValue;
if AValue then
begin
btnMore.Caption:=SMore2;
btnCancel.AnchorSideTop.Control:=CustomCombo;
Height := CustomCombo.Top + CustomCombo.Height + btnCancel.Height + 12;
end
else
begin
btnMore.Caption:=SMore1;
btnCancel.AnchorSideTop.Control:=PasswordEdit;
Height := PasswordEdit.Top + PasswordEdit.Height + btnCancel.Height + 12;
end;
end;
function TRxLoginForm.GetShowDetailParams: boolean;
begin
Result:=CustomCombo.Visible;
end;
procedure TRxLoginForm.SetLoginOptions(const AValue: TRxLoginOptions);
begin
btnHelp.Visible:=rloHelpBtn in AValue;
if not btnHelp.Visible then
begin
btnCancel.AnchorSideLeft.Side:=asrBottom;
btnCancel.AnchorSideLeft.Control:=Self;
end;
btnMore.Visible:=rloMoreBtn in AValue;
FSelectDatabase:=rloCustomSelect in AValue;
end;
initialization

View File

@ -20,7 +20,7 @@ translate to Lazarus by alexs in 2005 - 2009
"/>
<License Value="free ware
"/>
<Version Major="1" Minor="2" Release="1" Build="98"/>
<Version Major="1" Minor="2" Release="2" Build="103"/>
<Files Count="51">
<Item1>
<Filename Value="rxlookup.pas"/>
@ -226,7 +226,7 @@ translate to Lazarus by alexs in 2005 - 2009
</Item50>
<Item51>
<Filename Value="rxdbctrls.pas"/>
<UnitName Value="rxdbctrls"/>
<UnitName Value="RxDBCtrls"/>
</Item51>
</Files>
<Type Value="RunAndDesignTime"/>