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

View File

@ -1,21 +1,19 @@
{ ��� - ���� ��������, ������������� ��������� lazarus } { ��� - ���� ��������, ������������� ��������� lazarus }
LazarusResources.Add('TAboutForm','FORMDATA',[ LazarusResources.Add('TAboutForm','FORMDATA',[
'TPF0'#10'TAboutForm'#9'AboutForm'#11'BorderStyle'#7#8'bsDialog'#7'Caption'#6 'TPF0'#10'TAboutForm'#9'AboutForm'#4'Left'#3#137#1#6'Height'#3#163#0#3'Top'#3
+#8'About...'#12'ClientHeight'#3#143#0#11'ClientWidth'#3#249#0#13'PixelsPerIn' +#130#1#5'Width'#3#18#1#13'ActiveControl'#7#7'BitBtn1'#7'Caption'#6#8'About..'
+'ch'#2'`'#8'Position'#7#15'poDesktopCenter'#18'HorzScrollBar.Page'#3#248#0#18 +'.'#12'ClientHeight'#3#163#0#11'ClientWidth'#3#18#1#8'Position'#7#15'poDeskt'
+'VertScrollBar.Page'#3#142#0#4'Left'#3#137#1#6'Height'#3#143#0#3'Top'#3#130#1 +'opCenter'#10'LCLVersion'#6#6'0.9.27'#0#6'TLabel'#6'Label1'#4'Left'#2#8#6'He'
+#5'Width'#3#249#0#0#6'TLabel'#6'Label1'#9'Alignment'#7#8'taCenter'#7'Anchors' +'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#22'BorderSpacing.OnChange'#13#7'Caption' +#11#5'akTop'#6'akLeft'#7'akRight'#0#7'Caption'#6#27'FolderLister component d'
+#6#27'FolderLister component demo'#5'Color'#7#6'clNone'#4'Left'#2#8#6'Height' +'emo'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#8#6'Height'#2#18#3
+#2#17#3'Top'#2#16#5'Width'#3#237#0#0#0#6'TLabel'#6'Label2'#9'Alignment'#7#8 +'Top'#2'8'#5'Width'#3#5#1#9'Alignment'#7#8'taCenter'#7'Anchors'#11#5'akTop'#6
+'taCenter'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#22'BorderSpacing.On' +'akLeft'#7'akRight'#0#7'Caption'#6#22'(c) 2005-2009 by Alexs'#11'ParentColor'
+'Change'#13#7'Caption'#6#17'(c) 2005 by Alexs'#5'Color'#7#6'clNone'#4'Left'#2 +#8#0#0#6'TLabel'#6'Label3'#4'Left'#2#8#6'Height'#2#18#3'Top'#2'T'#5'Width'#3
+#8#6'Height'#2#13#3'Top'#2'8'#5'Width'#3#236#0#0#0#6'TLabel'#6'Label3'#9'Ali' +#6#1#9'Alignment'#7#8'taCenter'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0
+'gnment'#7#8'taCenter'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#22'Bord' +#7'Caption'#6#17'alexs75@hotbox.ru'#11'ParentColor'#8#0#0#7'TBitBtn'#7'BitBt'
+'erSpacing.OnChange'#13#7'Caption'#6#17'alexs75@hotbox.ru'#5'Color'#7#6'clNo' +'n1'#4'Left'#2'`'#6'Height'#2'"'#3'Top'#2'{'#5'Width'#2'8'#7'Anchors'#11#6'a'
+'ne'#4'Left'#2#8#6'Height'#2#17#3'Top'#2'T'#5'Width'#3#237#0#0#0#7'TBitBtn'#7 +'kLeft'#8'akBottom'#0#8'AutoSize'#9#7'Caption'#6#5'&'#208#158#208#154#7'Defa'
+'BitBtn1'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#22'BorderSpacing.OnChange'#13 +'ult'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#8'TabOrder'#2#0#0#0#0
+#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
]); ]);

View File

@ -2,197 +2,16 @@
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<Version Value="5"/> <Version Value="7"/>
<General> <General>
<Flags>
<LRSInOutputDirectory Value="False"/>
</Flags>
<MainUnit Value="0"/> <MainUnit Value="0"/>
<ActiveEditorIndexAtStart Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/> <TargetFileExt Value=".exe"/>
<Title Value="FolderLister"/> <Title Value="FolderLister"/>
<ActiveEditorIndexAtStart Value="0"/>
</General> </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> <PublishOptions>
<Version Value="2"/> <Version Value="2"/>
<IgnoreBinaries Value="False"/> <IgnoreBinaries Value="False"/>
@ -202,7 +21,7 @@
<RunParams> <RunParams>
<local> <local>
<FormatVersion Value="1"/> <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> </local>
</RunParams> </RunParams>
<RequiredPackages Count="2"> <RequiredPackages Count="2">
@ -214,16 +33,158 @@
<PackageName Value="LCL"/> <PackageName Value="LCL"/>
</Item2> </Item2>
</RequiredPackages> </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> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="4"/> <Version Value="8"/>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<SearchPaths> <SearchPaths>
<SrcPath Value="$(LazarusDir)\lcl\;$(LazarusDir)\lcl\interfaces\$(LCLWidgetType)\"/> <SrcPath Value="$(LazarusDir)\lcl\;$(LazarusDir)\lcl\interfaces\$(LCLWidgetType)\"/>
</SearchPaths> </SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Other> <Other>
<CompilerPath Value="$(CompPath)"/> <CompilerPath Value="$(CompPath)"/>
</Other> </Other>

View File

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

View File

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

View File

@ -2,8 +2,11 @@
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<Version Value="5"/> <Version Value="7"/>
<General> <General>
<Flags>
<LRSInOutputDirectory Value="False"/>
</Flags>
<MainUnit Value="0"/> <MainUnit Value="0"/>
<TargetFileExt Value=".exe"/> <TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="0"/> <ActiveEditorIndexAtStart Value="0"/>
@ -22,7 +25,7 @@
<RunParams> <RunParams>
<local> <local>
<FormatVersion Value="1"/> <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> </local>
</RunParams> </RunParams>
<RequiredPackages Count="4"> <RequiredPackages Count="4">
@ -47,20 +50,18 @@
<Filename Value="PhoneBookDemo.lpr"/> <Filename Value="PhoneBookDemo.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="PhoneBookDemo"/> <UnitName Value="PhoneBookDemo"/>
<CursorPos X="53" Y="11"/> <CursorPos X="13" Y="11"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="1"/>
<UsageCount Value="20"/> <UsageCount Value="20"/>
<Loaded Value="True"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="pbmainunit.pas"/> <Filename Value="pbmainunit.pas"/>
<ComponentName Value="pbMainForm"/> <ComponentName Value="pbMainForm"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceFilename Value="pbmainunit.lrs"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="pbMainUnit"/> <UnitName Value="pbMainUnit"/>
<CursorPos X="12" Y="49"/> <CursorPos X="12" Y="49"/>
<TopLine Value="17"/> <TopLine Value="23"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="20"/> <UsageCount Value="20"/>
<Loaded Value="True"/> <Loaded Value="True"/>
@ -130,11 +131,8 @@
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="5"/> <Version Value="8"/>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Linking> <Linking>
<Options> <Options>
<Win32> <Win32>

View File

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

View File

@ -1,13 +1,14 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<PathDelim Value="/"/> <Version Value="7"/>
<Version Value="6"/>
<General> <General>
<Flags>
<LRSInOutputDirectory Value="False"/>
</Flags>
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/> <TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="3"/> <ActiveEditorIndexAtStart Value="0"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
@ -39,7 +40,7 @@
<MinVersion Major="1" Release="18" Build="56" Valid="True"/> <MinVersion Major="1" Release="18" Build="56" Valid="True"/>
</Item3> </Item3>
</RequiredPackages> </RequiredPackages>
<Units Count="14"> <Units Count="10">
<Unit0> <Unit0>
<Filename Value="RxDBGridDemo.lpr"/> <Filename Value="RxDBGridDemo.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
@ -52,10 +53,10 @@
<Filename Value="rxdbgridmainunit.pas"/> <Filename Value="rxdbgridmainunit.pas"/>
<ComponentName Value="RxDBGridMainForm"/> <ComponentName Value="RxDBGridMainForm"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceFilename Value="rxdbgridmainunit.lrs"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="RxDBGridMainUnit"/> <UnitName Value="RxDBGridMainUnit"/>
<CursorPos X="24" Y="53"/> <CursorPos X="24" Y="53"/>
<TopLine Value="9"/> <TopLine Value="127"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="24"/> <UsageCount Value="24"/>
<Loaded Value="True"/> <Loaded Value="True"/>
@ -112,180 +113,31 @@
<UsageCount Value="11"/> <UsageCount Value="11"/>
</Unit8> </Unit8>
<Unit9> <Unit9>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> <Filename Value="../../rxpopupunit.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"/>
<UnitName Value="rxpopupunit"/> <UnitName Value="rxpopupunit"/>
<CursorPos X="15" Y="249"/> <CursorPos X="15" Y="249"/>
<TopLine Value="246"/> <TopLine Value="246"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<UsageCount Value="11"/> <UsageCount Value="11"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit11> </Unit9>
<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>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="2" HistoryIndex="1">
<Position1> <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"/> <Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="52" Column="18" TopLine="9"/> <Caret Line="52" Column="18" TopLine="9"/>
</Position17> </Position1>
<Position18> <Position2>
<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>
<Filename Value="rxdbgridmainunit.pas"/> <Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="15" Column="4" TopLine="9"/> <Caret Line="15" Column="4" TopLine="9"/>
</Position30> </Position2>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="5"/> <Version Value="8"/>
<SearchPaths> <SearchPaths>
<SrcPath Value="$(LazarusDir)/lcl/;$(LazarusDir)/lcl/interfaces/$(LCLWidgetType)/"/> <SrcPath Value="$(LazarusDir)/lcl/;$(LazarusDir)/lcl/interfaces/$(LCLWidgetType)/"/>
</SearchPaths> </SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Linking> <Linking>
<Options> <Options>
<Win32> <Win32>

View File

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

View File

@ -1,90 +1,110 @@
{ ��� - ���� ��������, ������������� ��������� lazarus } { ��� - ���� ��������, ������������� ��������� lazarus }
LazarusResources.Add('TRxDBGridMainForm','FORMDATA',[ LazarusResources.Add('TRxDBGridMainForm','FORMDATA',[
'TPF0'#17'TRxDBGridMainForm'#16'RxDBGridMainForm'#4'Left'#3'-'#1#6'Height'#3 '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' +'F'#2#3'Top'#3#161#0#5'Width'#3#201#3#13'ActiveControl'#7#6'Panel1'#7'Captio'
+'ScrollBar.Page'#3'E'#2#13'ActiveControl'#7#9'RxDBGrid1'#7'Caption'#6#26'RxD' +'n'#6#26'RxDBGrid Demo (ver 3) ...'#12'ClientHeight'#3'F'#2#11'ClientWidth'
+'BGrid Demo (ver 3) ...'#12'ClientHeight'#3'F'#2#11'ClientWidth'#3#201#3#8 +#3#201#3#8'OnCreate'#7#10'FormCreate'#10'LCLVersion'#6#6'0.9.27'#0#9'TRxDBGr'
+'OnCreate'#7#10'FormCreate'#0#9'TRxDBGrid'#9'RxDBGrid1'#6'Height'#3#20#2#3'T' +'id'#9'RxDBGrid1'#4'Left'#2#0#6'Height'#3#21#2#3'Top'#2'1'#5'Width'#3#201#3
+'op'#2'2'#5'Width'#3#201#3#7'Columns'#14#1#15'Title.Alignment'#7#8'taCenter' +#12'TitleButtons'#8#8'AutoSort'#8#7'Columns'#14#1#15'Title.Alignment'#7#8'ta'
+#13'Title.Caption'#6#4'Code'#9'FieldName'#6#2'ID'#16'Footer.Alignment'#7#14 +'Center'#13'Title.Caption'#6#4'Code'#17'Title.Orientation'#7#12'toHorizontal'
+'taRightJustify'#20'Footer.DisplayFormat'#6#9'Count: %d'#16'Footer.ValueType' +#9'FieldName'#6#2'ID'#16'Footer.Alignment'#7#14'taRightJustify'#20'Footer.Di'
+#7#8'fvtCount'#12'Filter.Color'#7#6'clLime'#16'Filter.ItemIndex'#2#255#0#1#15 +'splayFormat'#6#9'Count: %d'#16'Footer.ValueType'#7#8'fvtCount'#19'Filter.Dr'
+'Title.Alignment'#7#8'taCenter'#13'Title.Caption'#6#13'Software Name'#5'Widt' +'opDownRows'#2#0#12'Filter.Color'#7#6'clLime'#16'Filter.ItemIndex'#2#255#0#1
+'h'#3'^'#1#9'FieldName'#6#4'NAME'#12'Filter.Color'#7#6'clLime'#16'Filter.Ite' +#15'Title.Alignment'#7#8'taCenter'#13'Title.Caption'#6#13'Software Name'#17
+'mIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCenter'#5'Width'#3#150#0#9'Fiel' +'Title.Orientation'#7#12'toHorizontal'#5'Width'#3'^'#1#9'FieldName'#6#4'NAME'
+'dName'#6#9'Developer'#12'Filter.Color'#7#6'clLime'#16'Filter.ItemIndex'#2 +#19'Filter.DropDownRows'#2#0#12'Filter.Color'#7#6'clLime'#16'Filter.ItemInde'
+#255#0#1#15'Title.Alignment'#7#8'taCenter'#13'Title.Caption'#6#4'Cost'#5'Wid' +'x'#2#255#0#1#15'Title.Alignment'#7#8'taCenter'#17'Title.Orientation'#7#12't'
+'th'#2'Z'#9'FieldName'#6#5'PRICE'#13'DisplayFormat'#6#8'#,##0.00'#16'Footer.' +'oHorizontal'#5'Width'#3#150#0#9'FieldName'#6#9'Developer'#19'Filter.DropDow'
+'Alignment'#7#14'taRightJustify'#20'Footer.DisplayFormat'#6#8'#,##0.00'#16'F' +'nRows'#2#0#12'Filter.Color'#7#6'clLime'#16'Filter.ItemIndex'#2#255#0#1#15'T'
+'ooter.FieldName'#6#5'PRICE'#16'Footer.ValueType'#7#6'fvtSum'#12'Filter.Colo' +'itle.Alignment'#7#8'taCenter'#13'Title.Caption'#6#4'Cost'#17'Title.Orientat'
+'r'#7#6'clLime'#16'Filter.ItemIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCen' +'ion'#7#12'toHorizontal'#5'Width'#2'Z'#9'FieldName'#6#5'PRICE'#13'DisplayFor'
+'ter'#13'Title.Caption'#6#12'Date Present'#5'Width'#2'd'#9'FieldName'#6#12'D' +'mat'#6#8'#,##0.00'#16'Footer.Alignment'#7#14'taRightJustify'#20'Footer.Disp'
+'ate_Present'#16'Filter.ItemIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCente' +'layFormat'#6#8'#,##0.00'#16'Footer.FieldName'#6#5'PRICE'#16'Footer.ValueTyp'
+'r'#5'Width'#3#150#0#9'FieldName'#6#12'DEVELOPER_ID'#16'Filter.ItemIndex'#2 +'e'#7#6'fvtSum'#19'Filter.DropDownRows'#2#0#12'Filter.Color'#7#6'clLime'#16
+#255#0#0#9'OptionsRx'#11#13'rdgFooterRows'#0#11'FooterColor'#7#8'clYellow'#14 +'Filter.ItemIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCenter'#13'Title.Capt'
+'FooterRowCount'#2#1#9'OnFiltred'#7#16'RxDBGrid1Filtred'#5'Align'#7#8'alClie' +'ion'#6#12'Date Present'#17'Title.Orientation'#7#12'toHorizontal'#5'Width'#2
+'nt'#10'FocusColor'#7#5'clRed'#13'SelectedColor'#7#11'clHighlight'#10'DataSo' +'d'#9'FieldName'#6#12'Date_Present'#19'Filter.DropDownRows'#2#0#16'Filter.It'
+'urce'#7#11'Datasource1'#10'FixedColor'#7#9'clBtnFace'#7'Options'#11#9'dgEdi' +'emIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCenter'#17'Title.Orientation'#7
+'ting'#8'dgTitles'#11'dgIndicator'#14'dgColumnResize'#12'dgColumnMove'#10'dg' +#12'toHorizontal'#5'Width'#3#150#0#9'FieldName'#6#12'DEVELOPER_ID'#19'Filter'
+'ColLines'#10'dgRowLines'#6'dgTabs'#21'dgAlwaysShowSelection'#15'dgConfirmDe' +'.DropDownRows'#2#0#16'Filter.ItemIndex'#2#255#0#0#9'OptionsRx'#11#13'rdgFoo'
+'lete'#14'dgCancelOnExit'#13'dgMultiselect'#0#12'OptionsExtra'#11#14'dgeAuto' +'terRows'#0#11'FooterColor'#7#8'clYellow'#14'FooterRowCount'#2#1#9'OnFiltred'
+'Columns'#17'dgeCheckboxColumn'#0#11'ParentColor'#8#9'PopupMenu'#7#10'PopupM' +#7#16'RxDBGrid1Filtred'#5'Align'#7#8'alClient'#10'FocusColor'#7#5'clRed'#13
+'enu1'#8'TabOrder'#2#0#7'TabStop'#9#0#0#6'TPanel'#6'Panel1'#6'Height'#2'2'#5 +'SelectedColor'#7#11'clHighlight'#13'GridLineStyle'#7#7'psSolid'#10'DataSour'
+'Width'#3#201#3#5'Align'#7#5'alTop'#12'ClientHeight'#2'2'#11'ClientWidth'#3 +'ce'#7#11'Datasource1'#7'Options'#11#9'dgEditing'#8'dgTitles'#11'dgIndicator'
+#201#3#8'TabOrder'#2#1#0#7'TButton'#7'Button1'#4'Left'#2#8#6'Height'#2#25#3 +#14'dgColumnResize'#12'dgColumnMove'#10'dgColLines'#10'dgRowLines'#6'dgTabs'
+'Top'#2#8#5'Width'#2'K'#6'Action'#7#12'actCalcTotal'#25'BorderSpacing.InnerB' +#21'dgAlwaysShowSelection'#15'dgConfirmDelete'#14'dgCancelOnExit'#13'dgMulti'
+'order'#2#4#8'TabOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#2'X'#6'Height' +'select'#0#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu1'#8'TabOrder'#2#0#0
+#2#25#3'Top'#2#8#5'Width'#3#136#0#6'Action'#7#26'actOptimizeColumnsWidthAll' +#0#6'TPanel'#6'Panel1'#4'Left'#2#0#6'Height'#2'1'#3'Top'#2#0#5'Width'#3#201#3
+#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#1#0#0#9'TCheckBox'#9'CheckB' +#5'Align'#7#5'alTop'#8'AutoSize'#9#12'ClientHeight'#2'1'#11'ClientWidth'#3
+'ox1'#4'Left'#3#241#0#6'Height'#2#20#3'Top'#2#8#5'Width'#2'K'#7'Caption'#6#10 +#201#3#8'TabOrder'#2#1#0#7'TButton'#7'Button1'#22'AnchorSideLeft.Control'#7#6
+'Use filter'#8'OnChange'#7#15'CheckBox1Change'#8'TabOrder'#2#2#11'UseOnChang' +'Panel1'#21'AnchorSideTop.Control'#7#6'Panel1'#4'Left'#2#6#6'Height'#2'%'#3
+'e'#9#0#0#0#13'TRxMemoryData'#13'RxMemoryData1'#9'FieldDefs'#14#1#4'Name'#6#2 +'Top'#2#6#5'Width'#2'\'#6'Action'#7#12'actCalcTotal'#8'AutoSize'#9#20'Border'
+'ID'#8'DataType'#7#9'ftInteger'#9'Precision'#2#255#4'Size'#2#7#0#1#4'Name'#6 +'Spacing.Around'#2#6#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#0#0#0#7
+#4'NAME'#8'DataType'#7#8'ftString'#9'Precision'#2#255#4'Size'#3#150#0#0#1#4 +'TButton'#7'Button2'#22'AnchorSideLeft.Control'#7#7'Button1'#19'AnchorSideLe'
+'Name'#6#5'PRICE'#8'DataType'#7#7'ftFloat'#9'Precision'#2#2#4'Size'#2#12#0#1 +'ft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Panel1'#4'Left'#2'h'#6
+#4'Name'#6#9'Developer'#8'DataType'#7#8'ftString'#9'Precision'#2#255#4'Size' +'Height'#2'%'#3'Top'#2#6#5'Width'#3#165#0#6'Action'#7#26'actOptimizeColumnsW'
+#3#150#0#0#1#4'Name'#6#12'Date_Present'#8'DataType'#7#6'ftDate'#0#1#4'Name'#6 +'idthAll'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#25'BorderSpacing.InnerB'
+#12'DEVELOPER_ID'#8'DataType'#7#9'ftInteger'#0#0#16'OnFilterRecordEx'#7#27'R' +'order'#2#4#8'TabOrder'#2#1#0#0#9'TCheckBox'#9'CheckBox1'#22'AnchorSideLeft.'
+'xMemoryData1FilterRecordEx'#4'left'#3#152#0#3'top'#3#8#1#0#13'TLongintField' +'Control'#7#7'Button2'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideT'
+#16'RxMemoryData1ID1'#9'AlignMent'#7#14'taRightJustify'#12'DisplayWidth'#2#10 +'op.Control'#7#7'Button1'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#19
+#9'FieldName'#6#2'ID'#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#0#0 +#1#6'Height'#2#22#3'Top'#2#13#5'Width'#2'Q'#18'BorderSpacing.Left'#2#6#7'Cap'
+#12'TStringField'#18'RxMemoryData1NAME1'#12'DisplayWidth'#3#150#0#9'FieldNam' +'tion'#6#10'Use filter'#8'OnChange'#7#15'CheckBox1Change'#8'TabOrder'#2#2#0#0
+'e'#6#4'NAME'#5'Index'#2#1#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0 +#0#13'TRxMemoryData'#13'RxMemoryData1'#14'AutoCalcFields'#8#9'FieldDefs'#14#1
+#4'Size'#3#150#0#0#0#11'TFloatField'#19'RxMemoryData1PRICE1'#9'AlignMent'#7 +#4'Name'#6#2'ID'#8'DataType'#7#9'ftInteger'#9'Precision'#2#255#4'Size'#2#7#0
+#14'taRightJustify'#12'DisplayWidth'#2#10#9'FieldName'#6#5'PRICE'#5'Index'#2 +#1#4'Name'#6#4'NAME'#8'DataType'#7#8'ftString'#9'Precision'#2#255#4'Size'#3
+#2#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#13'DisplayFormat'#6#8 +#150#0#0#1#4'Name'#6#5'PRICE'#8'DataType'#7#7'ftFloat'#9'Precision'#2#2#4'Si'
+'#,##0.00'#9'Precision'#2#2#0#0#12'TStringField'#23'RxMemoryData1Developer1' +'ze'#2#12#0#1#4'Name'#6#9'Developer'#8'DataType'#7#8'ftString'#9'Precision'#2
+#12'DisplayWidth'#3#150#0#9'FieldName'#6#9'Developer'#5'Index'#2#3#13'Provid' +#255#4'Size'#3#150#0#0#1#4'Name'#6#12'Date_Present'#8'DataType'#7#6'ftDate'#9
+'erFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#4'Size'#3#150#0#0#0#10'TDateField' +'Precision'#2#0#4'Size'#2#0#0#1#4'Name'#6#12'DEVELOPER_ID'#8'DataType'#7#9'f'
+#26'RxMemoryData1Date_Present1'#12'DisplayWidth'#2#10#9'FieldName'#6#12'Date' +'tInteger'#9'Precision'#2#0#4'Size'#2#0#0#0#16'OnFilterRecordEx'#7#27'RxMemo'
+'_Present'#5'Index'#2#4#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#0 +'ryData1FilterRecordEx'#4'left'#3#152#0#3'top'#3#8#1#0#13'TLongintField'#16
+#0#13'TLongintField'#26'RxMemoryData1DEVELOPER_ID1'#9'AlignMent'#7#14'taRigh' +'RxMemoryData1ID1'#12'DisplayWidth'#2#10#9'FieldKind'#7#6'fkData'#9'FieldNam'
+'tJustify'#12'DisplayWidth'#2#10#9'FieldName'#6#12'DEVELOPER_ID'#5'Index'#2#5 +'e'#6#2'ID'#5'Index'#2#0#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpdat'
+#13'LookupDataSet'#7#13'RxMemoryData2'#15'LookupKeyFields'#6#12'DEVELOPER_ID' +'e'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#0#0#12'TStringField'#18'RxMem'
+#17'LookupResultField'#6#14'DEVELOPER_NAME'#9'KeyFields'#6#12'DEVELOPER_ID' +'oryData1NAME1'#12'DisplayWidth'#3#150#0#9'FieldKind'#7#6'fkData'#9'FieldNam'
+#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#0#0#0#11'TDatasource'#11 +'e'#6#4'NAME'#5'Index'#2#1#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpd'
+'Datasource1'#7'DataSet'#7#13'RxMemoryData1'#4'left'#2'x'#3'top'#3#8#1#0#0#10 +'ate'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#4'Size'#3#150#0#0#0#11'TFlo'
,'TPopupMenu'#10'PopupMenu1'#4'left'#3#152#0#3'top'#3#197#0#0#9'TMenuItem'#9 ,'atField'#19'RxMemoryData1PRICE1'#12'DisplayWidth'#2#10#9'FieldKind'#7#6'fkD'
+'MenuItem1'#6'Action'#7#20'actOptimizeWidthCol1'#7'OnClick'#7#27'actOptimize' +'ata'#9'FieldName'#6#5'PRICE'#5'Index'#2#2#11'LookupCache'#8#13'ProviderFlag'
+'WidthCol1Execute'#0#0#9'TMenuItem'#9'MenuItem2'#7'Caption'#6#1'-'#0#0#9'TMe' +'s'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#13'DisplayF'
+'nuItem'#9'MenuItem4'#6'Action'#7#12'actCalcTotal'#7'OnClick'#7#19'actCalcTo' +'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
+'talExecute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7#26'actOptimizeColumns' +#0#0#0#0#0#0#9'Precision'#2#2#0#0#12'TStringField'#23'RxMemoryData1Developer'
+'WidthAll'#7'OnClick'#7'!actOptimizeColumnsWidthAllExecute'#0#0#0#11'TAction' +'1'#12'DisplayWidth'#3#150#0#9'FieldKind'#7#6'fkData'#9'FieldName'#6#9'Devel'
+'List'#11'ActionList1'#4'left'#3#206#0#3'top'#3#197#0#0#7'TAction'#12'actCal' +'oper'#5'Index'#2#3#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpdate'#9
+'cTotal'#7'Caption'#6#13'Calc total...'#18'DisableIfNoHandler'#9#9'OnExecute' +'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#4'Size'#3#150#0#0#0#10'TDateField'
+#7#19'actCalcTotalExecute'#0#0#7'TAction'#26'actOptimizeColumnsWidthAll'#7'C' +#26'RxMemoryData1Date_Present1'#12'DisplayWidth'#2#10#9'FieldKind'#7#6'fkDat'
+'aption'#6#25'Optimize width for all...'#18'DisableIfNoHandler'#9#9'OnExecut' +'a'#9'FieldName'#6#12'Date_Present'#5'Index'#2#4#11'LookupCache'#8#13'Provid'
+'e'#7'!actOptimizeColumnsWidthAllExecute'#0#0#7'TAction'#20'actOptimizeWidth' +'erFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#0#0#13
+'Col1'#7'Caption'#6#17'Optimize width...'#18'DisableIfNoHandler'#9#9'OnExecu' +'TLongintField'#26'RxMemoryData1DEVELOPER_ID1'#12'DisplayWidth'#2#10#9'Field'
+'te'#7#27'actOptimizeWidthCol1Execute'#0#0#0#11'TDatasource'#11'Datasource2' +'Kind'#7#6'fkData'#9'FieldName'#6#12'DEVELOPER_ID'#5'Index'#2#5#9'KeyFields'
+#7'DataSet'#7#13'RxMemoryData2'#4'left'#3#207#0#3'top'#3#8#1#0#0#13'TRxMemor' +#6#12'DEVELOPER_ID'#11'LookupCache'#8#13'LookupDataSet'#7#13'RxMemoryData2'
+'yData'#13'RxMemoryData2'#9'FieldDefs'#14#1#4'Name'#6#12'DEVELOPER_ID'#8'Dat' +#15'LookupKeyFields'#6#12'DEVELOPER_ID'#17'LookupResultField'#6#14'DEVELOPER'
+'aType'#7#9'ftInteger'#0#1#4'Name'#6#14'DEVELOPER_NAME'#8'DataType'#7#8'ftSt' +'_NAME'#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnly'#8#8'R'
+'ring'#4'Size'#3#130#0#0#0#4'left'#3#240#0#3'top'#3#8#1#0#13'TLongintField' +'equired'#8#0#0#0#11'TDatasource'#11'Datasource1'#7'DataSet'#7#13'RxMemoryDa'
+#26'RxMemoryData2DEVELOPER_ID1'#9'AlignMent'#7#14'taRightJustify'#12'Display' +'ta1'#4'left'#2'x'#3'top'#3#8#1#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#3
+'Width'#2#10#9'FieldName'#6#12'DEVELOPER_ID'#13'ProviderFlags'#11#10'pfInUpd' +#152#0#3'top'#3#197#0#0#9'TMenuItem'#9'MenuItem1'#6'Action'#7#20'actOptimize'
+'ate'#9'pfInWhere'#0#0#0#12'TStringField'#28'RxMemoryData2DEVELOPER_NAME1'#12 +'WidthCol1'#7'OnClick'#7#27'actOptimizeWidthCol1Execute'#0#0#9'TMenuItem'#9
+'DisplayWidth'#3#130#0#9'FieldName'#6#14'DEVELOPER_NAME'#5'Index'#2#1#13'Pro' +'MenuItem2'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem4'#6'Action'#7#12'a'
+'viderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#4'Size'#3#130#0#0#0#0#0 +'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) - исправлены глифы у TRxClock, TRxDateEdit, TAutoPanel (Edward Ivanov)
- Исправления в TRxDatePicker (Edward Ivanov) - Исправления в TRxDatePicker (Edward Ivanov)
+ Добавлены компоненты TRxDBSpinEdit, TRxTimeEdit, TRxDBTimeEdit + Добавлены компоненты TRxDBSpinEdit, TRxTimeEdit, TRxDBTimeEdit
+ TRxLoginDialo теперь работает. По сравнению с оригинальным функционал сильно расширен. Изменён дизайн формы
22.05.2008 - версия 2.0.0.136 (svn revision 100) 22.05.2008 - версия 2.0.0.136 (svn revision 100)
+ У объекта TRxCustomDBLookupCombo введён контроль на CircularDataLink + У объекта TRxCustomDBLookupCombo введён контроль на CircularDataLink
+ У объекта TRxCustomDBLookupCombo ускорена отрисовка данных + У объекта TRxCustomDBLookupCombo ускорена отрисовка данных

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

View File

@ -1,2 +1,2 @@
del rx.lrs del rx.lrs
D:\lazarus\tools\lazres.exe rx.lrs TDBDateEdit.xpm TRXLookUpEdit.xpm TRxDBCalcEdit.xpm TRxDBLookupCombo.xpm TRxDBGrid.xpm TDualListDialog.xpm TFolderLister.xpm TRxMemoryData.xpm TCURRENCYEDIT.xpm TRXSWITCH.xpm TRXDICE.xpm TRXDBCOMBOBOX.xpm ttoolpanel.xpm trxxpmanifest.xpm TPAGEMANAGER.xpm TRXAPPICON.xpm TSECRETPANEL.xpm TRXLABEL.xpm tautopanel.xpm TRxCalendarGrid.xpm TRxDateEdit.bmp TRxClock.bmp TRxSpeedButton.bmp TRxSpinButton.png TRxSpinEdit.png TRXDBSpinEdit.png TRxTimeEdit.png TRxDBTimeEdit.png TRxDBProgressBar.png TRxDBTrackBar.png 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 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 +#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 +#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 +#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 +#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 const
OnGetDefaultIniName: TOnGetDefaultIniName = nil; OnGetDefaultIniName: TOnGetDefaultIniName = nil;
//Save to IniFile or TRegIniFile string value
procedure IniWriteString(IniFile: TObject; const Section, Ident, procedure IniWriteString(IniFile: TObject; const Section, Ident,
Value: string); 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; function GetDefaultIniRegKey: string;
implementation implementation
uses Registry, Forms; uses Registry, Forms, FileUtil;
function GetDefaultSection(Component: TComponent): string; function GetDefaultSection(Component: TComponent): string;
var var
@ -64,11 +74,21 @@ begin
end; end;
function GetDefaultIniName: string; function GetDefaultIniName: string;
var
S:string;
begin begin
if Assigned(OnGetDefaultIniName) then if Assigned(OnGetDefaultIniName) then
Result:= OnGetDefaultIniName() Result:= OnGetDefaultIniName()
else 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; end;
procedure GetDefaultIniData(Control: TControl; var IniFileName, procedure GetDefaultIniData(Control: TControl; var IniFileName,
@ -99,7 +119,29 @@ var
begin begin
if IniFile is TRegIniFile then if IniFile is TRegIniFile then
TRegIniFile(IniFile).WriteString(Section, Ident, Value) 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; S := Value;
if S <> '' then begin if S <> '' then begin
if ((S[1] = '"') and (S[Length(S)] = '"')) or if ((S[1] = '"') and (S[Length(S)] = '"')) or
@ -107,7 +149,31 @@ begin
S := '"' + S + '"'; S := '"' + S + '"';
end; end;
if IniFile is TIniFile then 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;
end; end;
@ -121,22 +187,6 @@ begin
Result := 'Software\' + Result; Result := 'Software\' + Result;
end; 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. end.

View File

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

View File

@ -1,174 +1,382 @@
object RxLoginForm: TRxLoginForm object RxLoginForm: TRxLoginForm
Cursor = crArrow Cursor = crArrow
Left = 230 Left = 458
Height = 159 Height = 203
Top = 141 Top = 193
Width = 442 Width = 455
HorzScrollBar.Page = 441 ActiveControl = UserNameEdit
VertScrollBar.Page = 158 BorderIcons = [biSystemMenu, biHelp]
BorderIcons = []
BorderStyle = bsDialog
Caption = 'RxLoginForm' Caption = 'RxLoginForm'
ClientHeight = 159 ClientHeight = 203
ClientWidth = 442 ClientWidth = 455
Font.Height = -11
Font.Name = 'MS Sans Serif'
FormStyle = fsStayOnTop FormStyle = fsStayOnTop
OnCreate = FormCreate OnCreate = FormCreate
OnShow = FormShow OnShow = FormShow
Position = poScreenCenter Position = poScreenCenter
LCLVersion = '0.9.25' LCLVersion = '0.9.27'
object AppIcon: TImage object AppIcon: TImage
Left = 14 AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
Left = 6
Height = 32 Height = 32
Top = 12 Top = 6
Width = 32 Width = 32
AutoSize = True AutoSize = True
BorderSpacing.Around = 6
end end
object KeyImage: TImage object KeyImage: TImage
Left = 10 AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
Left = 6
Height = 32 Height = 32
Top = 15 Top = 6
Width = 32 Width = 32
AutoSize = True AutoSize = True
BorderSpacing.Around = 6
Picture.Data = { Picture.Data = {
055449636F6EEB0400002F2A2058504D202A2F0A737461746963206368617220 055449636F6EBE1000000000010001002020000001002000A810000016000000
2A677261706869635B5D203D207B0A22333220333220342031222C0A222E2063 2800000020000000400000000100200000000000001000006400000064000000
204E6F6E65222C0A222C20632023383038303830222C0A222D20632023303030 0000000000000000000000FF000000FF000000FF000000FF000000FF000000FF
303030222C0A222A20632023464646464646222C0A222E2E2E2E2E2E2E2E2E2E 000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E 000000FF000000FF000000FF000000FF000000FF000000000000000000000000
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E 0000000000000000000000000000000000000000000000000000000000000000
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C 0000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000000000000000000000
2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E 0000000000000000000000000000000000000000000000000000000000000000
2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E 0000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000000000000000000000
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E 0000000000000000000000000000000000000000000000000000000000000000
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E 0000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FFFFFFFFFF
0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E 000000FF000000FFFFFFFFFFFFFFFFFF000000FF000000000000000000000000
2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E 0000000000000000000000000000000000000000000000000000000000000000
2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E 0000000000000000808080FFFFFFFFFFFFFFFFFF808080FF000000FF000000FF
2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FFFFFFFFFF
2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E 000000FF000000FFFFFFFFFFFFFFFFFF000000FF000000000000000000000000
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E 0000000000000000000000000000000000000000000000000000000000000000
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E 0000000000000000808080FFFFFFFFFF808080FF000000FF808080FF000000FF
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E 000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FFFFFFFFFF
2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C 000000FF000000FFFFFFFFFFFFFFFFFF000000FF000000000000000000000000
0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E 0000000000000000000000000000000000000000000000000000000000000000
2E2E222C0A222C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2D2E2E2E2E2E2E2E 0000000000000000808080FFFFFFFFFF000000FF000000FFFFFFFFFFFFFFFFFF
2E2E2E2E2E2E222C0A222C2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2D2E2E2E 000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
2E2E2E2E2E2E2E2E2E2E222C0A222C2A2A2C2D2D2A2A2A2A2A2A2A2A2A2A2A2A 000000FF000000FF000000FFFFFFFFFF000000FF000000000000000000000000
2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222C2A2C2D2C2D2D2A2A2A2A2A2A2A 0000000000000000000000000000000000000000000000000000000000000000
2A2A2A2A2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222C2A2D2D2A2A2D2D2D2D 0000000000000000808080FFFFFFFFFF000000FF000000FFFFFFFFFFFFFFFFFF
2D2D2D2D2D2D2D2A2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222C2A2D2D2A2A 000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
2D2D2D2D2D2D2D2D2D2D2D2A2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222C2A 000000FF000000FF000000FFFFFFFFFF000000FF000000000000000000000000
2C2D2C2D2D2A2A2A2A2D2D2A2D2D2A2A2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C 0000000000000000000000000000000000000000000000000000000000000000
0A222C2A2A2C2D2D2A2A2A2A2A2D2D2A2D2D2A2A2D2E2E2E2E2E2E2E2E2E2E2E 0000000000000000808080FFFFFFFFFF808080FF000000FF808080FF000000FF
2E2E222C0A222C2A2A2A2A2A2A2A2A2A2A2D2D2A2D2D2A2A2D2E2E2E2E2E2E2E 000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
2E2E2E2E2E2E222C0A222C2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2D2E2E2E FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000000000000000000000
2E2E2E2E2E2E2E2E2E2E222C0A222C2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A 0000000000000000000000000000000000000000000000000000000000000000
2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222D2D2D2D2D2D2D2D2D2D2D2D2D2D 0000000000000000808080FFFFFFFFFFFFFFFFFF808080FF000000FF000000FF
2D2D2D2D2D2E2E2E2E2E2E2E2E2E2E2E2E2E227D0A 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 end
object HintLabel: TLabel object HintLabel: TLabel
Left = 64 AnchorSideLeft.Control = AppIcon
Height = 13 AnchorSideLeft.Side = asrBottom
Top = 31 AnchorSideTop.Control = Owner
Width = 285 AnchorSideRight.Control = Owner
AutoSize = False AnchorSideRight.Side = asrBottom
Left = 44
Height = 18
Top = 6
Width = 405
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
Caption = 'HintLabel'
ParentColor = False ParentColor = False
ShowAccelChar = False ShowAccelChar = False
end end
object UserNameLabel: TLabel object UserNameLabel: TLabel
Left = 64 AnchorSideLeft.Control = Owner
Height = 13 AnchorSideBottom.Control = UserNameEdit
Top = 64 AnchorSideBottom.Side = asrBottom
Width = 105 Left = 6
AutoSize = False Height = 18
Top = 63
Width = 70
Anchors = [akLeft, akBottom]
BorderSpacing.Left = 6
Caption = 'UserName'
FocusControl = UserNameEdit FocusControl = UserNameEdit
ParentColor = False ParentColor = False
end end
object PasswordLabel: TLabel object PasswordLabel: TLabel
Left = 64 AnchorSideLeft.Control = Owner
Height = 13 AnchorSideBottom.Control = PasswordEdit
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 18
Top = 96 Top = 96
Width = 105 Width = 60
AutoSize = False Anchors = [akLeft, akBottom]
BorderSpacing.Left = 6
Caption = 'Password'
FocusControl = PasswordEdit FocusControl = PasswordEdit
ParentColor = False ParentColor = False
end end
object AppTitleLabel: TLabel object AppTitleLabel: TLabel
Left = 64 AnchorSideLeft.Control = AppIcon
Height = 13 AnchorSideLeft.Side = asrBottom
Top = 12 AnchorSideTop.Control = HintLabel
Width = 285 AnchorSideTop.Side = asrBottom
AutoSize = False 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 ParentColor = False
ShowAccelChar = False ShowAccelChar = False
end end
object CustomLabel: TLabel object DataBaseLabel: TLabel
Left = 64 AnchorSideLeft.Control = Owner
Height = 13 AnchorSideBottom.Control = CustomCombo
Top = 128 AnchorSideBottom.Side = asrBottom
Width = 105 Left = 6
AutoSize = False Height = 18
Top = 133
Width = 63
Anchors = [akLeft, akBottom]
BorderSpacing.Left = 6
Caption = 'Database'
FocusControl = CustomCombo FocusControl = CustomCombo
ParentColor = False ParentColor = False
end end
object UserNameEdit: TEdit object UserNameEdit: TEdit
AnchorSideLeft.Control = UserNameLabel
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = AppTitleLabel
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Cursor = crIBeam Cursor = crIBeam
Left = 172 Left = 94
Height = 21 Height = 27
Top = 60 Top = 54
Width = 169 Width = 355
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Left = 12
BorderSpacing.Around = 6
TabOrder = 0 TabOrder = 0
Text = '1'
end end
object PasswordEdit: TEdit object PasswordEdit: TEdit
AnchorSideLeft.Control = UserNameEdit
AnchorSideTop.Control = UserNameEdit
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = UserNameEdit
AnchorSideRight.Side = asrBottom
Cursor = crIBeam Cursor = crIBeam
Left = 172 Left = 94
Height = 21 Height = 27
Top = 92 Top = 87
Width = 169 Width = 355
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Top = 6
EchoMode = emPassword EchoMode = emPassword
PasswordChar = '*' PasswordChar = '*'
TabOrder = 1 TabOrder = 1
end Text = '1'
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
end end
object CustomCombo: TComboBox object CustomCombo: TComboBox
Left = 172 AnchorSideLeft.Control = UserNameEdit
Height = 21 AnchorSideTop.Control = PasswordEdit
Top = 124 AnchorSideTop.Side = asrBottom
Width = 169 AnchorSideRight.Control = UserNameEdit
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] AnchorSideRight.Side = asrBottom
ItemHeight = 13 Left = 94
MaxLength = 0 Height = 31
Sorted = True Top = 120
Width = 355
Anchors = [akTop, akLeft, akRight]
AutoComplete = False
BorderSpacing.Top = 6
ItemHeight = 0
ItemWidth = 0
Style = csDropDownList Style = csDropDownList
TabOrder = 2 TabOrder = 2
end 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 end

View File

@ -1,56 +1,220 @@
{ ��� - ���� ��������, ������������� ��������� lazarus } { ��� - ���� ��������, ������������� ��������� lazarus }
LazarusResources.Add('TRxLoginForm','FORMDATA',[ LazarusResources.Add('TRxLoginForm','FORMDATA',[
'TPF0'#12'TRxLoginForm'#11'RxLoginForm'#6'Cursor'#7#7'crArrow'#4'Left'#3#230#0 'TPF0'#12'TRxLoginForm'#11'RxLoginForm'#6'Cursor'#7#7'crArrow'#4'Left'#3#202#1
+#6'Height'#3#159#0#3'Top'#3#141#0#5'Width'#3#186#1#18'HorzScrollBar.Page'#3 +#6'Height'#3#203#0#3'Top'#3#193#0#5'Width'#3#199#1#13'ActiveControl'#7#12'Us'
+#185#1#18'VertScrollBar.Page'#3#158#0#11'BorderIcons'#11#0#11'BorderStyle'#7 +'erNameEdit'#11'BorderIcons'#11#12'biSystemMenu'#6'biHelp'#0#7'Caption'#6#11
+#8'bsDialog'#7'Caption'#6#11'RxLoginForm'#12'ClientHeight'#3#159#0#11'Client' +'RxLoginForm'#12'ClientHeight'#3#203#0#11'ClientWidth'#3#199#1#9'FormStyle'#7
+'Width'#3#186#1#11'Font.Height'#2#245#9'Font.Name'#6#13'MS Sans Serif'#9'For' +#11'fsStayOnTop'#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#8'Posi'
+'mStyle'#7#11'fsStayOnTop'#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormSh' +'tion'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.27'#0#6'TImage'#7'AppIcon'
+'ow'#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.25'#0#6'TImage' +#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4
+#7'AppIcon'#4'Left'#2#14#6'Height'#2' '#3'Top'#2#12#5'Width'#2' '#8'AutoSize' +'Left'#2#6#6'Height'#2' '#3'Top'#2#6#5'Width'#2' '#8'AutoSize'#9#20'BorderSp'
+#9#0#0#6'TImage'#8'KeyImage'#4'Left'#2#10#6'Height'#2' '#3'Top'#2#15#5'Width' +'acing.Around'#2#6#0#0#6'TImage'#8'KeyImage'#22'AnchorSideLeft.Control'#7#5
+#2' '#8'AutoSize'#9#12'Picture.Data'#10#245#4#0#0#5'TIcon'#235#4#0#0'/* XPM ' +'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#6#6'Height'#2' '#3'To'
+'*/'#10'static char *graphic[] = {'#10'"32 32 4 1",'#10'". c None",'#10'", c' +'p'#2#6#5'Width'#2' '#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#12'Picture.'
+' #808080",'#10'"- c #000000",'#10'"* c #FFFFFF",'#10'".....................' +'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
+'...........",'#10'"................................",'#10'"................' +#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
+'................",'#10'"................................",'#10'"...........' +'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
+'.....................",'#10'"................................",'#10'"......' +#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
+'..........................",'#10'"................................",'#10'".' +#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
+'...............................",'#10'"................................",' +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#10'"................................",'#10'"...............................' +#0#0#0#0#0#0#0#0#128#128#128#255#255#255#255#255#255#255#255#255#255#255#255
+'.",'#10'"................................",'#10'"..........................' +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+'......",'#10'"................................",'#10'".....................' +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+'...........",'#10'"................................",'#10'"................' +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+'................",'#10'"................................",'#10'"...........' +#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
+'.....................",'#10'",,,,,,,,,,,,,,,,,,-.............",'#10'",*****' +#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
+'************-.............",'#10'",**,--************-.............",'#10'",' +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+'*,-,--***********-.............",'#10'",*--**-----------*-.............",' +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#10'",*--**-----------*-.............",'#10'",*,-,--****--*--**-............' +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+'.",'#10'",**,--*****--*--**-.............",'#10'",**********--*--**-.......' +#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
+'......",'#10'",*****************-.............",'#10'",*****************-..' +#0#0#0#0#0#0#0#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
+'...........",'#10'"-------------------............."}'#10#0#0#6'TLabel'#9'H' +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+'intLabel'#4'Left'#2'@'#6'Height'#2#13#3'Top'#2#31#5'Width'#3#29#1#8'AutoSiz' +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+'e'#8#11'ParentColor'#8#13'ShowAccelChar'#8#0#0#6'TLabel'#13'UserNameLabel'#4 +#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
+'Left'#2'@'#6'Height'#2#13#3'Top'#2'@'#5'Width'#2'i'#8'AutoSize'#8#12'FocusC' +#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
+'ontrol'#7#12'UserNameEdit'#11'ParentColor'#8#0#0#6'TLabel'#13'PasswordLabel' +#0#0#0#0#0#0#0#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
+#4'Left'#2'@'#6'Height'#2#13#3'Top'#2'`'#5'Width'#2'i'#8'AutoSize'#8#12'Focu' +#255#255#255#255#255#255#255#255#255#128#128#128#255#0#0#0#255#0#0#0#255#255
+'sControl'#7#12'PasswordEdit'#11'ParentColor'#8#0#0#6'TLabel'#13'AppTitleLab' +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+'el'#4'Left'#2'@'#6'Height'#2#13#3'Top'#2#12#5'Width'#3#29#1#8'AutoSize'#8#11 +#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
+'ParentColor'#8#13'ShowAccelChar'#8#0#0#6'TLabel'#11'CustomLabel'#4'Left'#2 +#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
+'@'#6'Height'#2#13#3'Top'#3#128#0#5'Width'#2'i'#8'AutoSize'#8#12'FocusContro' +#0#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
+'l'#7#11'CustomCombo'#11'ParentColor'#8#0#0#5'TEdit'#12'UserNameEdit'#6'Curs' +#255#255#128#128#128#255#0#0#0#255#128#128#128#255#0#0#0#255#0#0#0#255#255
+'or'#7#7'crIBeam'#4'Left'#3#172#0#6'Height'#2#21#3'Top'#2'<'#5'Width'#3#169#0 +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0
+#8'TabOrder'#2#0#0#0#5'TEdit'#12'PasswordEdit'#6'Cursor'#7#7'crIBeam'#4'Left' +#255#255#255#255#255#0#0#0#255#0#0#0#255#255#255#255#255#255#255#255#255#0#0
+#3#172#0#6'Height'#2#21#3'Top'#2'\'#5'Width'#3#169#0#8'EchoMode'#7#10'emPass' +#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
+'word'#12'PasswordChar'#6#1'*'#8'TabOrder'#2#1#0#0#7'TButton'#5'OkBtn'#4'Lef' +#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
+'t'#3'd'#1#6'Height'#2#25#3'Top'#2#12#5'Width'#2'M'#25'BorderSpacing.InnerBo' +#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
+'rder'#2#2#7'Caption'#6#2'OK'#7'Default'#9#7'OnClick'#7#10'OkBtnClick'#8'Tab' +#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
+'Order'#2#3#0#0#7'TButton'#9'CancelBtn'#4'Left'#3'd'#1#6'Height'#2#25#3'Top' +#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
+#2','#5'Width'#2'M'#25'BorderSpacing.InnerBorder'#2#2#6'Cancel'#9#7'Caption' +#0#0#0#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
+#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#4#0#0#9'TComboBox'#11'CustomC' +#255#255#255#0#0#0#255#0#0#0#255#255#255#255#255#255#255#255#255#0#0#0#255#0
+'ombo'#4'Left'#3#172#0#6'Height'#2#21#3'Top'#2'|'#5'Width'#3#169#0#16'AutoCo' +#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
+'mpleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#10'Ite' +#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
+'mHeight'#2#13#9'MaxLength'#2#0#6'Sorted'#9#5'Style'#7#14'csDropDownList'#8 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+'TabOrder'#2#2#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 type
TUpdateCaption = (ucNoChange, ucAppTitle, ucFormCaption); 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; TRxLoginEvent = procedure(Sender: TObject; const UserName, Password: string;
var AllowLogin: Boolean) of object; var AllowLogin: Boolean) of object;
TCheckUnlockEvent = function(const Password: string): Boolean of object; TCheckUnlockEvent = function(const Password: string): Boolean of object;
@ -32,11 +41,16 @@ type
private private
FActive: Boolean; FActive: Boolean;
FAttemptNumber: Integer; FAttemptNumber: Integer;
FLoggedUser: {$IFDEF RX_D3}String{$ELSE}PString{$ENDIF}; FDetailItem: integer;
FDetailItems: TStrings;
FLoggedUser: string;
FMaxPasswordLen: Integer; FMaxPasswordLen: Integer;
FAllowEmpty: Boolean; FAllowEmpty: Boolean;
FLoginOptions: TRxLoginOptions;
FShowDetails: boolean;
FStorageParams: TRxLoginStorageParams;
FUpdateCaption: TUpdateCaption; FUpdateCaption: TUpdateCaption;
FIniFileName: {$IFDEF RX_D3}String{$ELSE}PString{$ENDIF}; FIniFileName: string;
FUseRegistry: Boolean; FUseRegistry: Boolean;
FLocked: Boolean; FLocked: Boolean;
FUnlockDlgShowing: Boolean; FUnlockDlgShowing: Boolean;
@ -46,11 +60,10 @@ type
FOnUnlock: TCheckUnlockEvent; FOnUnlock: TCheckUnlockEvent;
FOnUnlockApp: TUnlockAppEvent; FOnUnlockApp: TUnlockAppEvent;
FOnIconDblClick: TNotifyEvent; FOnIconDblClick: TNotifyEvent;
{$IFNDEF RX_D3}
function GetLoggedUser: string;
procedure SetIniFileName(const Value: string);
{$ENDIF}
function GetIniFileName: string; function GetIniFileName: string;
procedure SetDetailItems(const AValue: TStrings);
procedure SetLoginOptions(const AValue: TRxLoginOptions);
procedure SetShowDetails(const AValue: boolean);
function UnlockHook(var Message: TLMessage): Boolean; function UnlockHook(var Message: TLMessage): Boolean;
protected protected
function CheckUnlock(const UserName, Password: string): Boolean; dynamic; function CheckUnlock(const UserName, Password: string): Boolean; dynamic;
@ -66,10 +79,16 @@ type
property Active: Boolean read FActive write FActive default True; property Active: Boolean read FActive write FActive default True;
property AllowEmptyPassword: Boolean read FAllowEmpty write FAllowEmpty default True; property AllowEmptyPassword: Boolean read FAllowEmpty write FAllowEmpty default True;
property AttemptNumber: Integer read FAttemptNumber write FAttemptNumber default 3; 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 MaxPasswordLen: Integer read FMaxPasswordLen write FMaxPasswordLen default 0;
property UpdateCaption: TUpdateCaption read FUpdateCaption write FUpdateCaption default ucNoChange; property UpdateCaption: TUpdateCaption read FUpdateCaption write FUpdateCaption default ucNoChange;
property UseRegistry: Boolean read FUseRegistry write FUseRegistry default False; 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 AfterLogin: TNotifyEvent read FAfterLogin write FAfterLogin;
property BeforeLogin: TNotifyEvent read FBeforeLogin write FBeforeLogin; property BeforeLogin: TNotifyEvent read FBeforeLogin write FBeforeLogin;
property OnUnlock: TCheckUnlockEvent read FOnUnlock write FOnUnlock; { obsolete } property OnUnlock: TCheckUnlockEvent read FOnUnlock write FOnUnlock; { obsolete }
@ -81,7 +100,7 @@ type
function Login: Boolean; virtual; function Login: Boolean; virtual;
procedure TerminateApplication; procedure TerminateApplication;
procedure Lock; procedure Lock;
property LoggedUser: string read {$IFDEF RX_D3}FLoggedUser{$ELSE}GetLoggedUser{$ENDIF}; property LoggedUser: string read FLoggedUser;
end; end;
{ TRxLoginDialog } { TRxLoginDialog }
@ -89,9 +108,12 @@ type
TRxLoginDialog = class(TRxCustomLogin) TRxLoginDialog = class(TRxCustomLogin)
private private
FOnCheckUser: TRxLoginEvent; FOnCheckUser: TRxLoginEvent;
FUserName:string;
FFormTop:integer;
FFormLeft:integer;
procedure OkButtonClick(Sender: TObject); procedure OkButtonClick(Sender: TObject);
procedure WriteUserName(const UserName: string); procedure WriteParams;
function ReadUserName(const UserName: string): string; procedure LoadParams;
protected protected
function DoCheckUser(const UserName, Password: string): Boolean; dynamic; function DoCheckUser(const UserName, Password: string): Boolean; dynamic;
function DoLogin(var UserName: string): Boolean; override; function DoLogin(var UserName: string): Boolean; override;
@ -100,9 +122,14 @@ type
property Active; property Active;
property AttemptNumber; property AttemptNumber;
property IniFileName; property IniFileName;
property DetailItems;
property DetailItem;
property MaxPasswordLen; property MaxPasswordLen;
property UpdateCaption; property UpdateCaption;
property UseRegistry; property UseRegistry;
property ShowDetails;
property LoginOptions;
property StorageParams;
property OnCheckUser: TRxLoginEvent read FOnCheckUser write FOnCheckUser; property OnCheckUser: TRxLoginEvent read FOnCheckUser write FOnCheckUser;
property AfterLogin; property AfterLogin;
property BeforeLogin; property BeforeLogin;
@ -114,27 +141,32 @@ type
TRxLoginForm = class(TForm) TRxLoginForm = class(TForm)
AppIcon: TImage; AppIcon: TImage;
btnHelp: TBitBtn;
btnMore: TBitBtn;
btnCancel: TBitBtn;
KeyImage: TImage; KeyImage: TImage;
HintLabel: TLabel; HintLabel: TLabel;
btnOK: TBitBtn;
UserNameLabel: TLabel; UserNameLabel: TLabel;
PasswordLabel: TLabel; PasswordLabel: TLabel;
UserNameEdit: TEdit; UserNameEdit: TEdit;
PasswordEdit: TEdit; PasswordEdit: TEdit;
AppTitleLabel: TLabel; AppTitleLabel: TLabel;
OkBtn: TButton; DataBaseLabel: TLabel;
CancelBtn: TButton;
CustomLabel: TLabel;
CustomCombo: TComboBox; CustomCombo: TComboBox;
procedure btnMoreClick(Sender: TObject);
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure OkBtnClick(Sender: TObject); procedure btnOKClick(Sender: TObject);
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
private private
{ Private declarations }
FSelectDatabase: Boolean; FSelectDatabase: Boolean;
FUnlockMode: Boolean; FUnlockMode: Boolean;
FAttempt: Integer; FAttempt: Integer;
FOnFormShow: TNotifyEvent; FOnFormShow: TNotifyEvent;
FOnOkClick: TNotifyEvent; FOnOkClick: TNotifyEvent;
function GetShowDetailParams: boolean;
procedure SetLoginOptions(const AValue: TRxLoginOptions);
procedure SetShowDetailParams(const AValue: boolean);
public public
{ Public declarations } { Public declarations }
AttemptNumber: Integer; AttemptNumber: Integer;
@ -142,6 +174,8 @@ type
property SelectDatabase: Boolean read FSelectDatabase write FSelectDatabase; property SelectDatabase: Boolean read FSelectDatabase write FSelectDatabase;
property OnFormShow: TNotifyEvent read FOnFormShow write FOnFormShow; property OnFormShow: TNotifyEvent read FOnFormShow write FOnFormShow;
property OnOkClick: TNotifyEvent read FOnOkClick write FOnOkClick; property OnOkClick: TNotifyEvent read FOnOkClick write FOnOkClick;
property ShowDetailParams:boolean read GetShowDetailParams write SetShowDetailParams;
property LoginOptions:TRxLoginOptions write SetLoginOptions;
end; end;
function CreateLoginDialog(UnlockMode, ASelectDatabase: Boolean; function CreateLoginDialog(UnlockMode, ASelectDatabase: Boolean;
@ -149,25 +183,33 @@ function CreateLoginDialog(UnlockMode, ASelectDatabase: Boolean;
implementation implementation
uses {$IFDEF WIN32} Registry, {$ENDIF} IniFiles, RxAppUtils, RxDConst, uses
VclUtils, RxConst; Registry, IniFiles, RxAppUtils, RxDConst, VclUtils, RxConst;
const const
keyLoginSection = 'Login Dialog'; keyLoginSection = 'Login Dialog';
keyLastLoginUserName = 'Last Logged User'; 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; function CreateLoginDialog(UnlockMode, ASelectDatabase: Boolean;
FormShowEvent, OkClickEvent: TNotifyEvent): TRxLoginForm; FormShowEvent, OkClickEvent: TNotifyEvent): TRxLoginForm;
begin begin
Result := TRxLoginForm.Create(Application); Result := TRxLoginForm.Create(Application);
with Result do begin with Result do
begin
FSelectDatabase := ASelectDatabase; FSelectDatabase := ASelectDatabase;
FUnlockMode := UnlockMode; FUnlockMode := UnlockMode;
if FUnlockMode then begin if FUnlockMode then
begin
FormStyle := fsNormal; FormStyle := fsNormal;
FSelectDatabase := False; FSelectDatabase := False;
end end
else begin else
begin
FormStyle := fsStayOnTop; FormStyle := fsStayOnTop;
end; end;
OnFormShow := FormShowEvent; OnFormShow := FormShowEvent;
@ -180,14 +222,13 @@ end;
constructor TRxCustomLogin.Create(AOwner: TComponent); constructor TRxCustomLogin.Create(AOwner: TComponent);
begin begin
inherited Create(AOwner); inherited Create(AOwner);
{$IFNDEF RX_D3} FDetailItems:=TStringList.Create;
FIniFileName := NullStr;
FLoggedUser := NullStr;
{$ENDIF}
FActive := True; FActive := True;
FAttemptNumber := 3; FAttemptNumber := 3;
FAllowEmpty := True; FAllowEmpty := True;
FUseRegistry := False; FUseRegistry := False;
FStorageParams:=[rlsUserName];
FLoginOptions:=[rloCustomSelect, rloMoreBtn, rloHelpBtn];
end; end;
destructor TRxCustomLogin.Destroy; destructor TRxCustomLogin.Destroy;
@ -197,45 +238,43 @@ begin
// Application.UnhookMainWindow(UnlockHook); // Application.UnhookMainWindow(UnlockHook);
FLocked := False; FLocked := False;
end; end;
{$IFNDEF RX_D3} FreeAndNil(FDetailItems);
DisposeStr(FLoggedUser);
DisposeStr(FIniFileName);
{$ENDIF}
inherited Destroy; inherited Destroy;
end; end;
function TRxCustomLogin.GetIniFileName: string; function TRxCustomLogin.GetIniFileName: string;
begin begin
Result := FIniFileName{$IFNDEF RX_D3}^{$ENDIF}; Result := FIniFileName;
if (Result = '') and not (csDesigning in ComponentState) then begin if (Result = '') and not (csDesigning in ComponentState) then
{$IFDEF WIN32} begin
if UseRegistry then Result := GetDefaultIniRegKey if UseRegistry then
else Result := GetDefaultIniName; Result := GetDefaultIniRegKey
{$ELSE} else
Result := GetDefaultIniName; Result := GetDefaultIniName;
{$ENDIF}
end; end;
end; end;
{$IFNDEF RX_D3} procedure TRxCustomLogin.SetDetailItems(const AValue: TStrings);
procedure TRxCustomLogin.SetIniFileName(const Value: string);
begin begin
AssignStr(FIniFileName, Value); if Assigned(AValue) then
FDetailItems.Assign(AValue);
end; end;
function TRxCustomLogin.GetLoggedUser: string; procedure TRxCustomLogin.SetLoginOptions(const AValue: TRxLoginOptions);
begin 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; end;
{$ENDIF}
procedure TRxCustomLogin.SetLoggedUser(const Value: string); procedure TRxCustomLogin.SetLoggedUser(const Value: string);
begin begin
{$IFDEF RX_D3}
FLoggedUser := Value; FLoggedUser := Value;
{$ELSE}
AssignStr(FLoggedUser, Value);
{$ENDIF}
end; end;
procedure TRxCustomLogin.DoAfterLogin; procedure TRxCustomLogin.DoAfterLogin;
@ -278,7 +317,8 @@ begin
LoginName := EmptyStr; LoginName := EmptyStr;
DoBeforeLogin; DoBeforeLogin;
Result := DoLogin(LoginName); Result := DoLogin(LoginName);
if Result then begin if Result then
begin
SetLoggedUser(LoginName); SetLoggedUser(LoginName);
DoUpdateCaption; DoUpdateCaption;
DoAfterLogin; DoAfterLogin;
@ -334,14 +374,18 @@ end;
function TRxCustomLogin.CreateLoginForm(UnlockMode: Boolean): TRxLoginForm; function TRxCustomLogin.CreateLoginForm(UnlockMode: Boolean): TRxLoginForm;
begin begin
Result := TRxLoginForm.Create(Application); Result := TRxLoginForm.Create(Application);
with Result do begin with Result do
begin
FUnlockMode := UnlockMode; FUnlockMode := UnlockMode;
if FUnlockMode then begin if FUnlockMode then
begin
FormStyle := fsNormal; FormStyle := fsNormal;
FSelectDatabase := False; FSelectDatabase := False;
end end
else FormStyle := fsStayOnTop; else
if Assigned(Self.FOnIconDblClick) then begin FormStyle := fsStayOnTop;
if Assigned(Self.FOnIconDblClick) then
begin
with AppIcon do with AppIcon do
begin begin
OnDblClick := @DoIconDblClick; OnDblClick := @DoIconDblClick;
@ -399,7 +443,7 @@ function TRxCustomLogin.UnlockHook(var Message: TLMessage): Boolean;
{$ELSE} {$ELSE}
BringWindowToTop(Popup); BringWindowToTop(Popup);
{$ENDIF} {$ENDIF}
end; *) end; //*)
Result := False; Result := False;
(* Exit; (* Exit;
end; end;
@ -429,8 +473,8 @@ begin
UnlockHook := not DoUnlock; UnlockHook := not DoUnlock;
end; end;
LM_SYSCOMMAND: LM_SYSCOMMAND:
if (WParam and $FFF0 = SC_RESTORE) {or if (WParam and $FFF0 = SC_RESTORE)
(WParam and $FFF0 = SC_ZOOM) }then { or (WParam and $FFF0 = SC_ZOOM) }then
begin begin
UnlockHook := not DoUnlock; UnlockHook := not DoUnlock;
end; end;
@ -446,7 +490,8 @@ var
begin begin
FLoading := csLoading in ComponentState; FLoading := csLoading in ComponentState;
inherited Loaded; 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 if Active and not Login then
TerminateApplication; TerminateApplication;
end; end;
@ -464,7 +509,8 @@ begin
SC := True; SC := True;
{$ENDIF} {$ENDIF}
try try
if SC then Screen.Cursor := crHourGlass; if SC then
Screen.Cursor := crHourGlass;
try try
if DoCheckUser(UserNameEdit.Text, PasswordEdit.Text) then if DoCheckUser(UserNameEdit.Text, PasswordEdit.Text) then
ModalResult := mrOk ModalResult := mrOk
@ -486,19 +532,24 @@ begin
FOnCheckUser(Self, UserName, Password, Result); FOnCheckUser(Self, UserName, Password, Result);
end; end;
procedure TRxLoginDialog.WriteUserName(const UserName: string); procedure TRxLoginDialog.WriteParams;
var var
Ini: TObject; Ini: TObject;
begin begin
try try
{$IFDEF WIN32}
if UseRegistry then Ini := TRegIniFile.Create(IniFileName) if UseRegistry then Ini := TRegIniFile.Create(IniFileName)
else Ini := TIniFile.Create(IniFileName); else Ini := TIniFile.Create(IniFileName);
{$ELSE}
Ini := TIniFile.Create(IniFileName);
{$ENDIF}
try 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 finally
Ini.Free; Ini.Free;
end; end;
@ -506,50 +557,83 @@ begin
end; end;
end; end;
function TRxLoginDialog.ReadUserName(const UserName: string): string; procedure TRxLoginDialog.LoadParams;
var var
Ini: TObject; Ini: TObject;
begin begin
try try
{$IFDEF WIN32} if UseRegistry then
if UseRegistry then begin begin
Ini := TRegIniFile.Create(IniFileName); Ini := TRegIniFile.Create(IniFileName);
{$IFDEF RX_D5}
TRegIniFile(Ini).Access := KEY_READ; TRegIniFile(Ini).Access := KEY_READ;
{$ENDIF}
end end
else else
Ini := TIniFile.Create(IniFileName); Ini := TIniFile.Create(IniFileName);
{$ELSE}
Ini := TIniFile.Create(IniFileName);
{$ENDIF}
try try
{ Result := IniReadString(Ini, keyLoginSection, keyLastLoginUserName, if rlsUserName in FStorageParams then
UserName);} 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 finally
Ini.Free; Ini.Free;
end; end;
except except
Result := UserName;
end; end;
end; end;
function TRxLoginDialog.DoLogin(var UserName: string): Boolean; function TRxLoginDialog.DoLogin(var UserName: string): Boolean;
var
LoginForm:TRxLoginForm;
begin begin
try try
{ with CreateLoginForm(False) do LoginForm:=CreateLoginForm(False);
try try
OnOkClick := Self.OkButtonClick; FUserName:=UserName;
UserName := ReadUserName(UserName); LoginForm.OnOkClick := @Self.OkButtonClick;
UserNameEdit.Text := UserName; LoadParams;
Result := (ShowModal = mrOk); LoginForm.LoginOptions:=FLoginOptions;
if Result then begin
UserName := UserNameEdit.Text; if rlsUserName in StorageParams then
WriteUserName(UserName); 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; end;
finally finally
Free; LoginForm.Free;
end;} end;
except except
Application.HandleException(Self); Application.HandleException(Self);
Result := False; Result := False;
@ -560,17 +644,20 @@ end;
procedure TRxLoginForm.FormCreate(Sender: TObject); procedure TRxLoginForm.FormCreate(Sender: TObject);
begin begin
{ Icon := Application.Icon; Icon.Assign(Application.Icon);
if Icon.Empty then Icon.Handle := LoadIcon(0, IDI_APPLICATION); // if Icon.Empty then Icon.Handle := LoadIcon(0, IDI_APPLICATION);
AppIcon.Picture.Assign(Icon); AppIcon.Picture.Assign(Icon);
AppTitleLabel.Caption := FmtLoadStr(SAppTitleLabel, [Application.Title]); AppTitleLabel.Caption := Format(SAppTitleLabel, [Application.Title]);
PasswordLabel.Caption := LoadStr(SPasswordLabel); PasswordLabel.Caption := SPasswordLabel;
UserNameLabel.Caption := LoadStr(SUserNameLabel); UserNameLabel.Caption := SUserNameLabel;
OkBtn.Caption := ResStr(SOKButton);
CancelBtn.Caption := ResStr(SCancelButton);}
end; end;
procedure TRxLoginForm.OkBtnClick(Sender: TObject); procedure TRxLoginForm.btnMoreClick(Sender: TObject);
begin
ShowDetailParams:=not ShowDetailParams;
end;
procedure TRxLoginForm.btnOKClick(Sender: TObject);
begin begin
Inc(FAttempt); Inc(FAttempt);
if Assigned(FOnOkClick) then FOnOkClick(Self) if Assigned(FOnOkClick) then FOnOkClick(Self)
@ -584,33 +671,76 @@ var
I: Integer; I: Integer;
S: string; S: string;
begin begin
{ if FSelectDatabase then if FSelectDatabase then
begin begin
ClientHeight := CustomCombo.Top + PasswordEdit.Top - UserNameEdit.Top; ClientHeight := CustomCombo.Top + PasswordEdit.Top - UserNameEdit.Top;
S := LoadStr(SDatabaseName); S := SDatabaseName;
I := Pos(':', S); I := Pos(':', S);
if I = 0 then I := Length(S); if I = 0 then I := Length(S);
CustomLabel.Caption := '&' + Copy(S, 1, I); DataBaseLabel.Caption := '&' + Copy(S, 1, I);
end end
else begin else
ClientHeight := PasswordEdit.Top + PasswordEdit.Top - UserNameEdit.Top; begin
CustomLabel.Visible := False; DataBaseLabel.Visible := False;
CustomCombo.Visible := False; CustomCombo.Visible := False;
btnMore.Visible := False;
end; end;
if not FUnlockMode then begin
HintLabel.Caption := LoadStr(SHintLabel); SetShowDetailParams(ShowDetailParams);
Caption := LoadStr(SRegistration);
if not FUnlockMode then
begin
HintLabel.Caption := SHintLabel;
Caption := SRegistration;
end end
else begin else
HintLabel.Caption := LoadStr(SUnlockHint); begin
Caption := LoadStr(SUnlockCaption); HintLabel.Caption := SUnlockHint;
Caption := SUnlockCaption;
end; end;
if (UserNameEdit.Text = EmptyStr) and not FUnlockMode then if (UserNameEdit.Text = EmptyStr) and not FUnlockMode then
ActiveControl := UserNameEdit ActiveControl := UserNameEdit
else else
ActiveControl := PasswordEdit; ActiveControl := PasswordEdit;
if Assigned(FOnFormShow) then FOnFormShow(Self); 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; end;
initialization initialization

View File

@ -20,7 +20,7 @@ translate to Lazarus by alexs in 2005 - 2009
"/> "/>
<License Value="free ware <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"> <Files Count="51">
<Item1> <Item1>
<Filename Value="rxlookup.pas"/> <Filename Value="rxlookup.pas"/>
@ -226,7 +226,7 @@ translate to Lazarus by alexs in 2005 - 2009
</Item50> </Item50>
<Item51> <Item51>
<Filename Value="rxdbctrls.pas"/> <Filename Value="rxdbctrls.pas"/>
<UnitName Value="rxdbctrls"/> <UnitName Value="RxDBCtrls"/>
</Item51> </Item51>
</Files> </Files>
<Type Value="RunAndDesignTime"/> <Type Value="RunAndDesignTime"/>