diff --git a/components/rx/Demos/FolderLister/AboutUnit.lfm b/components/rx/Demos/FolderLister/AboutUnit.lfm index 66fbd60bd..8eab276ff 100644 --- a/components/rx/Demos/FolderLister/AboutUnit.lfm +++ b/components/rx/Demos/FolderLister/AboutUnit.lfm @@ -1,60 +1,55 @@ object AboutForm: TAboutForm - BorderStyle = bsDialog - Caption = 'About...' - ClientHeight = 143 - ClientWidth = 249 - PixelsPerInch = 96 - Position = poDesktopCenter - HorzScrollBar.Page = 248 - VertScrollBar.Page = 142 Left = 393 - Height = 143 + Height = 163 Top = 386 - Width = 249 + Width = 274 + ActiveControl = BitBtn1 + Caption = 'About...' + ClientHeight = 163 + ClientWidth = 274 + Position = poDesktopCenter + LCLVersion = '0.9.27' object Label1: TLabel + Left = 8 + Height = 18 + Top = 16 + Width = 262 Alignment = taCenter Anchors = [akTop, akLeft, akRight] - BorderSpacing.OnChange = nil Caption = 'FolderLister component demo' - Color = clNone - Left = 8 - Height = 17 - Top = 16 - Width = 237 + ParentColor = False end object Label2: TLabel + Left = 8 + Height = 18 + Top = 56 + Width = 261 Alignment = taCenter Anchors = [akTop, akLeft, akRight] - BorderSpacing.OnChange = nil - Caption = '(c) 2005 by Alexs' - Color = clNone - Left = 8 - Height = 13 - Top = 56 - Width = 236 + Caption = '(c) 2005-2009 by Alexs' + ParentColor = False end object Label3: TLabel + Left = 8 + Height = 18 + Top = 84 + Width = 262 Alignment = taCenter Anchors = [akTop, akLeft, akRight] - BorderSpacing.OnChange = nil Caption = 'alexs75@hotbox.ru' - Color = clNone - Left = 8 - Height = 17 - Top = 84 - Width = 237 + ParentColor = False end object BitBtn1: TBitBtn + Left = 96 + Height = 34 + Top = 123 + Width = 56 Anchors = [akLeft, akBottom] - BorderSpacing.OnChange = nil - Caption = '&' + AutoSize = True + Caption = '&' Default = True Kind = bkOK ModalResult = 1 TabOrder = 0 - Left = 96 - Height = 25 - Top = 112 - Width = 75 end end diff --git a/components/rx/Demos/FolderLister/AboutUnit.lrs b/components/rx/Demos/FolderLister/AboutUnit.lrs index 3016be30b..86a30477b 100644 --- a/components/rx/Demos/FolderLister/AboutUnit.lrs +++ b/components/rx/Demos/FolderLister/AboutUnit.lrs @@ -1,21 +1,19 @@ { - , lazarus } LazarusResources.Add('TAboutForm','FORMDATA',[ - 'TPF0'#10'TAboutForm'#9'AboutForm'#11'BorderStyle'#7#8'bsDialog'#7'Caption'#6 - +#8'About...'#12'ClientHeight'#3#143#0#11'ClientWidth'#3#249#0#13'PixelsPerIn' - +'ch'#2'`'#8'Position'#7#15'poDesktopCenter'#18'HorzScrollBar.Page'#3#248#0#18 - +'VertScrollBar.Page'#3#142#0#4'Left'#3#137#1#6'Height'#3#143#0#3'Top'#3#130#1 - +#5'Width'#3#249#0#0#6'TLabel'#6'Label1'#9'Alignment'#7#8'taCenter'#7'Anchors' - +#11#5'akTop'#6'akLeft'#7'akRight'#0#22'BorderSpacing.OnChange'#13#7'Caption' - +#6#27'FolderLister component demo'#5'Color'#7#6'clNone'#4'Left'#2#8#6'Height' - +#2#17#3'Top'#2#16#5'Width'#3#237#0#0#0#6'TLabel'#6'Label2'#9'Alignment'#7#8 - +'taCenter'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#22'BorderSpacing.On' - +'Change'#13#7'Caption'#6#17'(c) 2005 by Alexs'#5'Color'#7#6'clNone'#4'Left'#2 - +#8#6'Height'#2#13#3'Top'#2'8'#5'Width'#3#236#0#0#0#6'TLabel'#6'Label3'#9'Ali' - +'gnment'#7#8'taCenter'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#22'Bord' - +'erSpacing.OnChange'#13#7'Caption'#6#17'alexs75@hotbox.ru'#5'Color'#7#6'clNo' - +'ne'#4'Left'#2#8#6'Height'#2#17#3'Top'#2'T'#5'Width'#3#237#0#0#0#7'TBitBtn'#7 - +'BitBtn1'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#22'BorderSpacing.OnChange'#13 - +#7'Caption'#6#3'&'#206#202#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1 - +#8'TabOrder'#2#0#4'Left'#2'`'#6'Height'#2#25#3'Top'#2'p'#5'Width'#2'K'#0#0#0 + 'TPF0'#10'TAboutForm'#9'AboutForm'#4'Left'#3#137#1#6'Height'#3#163#0#3'Top'#3 + +#130#1#5'Width'#3#18#1#13'ActiveControl'#7#7'BitBtn1'#7'Caption'#6#8'About..' + +'.'#12'ClientHeight'#3#163#0#11'ClientWidth'#3#18#1#8'Position'#7#15'poDeskt' + +'opCenter'#10'LCLVersion'#6#6'0.9.27'#0#6'TLabel'#6'Label1'#4'Left'#2#8#6'He' + +'ight'#2#18#3'Top'#2#16#5'Width'#3#6#1#9'Alignment'#7#8'taCenter'#7'Anchors' + +#11#5'akTop'#6'akLeft'#7'akRight'#0#7'Caption'#6#27'FolderLister component d' + +'emo'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#8#6'Height'#2#18#3 + +'Top'#2'8'#5'Width'#3#5#1#9'Alignment'#7#8'taCenter'#7'Anchors'#11#5'akTop'#6 + +'akLeft'#7'akRight'#0#7'Caption'#6#22'(c) 2005-2009 by Alexs'#11'ParentColor' + +#8#0#0#6'TLabel'#6'Label3'#4'Left'#2#8#6'Height'#2#18#3'Top'#2'T'#5'Width'#3 + +#6#1#9'Alignment'#7#8'taCenter'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0 + +#7'Caption'#6#17'alexs75@hotbox.ru'#11'ParentColor'#8#0#0#7'TBitBtn'#7'BitBt' + +'n1'#4'Left'#2'`'#6'Height'#2'"'#3'Top'#2'{'#5'Width'#2'8'#7'Anchors'#11#6'a' + +'kLeft'#8'akBottom'#0#8'AutoSize'#9#7'Caption'#6#5'&'#208#158#208#154#7'Defa' + +'ult'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#8'TabOrder'#2#0#0#0#0 ]); diff --git a/components/rx/Demos/FolderLister/FolderLister.lpi b/components/rx/Demos/FolderLister/FolderLister.lpi index 4fe88eb2d..47e2b88ab 100644 --- a/components/rx/Demos/FolderLister/FolderLister.lpi +++ b/components/rx/Demos/FolderLister/FolderLister.lpi @@ -2,197 +2,16 @@ - + + + + - - + <ActiveEditorIndexAtStart Value="0"/> </General> - <JumpHistory Count="16" HistoryIndex="15"> - <Position1> - <Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/> - <Caret Line="86" Column="29" TopLine="79"/> - </Position1> - <Position2> - <Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/> - <Caret Line="18" Column="5" TopLine="15"/> - </Position2> - <Position3> - <Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/> - <Caret Line="108" Column="4" TopLine="104"/> - </Position3> - <Position4> - <Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/> - <Caret Line="71" Column="27" TopLine="58"/> - </Position4> - <Position5> - <Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/> - <Caret Line="78" Column="16" TopLine="65"/> - </Position5> - <Position6> - <Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/> - <Caret Line="80" Column="20" TopLine="67"/> - </Position6> - <Position7> - <Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/> - <Caret Line="95" Column="16" TopLine="82"/> - </Position7> - <Position8> - <Filename Value="unit1.pas"/> - <Caret Line="36" Column="5" TopLine="32"/> - </Position8> - <Position9> - <Filename Value="unit1.pas"/> - <Caret Line="67" Column="33" TopLine="51"/> - </Position9> - <Position10> - <Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/> - <Caret Line="22" Column="32" TopLine="21"/> - </Position10> - <Position11> - <Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/> - <Caret Line="137" Column="26" TopLine="135"/> - </Position11> - <Position12> - <Filename Value="unit1.pas"/> - <Caret Line="19" Column="5" TopLine="19"/> - </Position12> - <Position13> - <Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/> - <Caret Line="23" Column="1" TopLine="1"/> - </Position13> - <Position14> - <Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/> - <Caret Line="118" Column="5" TopLine="82"/> - </Position14> - <Position15> - <Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/> - <Caret Line="1" Column="7" TopLine="1"/> - </Position15> - <Position16> - <Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/> - <Caret Line="5" Column="1" TopLine="1"/> - </Position16> - </JumpHistory> - <Units Count="15"> - <Unit0> - <CursorPos X="24" Y="2"/> - <Filename Value="FolderLister.lpr"/> - <IsPartOfProject Value="True"/> - <TopLine Value="1"/> - <UnitName Value="FolderLister"/> - <UsageCount Value="23"/> - </Unit0> - <Unit1> - <CursorPos X="12" Y="23"/> - <EditorIndex Value="0"/> - <Filename Value="unit1.pas"/> - <ComponentName Value="MainForm"/> - <IsPartOfProject Value="True"/> - <Loaded Value="True"/> - <ResourceFilename Value="unit1.lrs"/> - <TopLine Value="23"/> - <UnitName Value="Unit1"/> - <UsageCount Value="23"/> - </Unit1> - <Unit2> - <CursorPos X="1" Y="88"/> - <EditorIndex Value="1"/> - <Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/> - <Loaded Value="True"/> - <TopLine Value="70"/> - <UnitName Value="FolderLister"/> - <UsageCount Value="11"/> - </Unit2> - <Unit3> - <CursorPos X="64" Y="123"/> - <Filename Value="c:\lazarus\fpcsrc\rtl\objpas\sysutils\filutilh.inc"/> - <TopLine Value="110"/> - <UsageCount Value="10"/> - </Unit3> - <Unit4> - <CursorPos X="52" Y="331"/> - <Filename Value="C:\lazarus\fpcsrc\rtl\win32\system.pp"/> - <TopLine Value="314"/> - <UnitName Value="System"/> - <UsageCount Value="10"/> - </Unit4> - <Unit5> - <CursorPos X="6" Y="1"/> - <Filename Value="C:\lazarus\components\RxNew\RxAppUtils.pas"/> - <TopLine Value="1"/> - <UnitName Value="RxAppUtils"/> - <UsageCount Value="10"/> - </Unit5> - <Unit6> - <CursorPos X="28" Y="12"/> - <Filename Value="AboutUnit.pas"/> - <ComponentName Value="AboutForm"/> - <IsPartOfProject Value="True"/> - <ResourceFilename Value="AboutUnit.lrs"/> - <TopLine Value="10"/> - <UnitName Value="AboutUnit"/> - <UsageCount Value="22"/> - </Unit6> - <Unit7> - <CursorPos X="43" Y="1700"/> - <Filename Value="C:\lazarus\lcl\include\customform.inc"/> - <TopLine Value="1695"/> - <UsageCount Value="10"/> - </Unit7> - <Unit8> - <CursorPos X="49" Y="2"/> - <Filename Value="unit1.lrs"/> - <TopLine Value="1"/> - <UsageCount Value="10"/> - </Unit8> - <Unit9> - <CursorPos X="37" Y="1169"/> - <Filename Value="C:\lazarus\lcl\Forms.pp"/> - <TopLine Value="1166"/> - <UnitName Value="Forms"/> - <UsageCount Value="10"/> - </Unit9> - <Unit10> - <CursorPos X="50" Y="146"/> - <Filename Value="C:\lazarus\lcl\include\application.inc"/> - <TopLine Value="142"/> - <UsageCount Value="10"/> - </Unit10> - <Unit11> - <CursorPos X="38" Y="48"/> - <Filename Value="C:\lazarus\lcl\Dialogs.pp"/> - <TopLine Value="37"/> - <UnitName Value="Dialogs"/> - <UsageCount Value="10"/> - </Unit11> - <Unit12> - <CursorPos X="2" Y="1182"/> - <Filename Value="C:\lazarus\lcl\Controls.pp"/> - <TopLine Value="1176"/> - <UnitName Value="Controls"/> - <UsageCount Value="10"/> - </Unit12> - <Unit13> - <CursorPos X="1" Y="1"/> - <EditorIndex Value="2"/> - <Filename Value="C:\lazarus\components\RxNew\RX.INC"/> - <Loaded Value="True"/> - <TopLine Value="1"/> - <UsageCount Value="10"/> - </Unit13> - <Unit14> - <CursorPos X="1" Y="15"/> - <EditorIndex Value="3"/> - <Filename Value="C:\lazarus\components\RxNew\RXStrutils.pas"/> - <Loaded Value="True"/> - <TopLine Value="1"/> - <UnitName Value="RxStrUtils"/> - <UsageCount Value="10"/> - </Unit14> - </Units> <PublishOptions> <Version Value="2"/> <IgnoreBinaries Value="False"/> @@ -202,7 +21,7 @@ <RunParams> <local> <FormatVersion Value="1"/> - <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/> + <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/> </local> </RunParams> <RequiredPackages Count="2"> @@ -214,16 +33,158 @@ <PackageName Value="LCL"/> </Item2> </RequiredPackages> + <Units Count="15"> + <Unit0> + <Filename Value="FolderLister.lpr"/> + <IsPartOfProject Value="True"/> + <UnitName Value="FolderLister"/> + <CursorPos X="24" Y="2"/> + <TopLine Value="1"/> + <UsageCount Value="23"/> + </Unit0> + <Unit1> + <Filename Value="unit1.pas"/> + <ComponentName Value="MainForm"/> + <IsPartOfProject Value="True"/> + <ResourceBaseClass Value="Form"/> + <UnitName Value="Unit1"/> + <CursorPos X="54" Y="78"/> + <TopLine Value="59"/> + <EditorIndex Value="0"/> + <UsageCount Value="23"/> + <Loaded Value="True"/> + </Unit1> + <Unit2> + <Filename Value="C:\lazarus\components\RxNew\FolderLister.pas"/> + <UnitName Value="FolderLister"/> + <CursorPos X="1" Y="88"/> + <TopLine Value="70"/> + <UsageCount Value="11"/> + </Unit2> + <Unit3> + <Filename Value="c:\lazarus\fpcsrc\rtl\objpas\sysutils\filutilh.inc"/> + <CursorPos X="64" Y="123"/> + <TopLine Value="110"/> + <UsageCount Value="10"/> + </Unit3> + <Unit4> + <Filename Value="C:\lazarus\fpcsrc\rtl\win32\system.pp"/> + <UnitName Value="System"/> + <CursorPos X="52" Y="331"/> + <TopLine Value="314"/> + <UsageCount Value="10"/> + </Unit4> + <Unit5> + <Filename Value="C:\lazarus\components\RxNew\RxAppUtils.pas"/> + <UnitName Value="RxAppUtils"/> + <CursorPos X="6" Y="1"/> + <TopLine Value="1"/> + <UsageCount Value="10"/> + </Unit5> + <Unit6> + <Filename Value="AboutUnit.pas"/> + <ComponentName Value="AboutForm"/> + <IsPartOfProject Value="True"/> + <ResourceBaseClass Value="Form"/> + <UnitName Value="AboutUnit"/> + <CursorPos X="3" Y="15"/> + <TopLine Value="1"/> + <UsageCount Value="22"/> + </Unit6> + <Unit7> + <Filename Value="C:\lazarus\lcl\include\customform.inc"/> + <CursorPos X="43" Y="1700"/> + <TopLine Value="1695"/> + <UsageCount Value="10"/> + </Unit7> + <Unit8> + <Filename Value="unit1.lrs"/> + <CursorPos X="49" Y="2"/> + <TopLine Value="1"/> + <UsageCount Value="10"/> + </Unit8> + <Unit9> + <Filename Value="C:\lazarus\lcl\Forms.pp"/> + <UnitName Value="Forms"/> + <CursorPos X="37" Y="1169"/> + <TopLine Value="1166"/> + <UsageCount Value="10"/> + </Unit9> + <Unit10> + <Filename Value="C:\lazarus\lcl\include\application.inc"/> + <CursorPos X="50" Y="146"/> + <TopLine Value="142"/> + <UsageCount Value="10"/> + </Unit10> + <Unit11> + <Filename Value="C:\lazarus\lcl\Dialogs.pp"/> + <UnitName Value="Dialogs"/> + <CursorPos X="38" Y="48"/> + <TopLine Value="37"/> + <UsageCount Value="10"/> + </Unit11> + <Unit12> + <Filename Value="C:\lazarus\lcl\Controls.pp"/> + <UnitName Value="Controls"/> + <CursorPos X="2" Y="1182"/> + <TopLine Value="1176"/> + <UsageCount Value="10"/> + </Unit12> + <Unit13> + <Filename Value="C:\lazarus\components\RxNew\RX.INC"/> + <CursorPos X="1" Y="1"/> + <TopLine Value="1"/> + <UsageCount Value="10"/> + </Unit13> + <Unit14> + <Filename Value="C:\lazarus\components\RxNew\RXStrutils.pas"/> + <UnitName Value="RxStrUtils"/> + <CursorPos X="1" Y="15"/> + <TopLine Value="1"/> + <UsageCount Value="10"/> + </Unit14> + </Units> + <JumpHistory Count="8" HistoryIndex="7"> + <Position1> + <Filename Value="unit1.pas"/> + <Caret Line="36" Column="5" TopLine="32"/> + </Position1> + <Position2> + <Filename Value="unit1.pas"/> + <Caret Line="67" Column="33" TopLine="51"/> + </Position2> + <Position3> + <Filename Value="unit1.pas"/> + <Caret Line="19" Column="5" TopLine="19"/> + </Position3> + <Position4> + <Filename Value="unit1.pas"/> + <Caret Line="23" Column="12" TopLine="23"/> + </Position4> + <Position5> + <Filename Value="unit1.pas"/> + <Caret Line="53" Column="20" TopLine="47"/> + </Position5> + <Position6> + <Filename Value="unit1.pas"/> + <Caret Line="36" Column="47" TopLine="36"/> + </Position6> + <Position7> + <Filename Value="unit1.pas"/> + <Caret Line="64" Column="8" TopLine="53"/> + </Position7> + <Position8> + <Filename Value="unit1.pas"/> + <Caret Line="35" Column="43" TopLine="35"/> + </Position8> + </JumpHistory> </ProjectOptions> <CompilerOptions> - <Version Value="4"/> + <Version Value="8"/> <PathDelim Value="\"/> <SearchPaths> <SrcPath Value="$(LazarusDir)\lcl\;$(LazarusDir)\lcl\interfaces\$(LCLWidgetType)\"/> </SearchPaths> - <CodeGeneration> - <Generate Value="Faster"/> - </CodeGeneration> <Other> <CompilerPath Value="$(CompPath)"/> </Other> diff --git a/components/rx/Demos/FolderLister/unit1.lfm b/components/rx/Demos/FolderLister/unit1.lfm index 31e305ec5..56f2a45f5 100644 --- a/components/rx/Demos/FolderLister/unit1.lfm +++ b/components/rx/Demos/FolderLister/unit1.lfm @@ -1,92 +1,109 @@ object MainForm: TMainForm - Caption = 'Main form' - ClientHeight = 281 - ClientWidth = 391 - Menu = MainMenu1 - PixelsPerInch = 96 - ShowHint = True - HorzScrollBar.Page = 390 - VertScrollBar.Page = 280 - Left = 251 + Left = 427 Height = 300 - Top = 138 - Width = 391 + Top = 245 + Width = 460 + ActiveControl = Edit1 + Caption = 'Main form' + ClientHeight = 275 + ClientWidth = 460 + Menu = MainMenu1 + OnCreate = FormCreate + Position = poDesktopCenter + ShowHint = True + LCLVersion = '0.9.27' object Label1: TLabel - AutoSize = True - BorderSpacing.OnChange = nil + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = Edit1 + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 18 + Top = 63 + Width = 95 + BorderSpacing.Around = 6 Caption = 'Folder for scan' - Color = clNone - Left = 8 - Height = 13 - Top = 56 - Width = 72 + ParentColor = False end object Label2: TLabel - AutoSize = True - BorderSpacing.OnChange = nil + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = Owner + Left = 6 + Height = 18 + Top = 6 + Width = 71 + BorderSpacing.Around = 6 Caption = 'Default ext' - Color = clNone - Left = 8 - Height = 13 - Top = 8 - Width = 54 + ParentColor = False end object Button1: TButton + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = DirectoryEdit1 + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 29 + Top = 120 + Width = 44 Action = sysScan - BorderSpacing.OnChange = nil + AutoSize = True + BorderSpacing.Around = 6 TabOrder = 0 - Left = 8 - Height = 25 - Hint = 'Scan folder' - Top = 112 - Width = 75 end object DirectoryEdit1: TDirectoryEdit + AnchorSideLeft.Control = Label1 + AnchorSideTop.Control = Label1 + AnchorSideTop.Side = asrBottom + Left = 12 + Height = 27 + Top = 87 + Width = 417 Directory = 'C:\lazarus\components\' + ShowHidden = False ButtonWidth = 23 NumGlyphs = 1 Anchors = [akTop, akLeft, akRight] - BorderSpacing.OnChange = nil + AutoSize = True + BorderSpacing.Left = 6 + BorderSpacing.Top = 6 TabOrder = 1 - Anchors = [akTop, akLeft, akRight] - BorderSpacing.OnChange = nil - TabOrder = 1 - Text = 'C:\lazarus\components\' - Left = 16 - Height = 23 - Top = 80 - Width = 344 end object Edit1: TEdit - BorderSpacing.OnChange = nil + AnchorSideLeft.Control = Label2 + AnchorSideTop.Control = Label2 + AnchorSideTop.Side = asrBottom + Left = 12 + Height = 27 + Top = 30 + Width = 80 + AutoSize = True + BorderSpacing.Around = 6 TabOrder = 2 Text = '.pas' - Left = 16 - Height = 23 - Top = 24 - Width = 80 end object ActionList1: TActionList left = 144 top = 112 object sysExit: TAction + Category = 'System' Caption = 'Exit' + DisableIfNoHandler = True Enabled = False Hint = 'Exit form demo app' + OnExecute = sysExitExecute ShortCut = 32856 - Category = 'System' end object hlpAbout: TAction + Category = 'Help' Caption = 'About' + DisableIfNoHandler = True Hint = 'Information of app' OnExecute = hlpAboutExecute - Category = 'Help' end object sysScan: TAction + Category = 'System' Caption = 'Scan' + DisableIfNoHandler = True Hint = 'Scan folder' OnExecute = sysRescanExecute - Category = 'System' end end object MainMenu1: TMainMenu @@ -109,7 +126,7 @@ object MainForm: TMainForm Caption = 'Folder' end object HelpItems: TMenuItem - Caption = '' + Caption = 'Help' object MenuItem1: TMenuItem Action = hlpAbout OnClick = hlpAboutExecute diff --git a/components/rx/Demos/FolderLister/unit1.lrs b/components/rx/Demos/FolderLister/unit1.lrs index 6bb72139b..741159b3e 100644 --- a/components/rx/Demos/FolderLister/unit1.lrs +++ b/components/rx/Demos/FolderLister/unit1.lrs @@ -1,38 +1,45 @@ { - , lazarus } LazarusResources.Add('TMainForm','FORMDATA',[ - 'TPF0'#9'TMainForm'#8'MainForm'#7'Caption'#6#9'Main form'#12'ClientHeight'#3 - +#25#1#11'ClientWidth'#3#135#1#4'Menu'#7#9'MainMenu1'#13'PixelsPerInch'#2'`'#8 - +'ShowHint'#9#18'HorzScrollBar.Page'#3#134#1#18'VertScrollBar.Page'#3#24#1#4 - +'Left'#3#251#0#6'Height'#3','#1#3'Top'#3#138#0#5'Width'#3#135#1#0#6'TLabel'#6 - +'Label1'#8'AutoSize'#9#22'BorderSpacing.OnChange'#13#7'Caption'#6#15'Folder ' - +'for scan'#5'Color'#7#6'clNone'#4'Left'#2#8#6'Height'#2#13#3'Top'#2'8'#5'Wid' - +'th'#2'H'#0#0#6'TLabel'#6'Label2'#8'AutoSize'#9#22'BorderSpacing.OnChange'#13 - +#7'Caption'#6#11'Default ext'#5'Color'#7#6'clNone'#4'Left'#2#8#6'Height'#2#13 - +#3'Top'#2#8#5'Width'#2'6'#0#0#7'TButton'#7'Button1'#6'Action'#7#7'sysScan'#22 - +'BorderSpacing.OnChange'#13#8'TabOrder'#2#0#4'Left'#2#8#6'Height'#2#25#4'Hin' - +'t'#6#11'Scan folder'#3'Top'#2'p'#5'Width'#2'K'#0#0#14'TDirectoryEdit'#14'Di' - +'rectoryEdit1'#9'Directory'#6#22'C:\lazarus\components\'#11'ButtonWidth'#2#23 - +#9'NumGlyphs'#2#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#22'BorderSpa' - +'cing.OnChange'#13#8'TabOrder'#2#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRigh' - +'t'#0#22'BorderSpacing.OnChange'#13#8'TabOrder'#2#1#4'Text'#6#22'C:\lazarus\' - +'components\'#4'Left'#2#16#6'Height'#2#23#3'Top'#2'P'#5'Width'#3'X'#1#0#0#5 - +'TEdit'#5'Edit1'#22'BorderSpacing.OnChange'#13#8'TabOrder'#2#2#4'Text'#6#4'.' - +'pas'#4'Left'#2#16#6'Height'#2#23#3'Top'#2#24#5'Width'#2'P'#0#0#11'TActionLi' - +'st'#11'ActionList1'#4'left'#3#144#0#3'top'#2'p'#0#7'TAction'#7'sysExit'#7'C' - +'aption'#6#4'Exit'#7'Enabled'#8#4'Hint'#6#18'Exit form demo app'#8'ShortCut' - +#4'X'#128#0#0#8'Category'#6#6'System'#0#0#7'TAction'#8'hlpAbout'#7'Caption'#6 - +#5'About'#4'Hint'#6#18'Information of app'#9'OnExecute'#7#15'hlpAboutExecute' - +#8'Category'#6#4'Help'#0#0#7'TAction'#7'sysScan'#7'Caption'#6#4'Scan'#4'Hint' - +#6#11'Scan folder'#9'OnExecute'#7#16'sysRescanExecute'#8'Category'#6#6'Syste' - +'m'#0#0#0#9'TMainMenu'#9'MainMenu1'#4'left'#3#144#0#3'top'#2'0'#0#9'TMenuIte' - +'m'#11'SystemItems'#7'Caption'#6#6'System'#0#9'TMenuItem'#9'MenuItem3'#6'Act' - +'ion'#7#7'sysScan'#7'OnClick'#7#16'sysRescanExecute'#0#0#9'TMenuItem'#9'Menu' - +'Item4'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem2'#6'Action'#7#7'sysExi' - +'t'#0#0#0#9'TMenuItem'#11'FolderItems'#7'Caption'#6#6'Folder'#0#0#9'TMenuIte' - +'m'#9'HelpItems'#7'Caption'#6#6#207#238#236#238#249#252#0#9'TMenuItem'#9'Men' - +'uItem1'#6'Action'#7#8'hlpAbout'#7'OnClick'#7#15'hlpAboutExecute'#0#0#0#0#13 - +'TFolderLister'#13'FolderLister1'#10'DefaultExt'#6#4'.pas'#13'OnExecuteItem' - +#7#24'FolderLister1ExecuteItem'#8'MenuItem'#7#11'FolderItems'#4'left'#3#144#0 - +#3'top'#2#12#0#0#0 + 'TPF0'#9'TMainForm'#8'MainForm'#4'Left'#3#171#1#6'Height'#3','#1#3'Top'#3#245 + +#0#5'Width'#3#204#1#13'ActiveControl'#7#5'Edit1'#7'Caption'#6#9'Main form'#12 + +'ClientHeight'#3#19#1#11'ClientWidth'#3#204#1#4'Menu'#7#9'MainMenu1'#8'OnCre' + +'ate'#7#10'FormCreate'#8'Position'#7#15'poDesktopCenter'#8'ShowHint'#9#10'LC' + +'LVersion'#6#6'0.9.27'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#5 + +'Owner'#21'AnchorSideTop.Control'#7#5'Edit1'#18'AnchorSideTop.Side'#7#9'asrB' + +'ottom'#4'Left'#2#6#6'Height'#2#18#3'Top'#2'?'#5'Width'#2'_'#20'BorderSpacin' + +'g.Around'#2#6#7'Caption'#6#15'Folder for scan'#11'ParentColor'#8#0#0#6'TLab' + +'el'#6'Label2'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Contro' + +'l'#7#5'Owner'#4'Left'#2#6#6'Height'#2#18#3'Top'#2#6#5'Width'#2'G'#20'Border' + +'Spacing.Around'#2#6#7'Caption'#6#11'Default ext'#11'ParentColor'#8#0#0#7'TB' + +'utton'#7'Button1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Co' + +'ntrol'#7#14'DirectoryEdit1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2 + +#6#6'Height'#2#29#3'Top'#2'x'#5'Width'#2','#6'Action'#7#7'sysScan'#8'AutoSiz' + +'e'#9#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#0#0#0#14'TDirectoryEdit'#14 + +'DirectoryEdit1'#22'AnchorSideLeft.Control'#7#6'Label1'#21'AnchorSideTop.Con' + +'trol'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#12#6'Heig' + +'ht'#2#27#3'Top'#2'W'#5'Width'#3#161#1#9'Directory'#6#22'C:\lazarus\componen' + +'ts\'#10'ShowHidden'#8#11'ButtonWidth'#2#23#9'NumGlyphs'#2#1#7'Anchors'#11#5 + +'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#18'BorderSpacing.Left'#2#6#17'B' + +'orderSpacing.Top'#2#6#8'TabOrder'#2#1#0#0#5'TEdit'#5'Edit1'#22'AnchorSideLe' + +'ft.Control'#7#6'Label2'#21'AnchorSideTop.Control'#7#6'Label2'#18'AnchorSide' + +'Top.Side'#7#9'asrBottom'#4'Left'#2#12#6'Height'#2#27#3'Top'#2#30#5'Width'#2 + +'P'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#2#4'Text'#6#4'.' + +'pas'#0#0#11'TActionList'#11'ActionList1'#4'left'#3#144#0#3'top'#2'p'#0#7'TA' + +'ction'#7'sysExit'#8'Category'#6#6'System'#7'Caption'#6#4'Exit'#18'DisableIf' + +'NoHandler'#9#7'Enabled'#8#4'Hint'#6#18'Exit form demo app'#9'OnExecute'#7#14 + +'sysExitExecute'#8'ShortCut'#4'X'#128#0#0#0#0#7'TAction'#8'hlpAbout'#8'Categ' + +'ory'#6#4'Help'#7'Caption'#6#5'About'#18'DisableIfNoHandler'#9#4'Hint'#6#18 + +'Information of app'#9'OnExecute'#7#15'hlpAboutExecute'#0#0#7'TAction'#7'sys' + +'Scan'#8'Category'#6#6'System'#7'Caption'#6#4'Scan'#18'DisableIfNoHandler'#9 + +#4'Hint'#6#11'Scan folder'#9'OnExecute'#7#16'sysRescanExecute'#0#0#0#9'TMain' + +'Menu'#9'MainMenu1'#4'left'#3#144#0#3'top'#2'0'#0#9'TMenuItem'#11'SystemItem' + +'s'#7'Caption'#6#6'System'#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7#7'sysScan' + +#7'OnClick'#7#16'sysRescanExecute'#0#0#9'TMenuItem'#9'MenuItem4'#7'Caption'#6 + +#1'-'#0#0#9'TMenuItem'#9'MenuItem2'#6'Action'#7#7'sysExit'#0#0#0#9'TMenuItem' + +#11'FolderItems'#7'Caption'#6#6'Folder'#0#0#9'TMenuItem'#9'HelpItems'#7'Capt' + +'ion'#6#4'Help'#0#9'TMenuItem'#9'MenuItem1'#6'Action'#7#8'hlpAbout'#7'OnClic' + +'k'#7#15'hlpAboutExecute'#0#0#0#0#13'TFolderLister'#13'FolderLister1'#10'Def' + +'aultExt'#6#4'.pas'#13'OnExecuteItem'#7#24'FolderLister1ExecuteItem'#8'MenuI' + +'tem'#7#11'FolderItems'#4'left'#3#144#0#3'top'#2#12#0#0#0 ]); diff --git a/components/rx/Demos/FolderLister/unit1.pas b/components/rx/Demos/FolderLister/unit1.pas index 2c1028cf4..9750e98ec 100644 --- a/components/rx/Demos/FolderLister/unit1.pas +++ b/components/rx/Demos/FolderLister/unit1.pas @@ -32,7 +32,9 @@ type HelpItems: TMenuItem; FolderItems: TMenuItem; procedure FolderLister1ExecuteItem(Sender: TObject); + procedure FormCreate(Sender: TObject); procedure hlpAboutExecute(Sender: TObject); + procedure sysExitExecute(Sender: TObject); procedure sysRescanExecute(Sender: TObject); private { private declarations } @@ -58,6 +60,11 @@ begin end; end; +procedure TMainForm.sysExitExecute(Sender: TObject); +begin + Close; +end; + procedure TMainForm.FolderLister1ExecuteItem(Sender: TObject); var S:string; @@ -66,6 +73,11 @@ begin MessageDlg('Result', S, mtInformation, [mbOK], 0); end; +procedure TMainForm.FormCreate(Sender: TObject); +begin + DirectoryEdit1.Directory:=ExtractFileDir(ParamStr(0)); +end; + procedure TMainForm.sysRescanExecute(Sender: TObject); begin FolderLister1.FileFolder:=DirectoryEdit1.Text; diff --git a/components/rx/Demos/PhoneBookDemo/PhoneBookDemo.lpi b/components/rx/Demos/PhoneBookDemo/PhoneBookDemo.lpi index 31be029ba..2990655d8 100644 --- a/components/rx/Demos/PhoneBookDemo/PhoneBookDemo.lpi +++ b/components/rx/Demos/PhoneBookDemo/PhoneBookDemo.lpi @@ -2,8 +2,11 @@ <CONFIG> <ProjectOptions> <PathDelim Value="\"/> - <Version Value="5"/> + <Version Value="7"/> <General> + <Flags> + <LRSInOutputDirectory Value="False"/> + </Flags> <MainUnit Value="0"/> <TargetFileExt Value=".exe"/> <ActiveEditorIndexAtStart Value="0"/> @@ -22,7 +25,7 @@ <RunParams> <local> <FormatVersion Value="1"/> - <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/> + <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/> </local> </RunParams> <RequiredPackages Count="4"> @@ -47,20 +50,18 @@ <Filename Value="PhoneBookDemo.lpr"/> <IsPartOfProject Value="True"/> <UnitName Value="PhoneBookDemo"/> - <CursorPos X="53" Y="11"/> + <CursorPos X="13" Y="11"/> <TopLine Value="1"/> - <EditorIndex Value="1"/> <UsageCount Value="20"/> - <Loaded Value="True"/> </Unit0> <Unit1> <Filename Value="pbmainunit.pas"/> <ComponentName Value="pbMainForm"/> <IsPartOfProject Value="True"/> - <ResourceFilename Value="pbmainunit.lrs"/> + <ResourceBaseClass Value="Form"/> <UnitName Value="pbMainUnit"/> <CursorPos X="12" Y="49"/> - <TopLine Value="17"/> + <TopLine Value="23"/> <EditorIndex Value="0"/> <UsageCount Value="20"/> <Loaded Value="True"/> @@ -130,11 +131,8 @@ </JumpHistory> </ProjectOptions> <CompilerOptions> - <Version Value="5"/> + <Version Value="8"/> <PathDelim Value="\"/> - <CodeGeneration> - <Generate Value="Faster"/> - </CodeGeneration> <Linking> <Options> <Win32> diff --git a/components/rx/Demos/PhoneBookDemo/PhoneBookDemo.lpr b/components/rx/Demos/PhoneBookDemo/PhoneBookDemo.lpr index ac13f083a..4e7f75514 100644 --- a/components/rx/Demos/PhoneBookDemo/PhoneBookDemo.lpr +++ b/components/rx/Demos/PhoneBookDemo/PhoneBookDemo.lpr @@ -7,8 +7,8 @@ uses cthreads, {$ENDIF}{$ENDIF} Interfaces, // this includes the LCL widgetset - Forms - { add your units here }, pbMainUnit, rxnew, DBFLaz; + Forms, + pbMainUnit; begin Application.Initialize; diff --git a/components/rx/Demos/RxDBGrid/RxDBGridDemo.lpi b/components/rx/Demos/RxDBGrid/RxDBGridDemo.lpi index c06542f1e..094d50a13 100644 --- a/components/rx/Demos/RxDBGrid/RxDBGridDemo.lpi +++ b/components/rx/Demos/RxDBGrid/RxDBGridDemo.lpi @@ -1,13 +1,14 @@ <?xml version="1.0"?> <CONFIG> <ProjectOptions> - <PathDelim Value="/"/> - <Version Value="6"/> + <Version Value="7"/> <General> + <Flags> + <LRSInOutputDirectory Value="False"/> + </Flags> <MainUnit Value="0"/> - <IconPath Value="./"/> <TargetFileExt Value=".exe"/> - <ActiveEditorIndexAtStart Value="3"/> + <ActiveEditorIndexAtStart Value="0"/> </General> <VersionInfo> <ProjectVersion Value=""/> @@ -39,7 +40,7 @@ <MinVersion Major="1" Release="18" Build="56" Valid="True"/> </Item3> </RequiredPackages> - <Units Count="14"> + <Units Count="10"> <Unit0> <Filename Value="RxDBGridDemo.lpr"/> <IsPartOfProject Value="True"/> @@ -52,10 +53,10 @@ <Filename Value="rxdbgridmainunit.pas"/> <ComponentName Value="RxDBGridMainForm"/> <IsPartOfProject Value="True"/> - <ResourceFilename Value="rxdbgridmainunit.lrs"/> + <ResourceBaseClass Value="Form"/> <UnitName Value="RxDBGridMainUnit"/> <CursorPos X="24" Y="53"/> - <TopLine Value="9"/> + <TopLine Value="127"/> <EditorIndex Value="0"/> <UsageCount Value="24"/> <Loaded Value="True"/> @@ -112,180 +113,31 @@ <UsageCount Value="11"/> </Unit8> <Unit9> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <UnitName Value="rxdbgrid"/> - <CursorPos X="3" Y="1466"/> - <TopLine Value="1436"/> - <EditorIndex Value="3"/> - <UsageCount Value="11"/> - <Loaded Value="True"/> - </Unit9> - <Unit10> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxmemds.pas"/> - <UnitName Value="rxmemds"/> - <CursorPos X="1" Y="1335"/> - <TopLine Value="1312"/> - <EditorIndex Value="2"/> - <UsageCount Value="11"/> - <Loaded Value="True"/> - </Unit10> - <Unit11> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxpopupunit.pas"/> + <Filename Value="../../rxpopupunit.pas"/> <UnitName Value="rxpopupunit"/> <CursorPos X="15" Y="249"/> <TopLine Value="246"/> <EditorIndex Value="1"/> <UsageCount Value="11"/> <Loaded Value="True"/> - </Unit11> - <Unit12> - <Filename Value="/usr/local/share/lazarus/lcl/grids.pas"/> - <UnitName Value="Grids"/> - <CursorPos X="15" Y="854"/> - <TopLine Value="831"/> - <UsageCount Value="10"/> - </Unit12> - <Unit13> - <Filename Value="/usr/local/share/lazarus/lcl/dbgrids.pas"/> - <UnitName Value="DBGrids"/> - <CursorPos X="14" Y="450"/> - <TopLine Value="427"/> - <EditorIndex Value="4"/> - <UsageCount Value="10"/> - <Loaded Value="True"/> - </Unit13> + </Unit9> </Units> - <JumpHistory Count="30" HistoryIndex="29"> + <JumpHistory Count="2" HistoryIndex="1"> <Position1> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="226" Column="22" TopLine="203"/> - </Position1> - <Position2> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="280" Column="32" TopLine="257"/> - </Position2> - <Position3> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="281" Column="32" TopLine="258"/> - </Position3> - <Position4> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1465" Column="1" TopLine="1434"/> - </Position4> - <Position5> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1708" Column="38" TopLine="1685"/> - </Position5> - <Position6> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1710" Column="20" TopLine="1687"/> - </Position6> - <Position7> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1711" Column="61" TopLine="1688"/> - </Position7> - <Position8> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1713" Column="25" TopLine="1690"/> - </Position8> - <Position9> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1716" Column="33" TopLine="1693"/> - </Position9> - <Position10> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1722" Column="38" TopLine="1699"/> - </Position10> - <Position11> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1724" Column="20" TopLine="1701"/> - </Position11> - <Position12> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1725" Column="20" TopLine="1702"/> - </Position12> - <Position13> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1909" Column="1" TopLine="1880"/> - </Position13> - <Position14> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1911" Column="35" TopLine="1888"/> - </Position14> - <Position15> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1912" Column="36" TopLine="1889"/> - </Position15> - <Position16> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1903" Column="32" TopLine="1893"/> - </Position16> - <Position17> <Filename Value="rxdbgridmainunit.pas"/> <Caret Line="52" Column="18" TopLine="9"/> - </Position17> - <Position18> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="2343" Column="35" TopLine="2336"/> - </Position18> - <Position19> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="2339" Column="37" TopLine="2336"/> - </Position19> - <Position20> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1" Column="1" TopLine="1"/> - </Position20> - <Position21> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="2338" Column="37" TopLine="2315"/> - </Position21> - <Position22> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1" Column="1" TopLine="1"/> - </Position22> - <Position23> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1942" Column="25" TopLine="1919"/> - </Position23> - <Position24> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1947" Column="25" TopLine="1924"/> - </Position24> - <Position25> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="2338" Column="37" TopLine="2315"/> - </Position25> - <Position26> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1" Column="1" TopLine="1"/> - </Position26> - <Position27> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1942" Column="25" TopLine="1919"/> - </Position27> - <Position28> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1947" Column="25" TopLine="1924"/> - </Position28> - <Position29> - <Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/> - <Caret Line="1468" Column="14" TopLine="1436"/> - </Position29> - <Position30> + </Position1> + <Position2> <Filename Value="rxdbgridmainunit.pas"/> <Caret Line="15" Column="4" TopLine="9"/> - </Position30> + </Position2> </JumpHistory> </ProjectOptions> <CompilerOptions> - <Version Value="5"/> + <Version Value="8"/> <SearchPaths> <SrcPath Value="$(LazarusDir)/lcl/;$(LazarusDir)/lcl/interfaces/$(LCLWidgetType)/"/> </SearchPaths> - <CodeGeneration> - <Generate Value="Faster"/> - </CodeGeneration> <Linking> <Options> <Win32> diff --git a/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lfm b/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lfm index 8818d4363..7b7a2e584 100644 --- a/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lfm +++ b/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lfm @@ -1,48 +1,57 @@ object RxDBGridMainForm: TRxDBGridMainForm - Left = 301 + Left = 299 Height = 582 Top = 161 Width = 969 - HorzScrollBar.Page = 968 - VertScrollBar.Page = 581 - ActiveControl = RxDBGrid1 + ActiveControl = Panel1 Caption = 'RxDBGrid Demo (ver 3) ...' ClientHeight = 582 ClientWidth = 969 OnCreate = FormCreate + LCLVersion = '0.9.27' object RxDBGrid1: TRxDBGrid - Height = 532 - Top = 50 + Left = 0 + Height = 533 + Top = 49 Width = 969 + TitleButtons = False + AutoSort = False Columns = < item Title.Alignment = taCenter Title.Caption = 'Code' + Title.Orientation = toHorizontal FieldName = 'ID' Footer.Alignment = taRightJustify Footer.DisplayFormat = 'Count: %d' Footer.ValueType = fvtCount + Filter.DropDownRows = 0 Filter.Color = clLime Filter.ItemIndex = -1 end item Title.Alignment = taCenter Title.Caption = 'Software Name' + Title.Orientation = toHorizontal Width = 350 FieldName = 'NAME' + Filter.DropDownRows = 0 Filter.Color = clLime Filter.ItemIndex = -1 end item Title.Alignment = taCenter + Title.Orientation = toHorizontal Width = 150 FieldName = 'Developer' + Filter.DropDownRows = 0 Filter.Color = clLime Filter.ItemIndex = -1 end item Title.Alignment = taCenter Title.Caption = 'Cost' + Title.Orientation = toHorizontal Width = 90 FieldName = 'PRICE' DisplayFormat = '#,##0.00' @@ -50,20 +59,25 @@ object RxDBGridMainForm: TRxDBGridMainForm Footer.DisplayFormat = '#,##0.00' Footer.FieldName = 'PRICE' Footer.ValueType = fvtSum + Filter.DropDownRows = 0 Filter.Color = clLime Filter.ItemIndex = -1 end item Title.Alignment = taCenter Title.Caption = 'Date Present' + Title.Orientation = toHorizontal Width = 100 FieldName = 'Date_Present' + Filter.DropDownRows = 0 Filter.ItemIndex = -1 end item Title.Alignment = taCenter + Title.Orientation = toHorizontal Width = 150 FieldName = 'DEVELOPER_ID' + Filter.DropDownRows = 0 Filter.ItemIndex = -1 end> OptionsRx = [rdgFooterRows] @@ -73,52 +87,67 @@ object RxDBGridMainForm: TRxDBGridMainForm Align = alClient FocusColor = clRed SelectedColor = clHighlight + GridLineStyle = psSolid DataSource = Datasource1 - FixedColor = clBtnFace Options = [dgEditing, dgTitles, dgIndicator, dgColumnResize, dgColumnMove, dgColLines, dgRowLines, dgTabs, dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit, dgMultiselect] - OptionsExtra = [dgeAutoColumns, dgeCheckboxColumn] ParentColor = False PopupMenu = PopupMenu1 TabOrder = 0 - TabStop = True end object Panel1: TPanel - Height = 50 + Left = 0 + Height = 49 + Top = 0 Width = 969 Align = alTop - ClientHeight = 50 + AutoSize = True + ClientHeight = 49 ClientWidth = 969 TabOrder = 1 object Button1: TButton - Left = 8 - Height = 25 - Top = 8 - Width = 75 + AnchorSideLeft.Control = Panel1 + AnchorSideTop.Control = Panel1 + Left = 6 + Height = 37 + Top = 6 + Width = 92 Action = actCalcTotal + AutoSize = True + BorderSpacing.Around = 6 BorderSpacing.InnerBorder = 4 TabOrder = 0 end object Button2: TButton - Left = 88 - Height = 25 - Top = 8 - Width = 136 + AnchorSideLeft.Control = Button1 + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = Panel1 + Left = 104 + Height = 37 + Top = 6 + Width = 165 Action = actOptimizeColumnsWidthAll + AutoSize = True + BorderSpacing.Around = 6 BorderSpacing.InnerBorder = 4 TabOrder = 1 end object CheckBox1: TCheckBox - Left = 241 - Height = 20 - Top = 8 - Width = 75 + AnchorSideLeft.Control = Button2 + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = Button1 + AnchorSideTop.Side = asrCenter + Left = 275 + Height = 22 + Top = 13 + Width = 81 + BorderSpacing.Left = 6 Caption = 'Use filter' OnChange = CheckBox1Change TabOrder = 2 - UseOnChange = True end end object RxMemoryData1: TRxMemoryData + AutoCalcFields = False FieldDefs = < item Name = 'ID' @@ -147,59 +176,87 @@ object RxDBGridMainForm: TRxDBGridMainForm item Name = 'Date_Present' DataType = ftDate + Precision = 0 + Size = 0 end item Name = 'DEVELOPER_ID' DataType = ftInteger + Precision = 0 + Size = 0 end> OnFilterRecordEx = RxMemoryData1FilterRecordEx left = 152 top = 264 object RxMemoryData1ID1: TLongintField - AlignMent = taRightJustify DisplayWidth = 10 + FieldKind = fkData FieldName = 'ID' + Index = 0 + LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] + ReadOnly = False + Required = False end object RxMemoryData1NAME1: TStringField DisplayWidth = 150 + FieldKind = fkData FieldName = 'NAME' Index = 1 + LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] + ReadOnly = False + Required = False Size = 150 end object RxMemoryData1PRICE1: TFloatField - AlignMent = taRightJustify DisplayWidth = 10 + FieldKind = fkData FieldName = 'PRICE' Index = 2 + LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] + ReadOnly = False + Required = False DisplayFormat = '#,##0.00' + MaxValue = 0 + MinValue = 0 Precision = 2 end object RxMemoryData1Developer1: TStringField DisplayWidth = 150 + FieldKind = fkData FieldName = 'Developer' Index = 3 + LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] + ReadOnly = False + Required = False Size = 150 end object RxMemoryData1Date_Present1: TDateField DisplayWidth = 10 + FieldKind = fkData FieldName = 'Date_Present' Index = 4 + LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] + ReadOnly = False + Required = False end object RxMemoryData1DEVELOPER_ID1: TLongintField - AlignMent = taRightJustify DisplayWidth = 10 + FieldKind = fkData FieldName = 'DEVELOPER_ID' Index = 5 + KeyFields = 'DEVELOPER_ID' + LookupCache = False LookupDataSet = RxMemoryData2 LookupKeyFields = 'DEVELOPER_ID' LookupResultField = 'DEVELOPER_NAME' - KeyFields = 'DEVELOPER_ID' ProviderFlags = [pfInUpdate, pfInWhere] + ReadOnly = False + Required = False end end object Datasource1: TDatasource @@ -251,29 +308,41 @@ object RxDBGridMainForm: TRxDBGridMainForm top = 264 end object RxMemoryData2: TRxMemoryData + AutoCalcFields = False FieldDefs = < item Name = 'DEVELOPER_ID' DataType = ftInteger + Precision = 0 + Size = 0 end item Name = 'DEVELOPER_NAME' DataType = ftString + Precision = 0 Size = 130 end> left = 240 top = 264 object RxMemoryData2DEVELOPER_ID1: TLongintField - AlignMent = taRightJustify DisplayWidth = 10 + FieldKind = fkData FieldName = 'DEVELOPER_ID' + Index = 0 + LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] + ReadOnly = False + Required = False end object RxMemoryData2DEVELOPER_NAME1: TStringField DisplayWidth = 130 + FieldKind = fkData FieldName = 'DEVELOPER_NAME' Index = 1 + LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] + ReadOnly = False + Required = False Size = 130 end end diff --git a/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lrs b/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lrs index 637971b76..ac4c7075e 100644 --- a/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lrs +++ b/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lrs @@ -1,90 +1,110 @@ { - , lazarus } LazarusResources.Add('TRxDBGridMainForm','FORMDATA',[ - 'TPF0'#17'TRxDBGridMainForm'#16'RxDBGridMainForm'#4'Left'#3'-'#1#6'Height'#3 - +'F'#2#3'Top'#3#161#0#5'Width'#3#201#3#18'HorzScrollBar.Page'#3#200#3#18'Vert' - +'ScrollBar.Page'#3'E'#2#13'ActiveControl'#7#9'RxDBGrid1'#7'Caption'#6#26'RxD' - +'BGrid Demo (ver 3) ...'#12'ClientHeight'#3'F'#2#11'ClientWidth'#3#201#3#8 - +'OnCreate'#7#10'FormCreate'#0#9'TRxDBGrid'#9'RxDBGrid1'#6'Height'#3#20#2#3'T' - +'op'#2'2'#5'Width'#3#201#3#7'Columns'#14#1#15'Title.Alignment'#7#8'taCenter' - +#13'Title.Caption'#6#4'Code'#9'FieldName'#6#2'ID'#16'Footer.Alignment'#7#14 - +'taRightJustify'#20'Footer.DisplayFormat'#6#9'Count: %d'#16'Footer.ValueType' - +#7#8'fvtCount'#12'Filter.Color'#7#6'clLime'#16'Filter.ItemIndex'#2#255#0#1#15 - +'Title.Alignment'#7#8'taCenter'#13'Title.Caption'#6#13'Software Name'#5'Widt' - +'h'#3'^'#1#9'FieldName'#6#4'NAME'#12'Filter.Color'#7#6'clLime'#16'Filter.Ite' - +'mIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCenter'#5'Width'#3#150#0#9'Fiel' - +'dName'#6#9'Developer'#12'Filter.Color'#7#6'clLime'#16'Filter.ItemIndex'#2 - +#255#0#1#15'Title.Alignment'#7#8'taCenter'#13'Title.Caption'#6#4'Cost'#5'Wid' - +'th'#2'Z'#9'FieldName'#6#5'PRICE'#13'DisplayFormat'#6#8'#,##0.00'#16'Footer.' - +'Alignment'#7#14'taRightJustify'#20'Footer.DisplayFormat'#6#8'#,##0.00'#16'F' - +'ooter.FieldName'#6#5'PRICE'#16'Footer.ValueType'#7#6'fvtSum'#12'Filter.Colo' - +'r'#7#6'clLime'#16'Filter.ItemIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCen' - +'ter'#13'Title.Caption'#6#12'Date Present'#5'Width'#2'd'#9'FieldName'#6#12'D' - +'ate_Present'#16'Filter.ItemIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCente' - +'r'#5'Width'#3#150#0#9'FieldName'#6#12'DEVELOPER_ID'#16'Filter.ItemIndex'#2 - +#255#0#0#9'OptionsRx'#11#13'rdgFooterRows'#0#11'FooterColor'#7#8'clYellow'#14 - +'FooterRowCount'#2#1#9'OnFiltred'#7#16'RxDBGrid1Filtred'#5'Align'#7#8'alClie' - +'nt'#10'FocusColor'#7#5'clRed'#13'SelectedColor'#7#11'clHighlight'#10'DataSo' - +'urce'#7#11'Datasource1'#10'FixedColor'#7#9'clBtnFace'#7'Options'#11#9'dgEdi' - +'ting'#8'dgTitles'#11'dgIndicator'#14'dgColumnResize'#12'dgColumnMove'#10'dg' - +'ColLines'#10'dgRowLines'#6'dgTabs'#21'dgAlwaysShowSelection'#15'dgConfirmDe' - +'lete'#14'dgCancelOnExit'#13'dgMultiselect'#0#12'OptionsExtra'#11#14'dgeAuto' - +'Columns'#17'dgeCheckboxColumn'#0#11'ParentColor'#8#9'PopupMenu'#7#10'PopupM' - +'enu1'#8'TabOrder'#2#0#7'TabStop'#9#0#0#6'TPanel'#6'Panel1'#6'Height'#2'2'#5 - +'Width'#3#201#3#5'Align'#7#5'alTop'#12'ClientHeight'#2'2'#11'ClientWidth'#3 - +#201#3#8'TabOrder'#2#1#0#7'TButton'#7'Button1'#4'Left'#2#8#6'Height'#2#25#3 - +'Top'#2#8#5'Width'#2'K'#6'Action'#7#12'actCalcTotal'#25'BorderSpacing.InnerB' - +'order'#2#4#8'TabOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#2'X'#6'Height' - +#2#25#3'Top'#2#8#5'Width'#3#136#0#6'Action'#7#26'actOptimizeColumnsWidthAll' - +#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#1#0#0#9'TCheckBox'#9'CheckB' - +'ox1'#4'Left'#3#241#0#6'Height'#2#20#3'Top'#2#8#5'Width'#2'K'#7'Caption'#6#10 - +'Use filter'#8'OnChange'#7#15'CheckBox1Change'#8'TabOrder'#2#2#11'UseOnChang' - +'e'#9#0#0#0#13'TRxMemoryData'#13'RxMemoryData1'#9'FieldDefs'#14#1#4'Name'#6#2 - +'ID'#8'DataType'#7#9'ftInteger'#9'Precision'#2#255#4'Size'#2#7#0#1#4'Name'#6 - +#4'NAME'#8'DataType'#7#8'ftString'#9'Precision'#2#255#4'Size'#3#150#0#0#1#4 - +'Name'#6#5'PRICE'#8'DataType'#7#7'ftFloat'#9'Precision'#2#2#4'Size'#2#12#0#1 - +#4'Name'#6#9'Developer'#8'DataType'#7#8'ftString'#9'Precision'#2#255#4'Size' - +#3#150#0#0#1#4'Name'#6#12'Date_Present'#8'DataType'#7#6'ftDate'#0#1#4'Name'#6 - +#12'DEVELOPER_ID'#8'DataType'#7#9'ftInteger'#0#0#16'OnFilterRecordEx'#7#27'R' - +'xMemoryData1FilterRecordEx'#4'left'#3#152#0#3'top'#3#8#1#0#13'TLongintField' - +#16'RxMemoryData1ID1'#9'AlignMent'#7#14'taRightJustify'#12'DisplayWidth'#2#10 - +#9'FieldName'#6#2'ID'#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#0#0 - +#12'TStringField'#18'RxMemoryData1NAME1'#12'DisplayWidth'#3#150#0#9'FieldNam' - +'e'#6#4'NAME'#5'Index'#2#1#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0 - +#4'Size'#3#150#0#0#0#11'TFloatField'#19'RxMemoryData1PRICE1'#9'AlignMent'#7 - +#14'taRightJustify'#12'DisplayWidth'#2#10#9'FieldName'#6#5'PRICE'#5'Index'#2 - +#2#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#13'DisplayFormat'#6#8 - +'#,##0.00'#9'Precision'#2#2#0#0#12'TStringField'#23'RxMemoryData1Developer1' - +#12'DisplayWidth'#3#150#0#9'FieldName'#6#9'Developer'#5'Index'#2#3#13'Provid' - +'erFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#4'Size'#3#150#0#0#0#10'TDateField' - +#26'RxMemoryData1Date_Present1'#12'DisplayWidth'#2#10#9'FieldName'#6#12'Date' - +'_Present'#5'Index'#2#4#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#0 - +#0#13'TLongintField'#26'RxMemoryData1DEVELOPER_ID1'#9'AlignMent'#7#14'taRigh' - +'tJustify'#12'DisplayWidth'#2#10#9'FieldName'#6#12'DEVELOPER_ID'#5'Index'#2#5 - +#13'LookupDataSet'#7#13'RxMemoryData2'#15'LookupKeyFields'#6#12'DEVELOPER_ID' - +#17'LookupResultField'#6#14'DEVELOPER_NAME'#9'KeyFields'#6#12'DEVELOPER_ID' - +#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#0#0#0#11'TDatasource'#11 - +'Datasource1'#7'DataSet'#7#13'RxMemoryData1'#4'left'#2'x'#3'top'#3#8#1#0#0#10 - ,'TPopupMenu'#10'PopupMenu1'#4'left'#3#152#0#3'top'#3#197#0#0#9'TMenuItem'#9 - +'MenuItem1'#6'Action'#7#20'actOptimizeWidthCol1'#7'OnClick'#7#27'actOptimize' - +'WidthCol1Execute'#0#0#9'TMenuItem'#9'MenuItem2'#7'Caption'#6#1'-'#0#0#9'TMe' - +'nuItem'#9'MenuItem4'#6'Action'#7#12'actCalcTotal'#7'OnClick'#7#19'actCalcTo' - +'talExecute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7#26'actOptimizeColumns' - +'WidthAll'#7'OnClick'#7'!actOptimizeColumnsWidthAllExecute'#0#0#0#11'TAction' - +'List'#11'ActionList1'#4'left'#3#206#0#3'top'#3#197#0#0#7'TAction'#12'actCal' - +'cTotal'#7'Caption'#6#13'Calc total...'#18'DisableIfNoHandler'#9#9'OnExecute' - +#7#19'actCalcTotalExecute'#0#0#7'TAction'#26'actOptimizeColumnsWidthAll'#7'C' - +'aption'#6#25'Optimize width for all...'#18'DisableIfNoHandler'#9#9'OnExecut' - +'e'#7'!actOptimizeColumnsWidthAllExecute'#0#0#7'TAction'#20'actOptimizeWidth' - +'Col1'#7'Caption'#6#17'Optimize width...'#18'DisableIfNoHandler'#9#9'OnExecu' - +'te'#7#27'actOptimizeWidthCol1Execute'#0#0#0#11'TDatasource'#11'Datasource2' - +#7'DataSet'#7#13'RxMemoryData2'#4'left'#3#207#0#3'top'#3#8#1#0#0#13'TRxMemor' - +'yData'#13'RxMemoryData2'#9'FieldDefs'#14#1#4'Name'#6#12'DEVELOPER_ID'#8'Dat' - +'aType'#7#9'ftInteger'#0#1#4'Name'#6#14'DEVELOPER_NAME'#8'DataType'#7#8'ftSt' - +'ring'#4'Size'#3#130#0#0#0#4'left'#3#240#0#3'top'#3#8#1#0#13'TLongintField' - +#26'RxMemoryData2DEVELOPER_ID1'#9'AlignMent'#7#14'taRightJustify'#12'Display' - +'Width'#2#10#9'FieldName'#6#12'DEVELOPER_ID'#13'ProviderFlags'#11#10'pfInUpd' - +'ate'#9'pfInWhere'#0#0#0#12'TStringField'#28'RxMemoryData2DEVELOPER_NAME1'#12 - +'DisplayWidth'#3#130#0#9'FieldName'#6#14'DEVELOPER_NAME'#5'Index'#2#1#13'Pro' - +'viderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#4'Size'#3#130#0#0#0#0#0 + 'TPF0'#17'TRxDBGridMainForm'#16'RxDBGridMainForm'#4'Left'#3'+'#1#6'Height'#3 + +'F'#2#3'Top'#3#161#0#5'Width'#3#201#3#13'ActiveControl'#7#6'Panel1'#7'Captio' + +'n'#6#26'RxDBGrid Demo (ver 3) ...'#12'ClientHeight'#3'F'#2#11'ClientWidth' + +#3#201#3#8'OnCreate'#7#10'FormCreate'#10'LCLVersion'#6#6'0.9.27'#0#9'TRxDBGr' + +'id'#9'RxDBGrid1'#4'Left'#2#0#6'Height'#3#21#2#3'Top'#2'1'#5'Width'#3#201#3 + +#12'TitleButtons'#8#8'AutoSort'#8#7'Columns'#14#1#15'Title.Alignment'#7#8'ta' + +'Center'#13'Title.Caption'#6#4'Code'#17'Title.Orientation'#7#12'toHorizontal' + +#9'FieldName'#6#2'ID'#16'Footer.Alignment'#7#14'taRightJustify'#20'Footer.Di' + +'splayFormat'#6#9'Count: %d'#16'Footer.ValueType'#7#8'fvtCount'#19'Filter.Dr' + +'opDownRows'#2#0#12'Filter.Color'#7#6'clLime'#16'Filter.ItemIndex'#2#255#0#1 + +#15'Title.Alignment'#7#8'taCenter'#13'Title.Caption'#6#13'Software Name'#17 + +'Title.Orientation'#7#12'toHorizontal'#5'Width'#3'^'#1#9'FieldName'#6#4'NAME' + +#19'Filter.DropDownRows'#2#0#12'Filter.Color'#7#6'clLime'#16'Filter.ItemInde' + +'x'#2#255#0#1#15'Title.Alignment'#7#8'taCenter'#17'Title.Orientation'#7#12't' + +'oHorizontal'#5'Width'#3#150#0#9'FieldName'#6#9'Developer'#19'Filter.DropDow' + +'nRows'#2#0#12'Filter.Color'#7#6'clLime'#16'Filter.ItemIndex'#2#255#0#1#15'T' + +'itle.Alignment'#7#8'taCenter'#13'Title.Caption'#6#4'Cost'#17'Title.Orientat' + +'ion'#7#12'toHorizontal'#5'Width'#2'Z'#9'FieldName'#6#5'PRICE'#13'DisplayFor' + +'mat'#6#8'#,##0.00'#16'Footer.Alignment'#7#14'taRightJustify'#20'Footer.Disp' + +'layFormat'#6#8'#,##0.00'#16'Footer.FieldName'#6#5'PRICE'#16'Footer.ValueTyp' + +'e'#7#6'fvtSum'#19'Filter.DropDownRows'#2#0#12'Filter.Color'#7#6'clLime'#16 + +'Filter.ItemIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCenter'#13'Title.Capt' + +'ion'#6#12'Date Present'#17'Title.Orientation'#7#12'toHorizontal'#5'Width'#2 + +'d'#9'FieldName'#6#12'Date_Present'#19'Filter.DropDownRows'#2#0#16'Filter.It' + +'emIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCenter'#17'Title.Orientation'#7 + +#12'toHorizontal'#5'Width'#3#150#0#9'FieldName'#6#12'DEVELOPER_ID'#19'Filter' + +'.DropDownRows'#2#0#16'Filter.ItemIndex'#2#255#0#0#9'OptionsRx'#11#13'rdgFoo' + +'terRows'#0#11'FooterColor'#7#8'clYellow'#14'FooterRowCount'#2#1#9'OnFiltred' + +#7#16'RxDBGrid1Filtred'#5'Align'#7#8'alClient'#10'FocusColor'#7#5'clRed'#13 + +'SelectedColor'#7#11'clHighlight'#13'GridLineStyle'#7#7'psSolid'#10'DataSour' + +'ce'#7#11'Datasource1'#7'Options'#11#9'dgEditing'#8'dgTitles'#11'dgIndicator' + +#14'dgColumnResize'#12'dgColumnMove'#10'dgColLines'#10'dgRowLines'#6'dgTabs' + +#21'dgAlwaysShowSelection'#15'dgConfirmDelete'#14'dgCancelOnExit'#13'dgMulti' + +'select'#0#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu1'#8'TabOrder'#2#0#0 + +#0#6'TPanel'#6'Panel1'#4'Left'#2#0#6'Height'#2'1'#3'Top'#2#0#5'Width'#3#201#3 + +#5'Align'#7#5'alTop'#8'AutoSize'#9#12'ClientHeight'#2'1'#11'ClientWidth'#3 + +#201#3#8'TabOrder'#2#1#0#7'TButton'#7'Button1'#22'AnchorSideLeft.Control'#7#6 + +'Panel1'#21'AnchorSideTop.Control'#7#6'Panel1'#4'Left'#2#6#6'Height'#2'%'#3 + +'Top'#2#6#5'Width'#2'\'#6'Action'#7#12'actCalcTotal'#8'AutoSize'#9#20'Border' + +'Spacing.Around'#2#6#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#0#0#0#7 + +'TButton'#7'Button2'#22'AnchorSideLeft.Control'#7#7'Button1'#19'AnchorSideLe' + +'ft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Panel1'#4'Left'#2'h'#6 + +'Height'#2'%'#3'Top'#2#6#5'Width'#3#165#0#6'Action'#7#26'actOptimizeColumnsW' + +'idthAll'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#25'BorderSpacing.InnerB' + +'order'#2#4#8'TabOrder'#2#1#0#0#9'TCheckBox'#9'CheckBox1'#22'AnchorSideLeft.' + +'Control'#7#7'Button2'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideT' + +'op.Control'#7#7'Button1'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#19 + +#1#6'Height'#2#22#3'Top'#2#13#5'Width'#2'Q'#18'BorderSpacing.Left'#2#6#7'Cap' + +'tion'#6#10'Use filter'#8'OnChange'#7#15'CheckBox1Change'#8'TabOrder'#2#2#0#0 + +#0#13'TRxMemoryData'#13'RxMemoryData1'#14'AutoCalcFields'#8#9'FieldDefs'#14#1 + +#4'Name'#6#2'ID'#8'DataType'#7#9'ftInteger'#9'Precision'#2#255#4'Size'#2#7#0 + +#1#4'Name'#6#4'NAME'#8'DataType'#7#8'ftString'#9'Precision'#2#255#4'Size'#3 + +#150#0#0#1#4'Name'#6#5'PRICE'#8'DataType'#7#7'ftFloat'#9'Precision'#2#2#4'Si' + +'ze'#2#12#0#1#4'Name'#6#9'Developer'#8'DataType'#7#8'ftString'#9'Precision'#2 + +#255#4'Size'#3#150#0#0#1#4'Name'#6#12'Date_Present'#8'DataType'#7#6'ftDate'#9 + +'Precision'#2#0#4'Size'#2#0#0#1#4'Name'#6#12'DEVELOPER_ID'#8'DataType'#7#9'f' + +'tInteger'#9'Precision'#2#0#4'Size'#2#0#0#0#16'OnFilterRecordEx'#7#27'RxMemo' + +'ryData1FilterRecordEx'#4'left'#3#152#0#3'top'#3#8#1#0#13'TLongintField'#16 + +'RxMemoryData1ID1'#12'DisplayWidth'#2#10#9'FieldKind'#7#6'fkData'#9'FieldNam' + +'e'#6#2'ID'#5'Index'#2#0#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpdat' + +'e'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#0#0#12'TStringField'#18'RxMem' + +'oryData1NAME1'#12'DisplayWidth'#3#150#0#9'FieldKind'#7#6'fkData'#9'FieldNam' + +'e'#6#4'NAME'#5'Index'#2#1#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpd' + +'ate'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#4'Size'#3#150#0#0#0#11'TFlo' + ,'atField'#19'RxMemoryData1PRICE1'#12'DisplayWidth'#2#10#9'FieldKind'#7#6'fkD' + +'ata'#9'FieldName'#6#5'PRICE'#5'Index'#2#2#11'LookupCache'#8#13'ProviderFlag' + +'s'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#13'DisplayF' + +'ormat'#6#8'#,##0.00'#8'MaxValue'#5#0#0#0#0#0#0#0#0#0#0#8'MinValue'#5#0#0#0#0 + +#0#0#0#0#0#0#9'Precision'#2#2#0#0#12'TStringField'#23'RxMemoryData1Developer' + +'1'#12'DisplayWidth'#3#150#0#9'FieldKind'#7#6'fkData'#9'FieldName'#6#9'Devel' + +'oper'#5'Index'#2#3#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpdate'#9 + +'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#4'Size'#3#150#0#0#0#10'TDateField' + +#26'RxMemoryData1Date_Present1'#12'DisplayWidth'#2#10#9'FieldKind'#7#6'fkDat' + +'a'#9'FieldName'#6#12'Date_Present'#5'Index'#2#4#11'LookupCache'#8#13'Provid' + +'erFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#0#0#13 + +'TLongintField'#26'RxMemoryData1DEVELOPER_ID1'#12'DisplayWidth'#2#10#9'Field' + +'Kind'#7#6'fkData'#9'FieldName'#6#12'DEVELOPER_ID'#5'Index'#2#5#9'KeyFields' + +#6#12'DEVELOPER_ID'#11'LookupCache'#8#13'LookupDataSet'#7#13'RxMemoryData2' + +#15'LookupKeyFields'#6#12'DEVELOPER_ID'#17'LookupResultField'#6#14'DEVELOPER' + +'_NAME'#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnly'#8#8'R' + +'equired'#8#0#0#0#11'TDatasource'#11'Datasource1'#7'DataSet'#7#13'RxMemoryDa' + +'ta1'#4'left'#2'x'#3'top'#3#8#1#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#3 + +#152#0#3'top'#3#197#0#0#9'TMenuItem'#9'MenuItem1'#6'Action'#7#20'actOptimize' + +'WidthCol1'#7'OnClick'#7#27'actOptimizeWidthCol1Execute'#0#0#9'TMenuItem'#9 + +'MenuItem2'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem4'#6'Action'#7#12'a' + +'ctCalcTotal'#7'OnClick'#7#19'actCalcTotalExecute'#0#0#9'TMenuItem'#9'MenuIt' + +'em3'#6'Action'#7#26'actOptimizeColumnsWidthAll'#7'OnClick'#7'!actOptimizeCo' + +'lumnsWidthAllExecute'#0#0#0#11'TActionList'#11'ActionList1'#4'left'#3#206#0 + +#3'top'#3#197#0#0#7'TAction'#12'actCalcTotal'#7'Caption'#6#13'Calc total...' + +#18'DisableIfNoHandler'#9#9'OnExecute'#7#19'actCalcTotalExecute'#0#0#7'TActi' + +'on'#26'actOptimizeColumnsWidthAll'#7'Caption'#6#25'Optimize width for all..' + +'.'#18'DisableIfNoHandler'#9#9'OnExecute'#7'!actOptimizeColumnsWidthAllExecu' + +'te'#0#0#7'TAction'#20'actOptimizeWidthCol1'#7'Caption'#6#17'Optimize width.' + +'..'#18'DisableIfNoHandler'#9#9'OnExecute'#7#27'actOptimizeWidthCol1Execute' + +#0#0#0#11'TDatasource'#11'Datasource2'#7'DataSet'#7#13'RxMemoryData2'#4'left' + +#3#207#0#3'top'#3#8#1#0#0#13'TRxMemoryData'#13'RxMemoryData2'#14'AutoCalcFie' + +'lds'#8#9'FieldDefs'#14#1#4'Name'#6#12'DEVELOPER_ID'#8'DataType'#7#9'ftInteg' + +'er'#9'Precision'#2#0#4'Size'#2#0#0#1#4'Name'#6#14'DEVELOPER_NAME'#8'DataTyp' + +'e'#7#8'ftString'#9'Precision'#2#0#4'Size'#3#130#0#0#0#4'left'#3#240#0#3'top' + +#3#8#1#0#13'TLongintField'#26'RxMemoryData2DEVELOPER_ID1'#12'DisplayWidth'#2 + +#10#9'FieldKind'#7#6'fkData'#9'FieldName'#6#12'DEVELOPER_ID'#5'Index'#2#0#11 + +'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnl' + +'y'#8#8'Required'#8#0#0#12'TStringField'#28'RxMemoryData2DEVELOPER_NAME1'#12 + +'DisplayWidth'#3#130#0#9'FieldKind'#7#6'fkData'#9'FieldName'#6#14'DEVELOPER_' + +'NAME'#5'Index'#2#1#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpdate'#9 + +'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#4'Size'#3#130#0#0#0#0#0 ]); diff --git a/components/rx/docs/WhatsNew.rus.txt b/components/rx/docs/WhatsNew.rus.txt index bbb7969b3..10aae376a 100644 --- a/components/rx/docs/WhatsNew.rus.txt +++ b/components/rx/docs/WhatsNew.rus.txt @@ -12,6 +12,7 @@ - исправлены глифы у TRxClock, TRxDateEdit, TAutoPanel (Edward Ivanov) - Исправления в TRxDatePicker (Edward Ivanov) + Добавлены компоненты TRxDBSpinEdit, TRxTimeEdit, TRxDBTimeEdit + + TRxLoginDialo теперь работает. По сравнению с оригинальным функционал сильно расширен. Изменён дизайн формы 22.05.2008 - версия 2.0.0.136 (svn revision 100) + У объекта TRxCustomDBLookupCombo введён контроль на CircularDataLink + У объекта TRxCustomDBLookupCombo ускорена отрисовка данных diff --git a/components/rx/images/TRxLoginDialog.png b/components/rx/images/TRxLoginDialog.png new file mode 100644 index 000000000..c4a5f24c7 Binary files /dev/null and b/components/rx/images/TRxLoginDialog.png differ diff --git a/components/rx/images/mk_res.bat b/components/rx/images/mk_res.bat index 63fff010b..49c11c1b9 100644 --- a/components/rx/images/mk_res.bat +++ b/components/rx/images/mk_res.bat @@ -1,2 +1,2 @@ del rx.lrs -D:\lazarus\tools\lazres.exe rx.lrs TDBDateEdit.xpm TRXLookUpEdit.xpm TRxDBCalcEdit.xpm TRxDBLookupCombo.xpm TRxDBGrid.xpm TDualListDialog.xpm TFolderLister.xpm TRxMemoryData.xpm TCURRENCYEDIT.xpm TRXSWITCH.xpm TRXDICE.xpm TRXDBCOMBOBOX.xpm ttoolpanel.xpm trxxpmanifest.xpm TPAGEMANAGER.xpm TRXAPPICON.xpm TSECRETPANEL.xpm TRXLABEL.xpm tautopanel.xpm TRxCalendarGrid.xpm TRxDateEdit.bmp TRxClock.bmp TRxSpeedButton.bmp TRxSpinButton.png TRxSpinEdit.png TRXDBSpinEdit.png TRxTimeEdit.png TRxDBTimeEdit.png TRxDBProgressBar.png TRxDBTrackBar.png +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 diff --git a/components/rx/images/mk_res.sh b/components/rx/images/mk_res.sh index f7bdb8c98..2f29b1358 100755 --- a/components/rx/images/mk_res.sh +++ b/components/rx/images/mk_res.sh @@ -1,3 +1,2 @@ rm rx.lrs -/usr/local/share/lazarus/tools/lazres rx.lrs TDBDateEdit.xpm TRXLookUpEdit.xpm TRxDBCalcEdit.xpm TRxDBLookupCombo.xpm TRxDBGrid.xpm TDualListDialog.xpm TFolderLister.xpm TRxMemoryData.xpm TCURRENCYEDIT.xpm TRXSWITCH.xpm TRXDICE.xpm TRXDBCOMBOBOX.xpm ttoolpanel.xpm trxxpmanifest.xpm TPAGEMANAGER.xpm TRXAPPICON.xpm TSECRETPANEL.xpm TRXLABEL.xpm tautopanel.xpm TRxCalendarGrid.xpm TRxDateEdit.png TRxClock.png TRxSpeedButton.png TRxSpinButton.png TRxSpinEdit.png TRXDBSpinEdit.png TRxTimeEdit.png TRxDBTimeEdit.png TRxDBProgressBar.png TRxDBTrackBar.png - +/usr/local/share/lazarus/tools/lazres rx.lrs TDBDateEdit.xpm TRXLookUpEdit.xpm TRxDBCalcEdit.xpm TRxDBLookupCombo.xpm TRxDBGrid.xpm TDualListDialog.xpm TFolderLister.xpm TRxMemoryData.xpm TCURRENCYEDIT.xpm TRXSWITCH.xpm TRXDICE.xpm TRXDBCOMBOBOX.xpm ttoolpanel.xpm trxxpmanifest.xpm TPAGEMANAGER.xpm TRXAPPICON.xpm TSECRETPANEL.xpm TRXLABEL.xpm tautopanel.xpm TRxCalendarGrid.xpm TRxDateEdit.png TRxClock.png TRxSpeedButton.png TRxSpinButton.png TRxSpinEdit.png TRXDBSpinEdit.png TRxTimeEdit.png TRxDBTimeEdit.png TRxDBProgressBar.png TRxDBTrackBar.png TRxLoginDialog.png \ No newline at end of file diff --git a/components/rx/images/rx.lrs b/components/rx/images/rx.lrs index a29ca3e2c..ef3ef6353 100644 --- a/components/rx/images/rx.lrs +++ b/components/rx/images/rx.lrs @@ -555,3 +555,27 @@ LazarusResources.Add('TRxDBTrackBar','PNG',[ +#226''''#195#245'JN'#221#239#252#223#213'.'#184#224'\'#248#6#216#165#172#203 +#24'='#180#201#0#0#0#0'IEND'#174'B`'#130 ]); +LazarusResources.Add('TRxLoginDialog','PNG',[ + #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#6#0#0#0#224'w='#248#0 + +#0#0#9'pHYs'#0#0#14#156#0#0#14#156#1#7#148'S'#221#0#0#1#212'IDATH'#137#213 + +#149'?hSQ'#20#135#191#27'S'#229#17'hET'#208','#25#218'A%T'#168'"'#220'!'#185 + +'NJ'#165#155'S'#187#212#209'!'#234#224#164#203'-d'#233#148'5'#16#138#144#205 + +','#26#23'!'#211'u'#17#137#155#8'>'#130#213#169')Ei'#254',Akr'#29#170#177#205 + +'K^^'#211#183#248#155#238';'#247#156#243#157#195'}'#156#3#255#187#196#160'A+' + +'l'#255'l'#236#224#245'Xi%'#254#196#238#231#142#30#190#182'v'#144'i'#189'5' + +#140#148#224'`A'#214#130#16#209#145#222'C'#131#142#174'C'#229'i'#173#143#151 + +'m@Zko'#7'J'#169'P'#146#27'c'#0#136'L'#18'\.'#151')'#22#139#129'|'#143#12#232 + +'v'#187#8'!p'#28#135'R'#169#20'.'#192'u]'#242#249'<'#213'j'#149'B'#161#128#16 + +#130'L&'#19#30' '#153'L'#226#186'.'#217'l'#150'J'#165#130#148#146'h'#212#255 + +'G'#28#9'x'#244'p'#133#31#173#28'ra'#11'y'#173#133'\p'#233't:'#244'z'#189#190 + +'O<'#30''''#151#203'M'#6#184'}]0?{'#158'''K+|'#251#186#195#148'3G'#235#251'6' + +#141'F'#131'g'#27#247'}'#147#30#212#200#254'"'''#247'85'#245#18#189#241#24 + +#219'^'#167#241#22'Rg-'#175#239#213'9w'#165'N- '#192#247#13'b'#177#203#196#18 + +')j;'#155#156'Im'#146'X'#252'B'#236'B'#224#226#253#1#246#215'O'#232#188#1#166 + +#153#191#4#167#29'x'#250' A'#228'DH'#128'['#203'/'#216'k'#3'8'#0#172'.'#193 + +#221#197'&'#187#159'C'#2#0#188'o'#27'^'#173#223#160#249#1'n^'#133'O'#239#154 + +'<'#175'C'#237#162#9#12#24';Mg'#164#225'#0#'#247#191#239#200#192#185#129#9'F' + +#133'1'#6#149'V'#168#180#234#15'4c'#12'i'#165'H'#171''#182#191#26#219#193'0' + +#233'5'#237#177#173'i'#175'm"'#192#176'q'#238'7'#226#189';9'#164#165#163#181 + +#14#190'k'#143#163#223'|G'#141#138'p'#211'x'#28#0#0#0#0'IEND'#174'B`'#130 +]); diff --git a/components/rx/rx.lrs b/components/rx/rx.lrs index a29ca3e2c..ef3ef6353 100644 --- a/components/rx/rx.lrs +++ b/components/rx/rx.lrs @@ -555,3 +555,27 @@ LazarusResources.Add('TRxDBTrackBar','PNG',[ +#226''''#195#245'JN'#221#239#252#223#213'.'#184#224'\'#248#6#216#165#172#203 +#24'='#180#201#0#0#0#0'IEND'#174'B`'#130 ]); +LazarusResources.Add('TRxLoginDialog','PNG',[ + #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#6#0#0#0#224'w='#248#0 + +#0#0#9'pHYs'#0#0#14#156#0#0#14#156#1#7#148'S'#221#0#0#1#212'IDATH'#137#213 + +#149'?hSQ'#20#135#191#27'S'#229#17'hET'#208','#25#218'A%T'#168'"'#220'!'#185 + +'NJ'#165#155'S'#187#212#209'!'#234#224#164#203'-d'#233#148'5'#16#138#144#205 + +','#26#23'!'#211'u'#17#137#155#8'>'#130#213#169')Ei'#254',Akr'#29#170#177#205 + +'K^^'#211#183#248#155#238';'#247#156#243#157#195'}'#156#3#255#187#196#160'A+' + +'l'#255'l'#236#224#245'Xi%'#254#196#238#231#142#30#190#182'v'#144'i'#189'5' + +#140#148#224'`A'#214#130#16#209#145#222'C'#131#142#174'C'#229'i'#173#143#151 + +'m@Zko'#7'J'#169'P'#146#27'c'#0#136'L'#18'\.'#151')'#22#139#129'|'#143#12#232 + +'v'#187#8'!p'#28#135'R'#169#20'.'#192'u]'#242#249'<'#213'j'#149'B'#161#128#16 + +#130'L&'#19#30' '#153'L'#226#186'.'#217'l'#150'J'#165#130#148#146'h'#212#255 + +'G'#28#9'x'#244'p'#133#31#173#28'ra'#11'y'#173#133'\p'#233't:'#244'z'#189#190 + +'O<'#30''''#151#203'M'#6#184'}]0?{'#158'''K+|'#251#186#195#148'3G'#235#251'6' + +#141'F'#131'g'#27#247'}'#147#30#212#200#254'"'''#247'85'#245#18#189#241#24 + +#219'^'#167#241#22'Rg-'#175#239#213'9w'#165'N- '#192#247#13'b'#177#203#196#18 + +')j;'#155#156'Im'#146'X'#252'B'#236'B'#224#226#253#1#246#215'O'#232#188#1#166 + +#153#191#4#167#29'x'#250' A'#228'DH'#128'['#203'/'#216'k'#3'8'#0#172'.'#193 + +#221#197'&'#187#159'C'#2#0#188'o'#27'^'#173#223#160#249#1'n^'#133'O'#239#154 + +'<'#175'C'#237#162#9#12#24';Mg'#164#225'#0#'#247#191#239#200#192#185#129#9'F' + +#133'1'#6#149'V'#168#180#234#15'4c'#12'i'#165'H'#171''#182#191#26#219#193'0' + +#233'5'#237#177#173'i'#175'm"'#192#176'q'#238'7'#226#189';9'#164#165#163#181 + +#14#190'k'#143#163#223'|G'#141#138'p'#211'x'#28#0#0#0#0'IEND'#174'B`'#130 +]); diff --git a/components/rx/rxapputils.pas b/components/rx/rxapputils.pas index 584739b33..d08ec64b4 100644 --- a/components/rx/rxapputils.pas +++ b/components/rx/rxapputils.pas @@ -30,11 +30,21 @@ type const OnGetDefaultIniName: TOnGetDefaultIniName = nil; +//Save to IniFile or TRegIniFile string value procedure IniWriteString(IniFile: TObject; const Section, Ident, Value: string); +function IniReadString(IniFile: TObject; const Section, Ident, + Value: string):string; + +//Save to IniFile or TRegIniFile integer value +procedure IniWriteInteger(IniFile: TObject; const Section, Ident:string; + const Value: integer); +function IniReadInteger(IniFile: TObject; const Section, Ident:string; + const Value: integer):integer; + function GetDefaultIniRegKey: string; implementation -uses Registry, Forms; +uses Registry, Forms, FileUtil; function GetDefaultSection(Component: TComponent): string; var @@ -64,11 +74,21 @@ begin end; function GetDefaultIniName: string; +var + S:string; begin if Assigned(OnGetDefaultIniName) then Result:= OnGetDefaultIniName() else - Result := ExtractFileName(ChangeFileExt(Application.ExeName, '.INI')); + begin + Result := ExtractFileName(ChangeFileExt(Application.ExeName, '.ini')); +{$IFNDEF WIN32} + S:=UTF8ToSys(GetAppConfigDir(false)); + if not DirectoryExists(S) then + mkdir(S); + Result:=S+Result; +{$ENDIF} + end; end; procedure GetDefaultIniData(Control: TControl; var IniFileName, @@ -99,7 +119,29 @@ var begin if IniFile is TRegIniFile then TRegIniFile(IniFile).WriteString(Section, Ident, Value) - else begin + else + begin + S := Value; + if S <> '' then + begin + if ((S[1] = '"') and (S[Length(S)] = '"')) or + ((S[1] = '''') and (S[Length(S)] = '''')) then + S := '"' + S + '"'; + end; + if IniFile is TIniFile then + TIniFile(IniFile).WriteString(Section, Ident, S); + end; +end; + +function IniReadString(IniFile: TObject; const Section, Ident, Value: string + ): string; +var + S: string; +begin + if IniFile is TRegIniFile then + Result:=TRegIniFile(IniFile).ReadString(Section, Ident, Value) + else + begin S := Value; if S <> '' then begin if ((S[1] = '"') and (S[Length(S)] = '"')) or @@ -107,7 +149,31 @@ begin S := '"' + S + '"'; end; if IniFile is TIniFile then - TIniFile(IniFile).WriteString(Section, Ident, S); + Result:=TIniFile(IniFile).ReadString(Section, Ident, S); + end; +end; + +procedure IniWriteInteger(IniFile: TObject; const Section, Ident: string; + const Value: integer); +begin + if IniFile is TRegIniFile then + TRegIniFile(IniFile).WriteInteger(Section, Ident, Value) + else + begin + if IniFile is TIniFile then + TIniFile(IniFile).WriteInteger(Section, Ident, Value); + end; +end; + +function IniReadInteger(IniFile: TObject; const Section, Ident: string; + const Value: integer): integer; +begin + if IniFile is TRegIniFile then + Result:=TRegIniFile(IniFile).ReadInteger(Section, Ident, Value) + else + begin + if IniFile is TIniFile then + Result:=TIniFile(IniFile).ReadInteger(Section, Ident, Value); end; end; @@ -121,22 +187,6 @@ begin Result := 'Software\' + Result; end; -{ -procedure IniWriteString(IniFile: TIniFile; const Section, Ident, - Value: string); -var - S: string; -begin - S := Value; - if S <> '' then - begin - if ((S[1] = '"') and (S[Length(S)] = '"')) or - ((S[1] = '''') and (S[Length(S)] = '''')) then - S := '"' + S + '"'; - end; - if IniFile is TIniFile then - TIniFile(IniFile).WriteString(Section, Ident, S); -end; -} + end. diff --git a/components/rx/rxdconst.pas b/components/rx/rxdconst.pas index 69886d4bc..7018cc56c 100644 --- a/components/rx/rxdconst.pas +++ b/components/rx/rxdconst.pas @@ -121,6 +121,8 @@ resourcestring SHintLabel = 'Введите Ваше пользовательское имя и пароль'; SUserNameLabel = '&Имя пользователя:'; SPasswordLabel = '&Пароль:'; + SMore1 = '&Больше >>'; + SMore2 = '&Меньше <<'; SInvalidUserName = 'Неверное имя пользователя или пароль'; SChangePassword = 'Смена пароля'; SOldPasswordLabel = '&Старый пароль:'; diff --git a/components/rx/rxlogin.lfm b/components/rx/rxlogin.lfm index 58c50780d..f95d8feb2 100644 --- a/components/rx/rxlogin.lfm +++ b/components/rx/rxlogin.lfm @@ -1,174 +1,382 @@ object RxLoginForm: TRxLoginForm Cursor = crArrow - Left = 230 - Height = 159 - Top = 141 - Width = 442 - HorzScrollBar.Page = 441 - VertScrollBar.Page = 158 - BorderIcons = [] - BorderStyle = bsDialog + Left = 458 + Height = 203 + Top = 193 + Width = 455 + ActiveControl = UserNameEdit + BorderIcons = [biSystemMenu, biHelp] Caption = 'RxLoginForm' - ClientHeight = 159 - ClientWidth = 442 - Font.Height = -11 - Font.Name = 'MS Sans Serif' + ClientHeight = 203 + ClientWidth = 455 FormStyle = fsStayOnTop OnCreate = FormCreate OnShow = FormShow Position = poScreenCenter - LCLVersion = '0.9.25' + LCLVersion = '0.9.27' object AppIcon: TImage - Left = 14 + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = Owner + Left = 6 Height = 32 - Top = 12 + Top = 6 Width = 32 AutoSize = True + BorderSpacing.Around = 6 end object KeyImage: TImage - Left = 10 + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = Owner + Left = 6 Height = 32 - Top = 15 + Top = 6 Width = 32 AutoSize = True + BorderSpacing.Around = 6 Picture.Data = { - 055449636F6EEB0400002F2A2058504D202A2F0A737461746963206368617220 - 2A677261706869635B5D203D207B0A22333220333220342031222C0A222E2063 - 204E6F6E65222C0A222C20632023383038303830222C0A222D20632023303030 - 303030222C0A222A20632023464646464646222C0A222E2E2E2E2E2E2E2E2E2E - 2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E - 2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E - 2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C - 0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E - 2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E - 2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E - 2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E - 2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E - 2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E - 2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E - 2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E - 2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C - 0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E - 2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E - 2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E - 2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E - 2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E - 2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E - 2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E - 2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E - 2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C - 0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E - 2E2E222C0A222C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2D2E2E2E2E2E2E2E - 2E2E2E2E2E2E222C0A222C2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2D2E2E2E - 2E2E2E2E2E2E2E2E2E2E222C0A222C2A2A2C2D2D2A2A2A2A2A2A2A2A2A2A2A2A - 2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222C2A2C2D2C2D2D2A2A2A2A2A2A2A - 2A2A2A2A2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222C2A2D2D2A2A2D2D2D2D - 2D2D2D2D2D2D2D2A2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222C2A2D2D2A2A - 2D2D2D2D2D2D2D2D2D2D2D2A2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222C2A - 2C2D2C2D2D2A2A2A2A2D2D2A2D2D2A2A2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C - 0A222C2A2A2C2D2D2A2A2A2A2A2D2D2A2D2D2A2A2D2E2E2E2E2E2E2E2E2E2E2E - 2E2E222C0A222C2A2A2A2A2A2A2A2A2A2A2D2D2A2D2D2A2A2D2E2E2E2E2E2E2E - 2E2E2E2E2E2E222C0A222C2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2D2E2E2E - 2E2E2E2E2E2E2E2E2E2E222C0A222C2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A - 2D2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222D2D2D2D2D2D2D2D2D2D2D2D2D2D - 2D2D2D2D2D2E2E2E2E2E2E2E2E2E2E2E2E2E227D0A + 055449636F6EBE1000000000010001002020000001002000A810000016000000 + 2800000020000000400000000100200000000000001000006400000064000000 + 0000000000000000000000FF000000FF000000FF000000FF000000FF000000FF + 000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF + 000000FF000000FF000000FF000000FF000000FF000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FFFFFFFFFF + 000000FF000000FFFFFFFFFFFFFFFFFF000000FF000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000808080FFFFFFFFFFFFFFFFFF808080FF000000FF000000FF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FFFFFFFFFF + 000000FF000000FFFFFFFFFFFFFFFFFF000000FF000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000808080FFFFFFFFFF808080FF000000FF808080FF000000FF + 000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FFFFFFFFFF + 000000FF000000FFFFFFFFFFFFFFFFFF000000FF000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000808080FFFFFFFFFF000000FF000000FFFFFFFFFFFFFFFFFF + 000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF + 000000FF000000FF000000FFFFFFFFFF000000FF000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000808080FFFFFFFFFF000000FF000000FFFFFFFFFFFFFFFFFF + 000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF + 000000FF000000FF000000FFFFFFFFFF000000FF000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000808080FFFFFFFFFF808080FF000000FF808080FF000000FF + 000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000808080FFFFFFFFFFFFFFFFFF808080FF000000FF000000FF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000808080FF808080FF808080FF808080FF808080FF808080FF + 808080FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF + 808080FF808080FF808080FF808080FF000000FF000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000 } end object HintLabel: TLabel - Left = 64 - Height = 13 - Top = 31 - Width = 285 - AutoSize = False + AnchorSideLeft.Control = AppIcon + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = Owner + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + Left = 44 + Height = 18 + Top = 6 + Width = 405 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'HintLabel' ParentColor = False ShowAccelChar = False end object UserNameLabel: TLabel - Left = 64 - Height = 13 - Top = 64 - Width = 105 - AutoSize = False + AnchorSideLeft.Control = Owner + AnchorSideBottom.Control = UserNameEdit + AnchorSideBottom.Side = asrBottom + Left = 6 + Height = 18 + Top = 63 + Width = 70 + Anchors = [akLeft, akBottom] + BorderSpacing.Left = 6 + Caption = 'UserName' FocusControl = UserNameEdit ParentColor = False end object PasswordLabel: TLabel - Left = 64 - Height = 13 + AnchorSideLeft.Control = Owner + AnchorSideBottom.Control = PasswordEdit + AnchorSideBottom.Side = asrBottom + Left = 6 + Height = 18 Top = 96 - Width = 105 - AutoSize = False + Width = 60 + Anchors = [akLeft, akBottom] + BorderSpacing.Left = 6 + Caption = 'Password' FocusControl = PasswordEdit ParentColor = False end object AppTitleLabel: TLabel - Left = 64 - Height = 13 - Top = 12 - Width = 285 - AutoSize = False + AnchorSideLeft.Control = AppIcon + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = HintLabel + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + Left = 44 + Height = 18 + Top = 30 + Width = 405 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + Caption = 'AppTitleLabel' ParentColor = False ShowAccelChar = False end - object CustomLabel: TLabel - Left = 64 - Height = 13 - Top = 128 - Width = 105 - AutoSize = False + object DataBaseLabel: TLabel + AnchorSideLeft.Control = Owner + AnchorSideBottom.Control = CustomCombo + AnchorSideBottom.Side = asrBottom + Left = 6 + Height = 18 + Top = 133 + Width = 63 + Anchors = [akLeft, akBottom] + BorderSpacing.Left = 6 + Caption = 'Database' FocusControl = CustomCombo ParentColor = False end object UserNameEdit: TEdit + AnchorSideLeft.Control = UserNameLabel + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = AppTitleLabel + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom Cursor = crIBeam - Left = 172 - Height = 21 - Top = 60 - Width = 169 + Left = 94 + Height = 27 + Top = 54 + Width = 355 + Anchors = [akTop, akLeft, akRight] + AutoSize = True + BorderSpacing.Left = 12 + BorderSpacing.Around = 6 TabOrder = 0 + Text = '1' end object PasswordEdit: TEdit + AnchorSideLeft.Control = UserNameEdit + AnchorSideTop.Control = UserNameEdit + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = UserNameEdit + AnchorSideRight.Side = asrBottom Cursor = crIBeam - Left = 172 - Height = 21 - Top = 92 - Width = 169 + Left = 94 + Height = 27 + Top = 87 + Width = 355 + Anchors = [akTop, akLeft, akRight] + AutoSize = True + BorderSpacing.Top = 6 EchoMode = emPassword PasswordChar = '*' TabOrder = 1 - end - object OkBtn: TButton - Left = 356 - Height = 25 - Top = 12 - Width = 77 - BorderSpacing.InnerBorder = 2 - Caption = 'OK' - Default = True - OnClick = OkBtnClick - TabOrder = 3 - end - object CancelBtn: TButton - Left = 356 - Height = 25 - Top = 44 - Width = 77 - BorderSpacing.InnerBorder = 2 - Cancel = True - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 4 + Text = '1' end object CustomCombo: TComboBox - Left = 172 - Height = 21 - Top = 124 - Width = 169 - AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] - ItemHeight = 13 - MaxLength = 0 - Sorted = True + AnchorSideLeft.Control = UserNameEdit + AnchorSideTop.Control = PasswordEdit + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = UserNameEdit + AnchorSideRight.Side = asrBottom + Left = 94 + Height = 31 + Top = 120 + Width = 355 + Anchors = [akTop, akLeft, akRight] + AutoComplete = False + BorderSpacing.Top = 6 + ItemHeight = 0 + ItemWidth = 0 Style = csDropDownList TabOrder = 2 end + object btnOK: TBitBtn + AnchorSideLeft.Control = PasswordEdit + AnchorSideTop.Control = btnCancel + AnchorSideRight.Control = btnCancel + AnchorSideBottom.Control = Owner + AnchorSideBottom.Side = asrBottom + Left = 190 + Height = 38 + Top = 159 + Width = 60 + Anchors = [akTop, akRight, akBottom] + AutoSize = True + BorderSpacing.Right = 6 + BorderSpacing.Bottom = 6 + BorderSpacing.InnerBorder = 2 + Caption = '&ОК' + Default = True + Kind = bkOK + ModalResult = 1 + OnClick = btnOKClick + TabOrder = 3 + end + object btnCancel: TBitBtn + AnchorSideTop.Control = CustomCombo + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = btnHelp + AnchorSideBottom.Control = Owner + AnchorSideBottom.Side = asrBottom + Left = 256 + Height = 38 + Top = 159 + Width = 93 + Anchors = [akRight, akBottom] + AutoSize = True + BorderSpacing.Around = 6 + BorderSpacing.InnerBorder = 2 + Cancel = True + Caption = 'Отмена' + Kind = bkCancel + ModalResult = 2 + TabOrder = 4 + end + object btnHelp: TBitBtn + AnchorSideTop.Control = btnCancel + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = Owner + AnchorSideBottom.Side = asrBottom + Left = 355 + Height = 38 + Top = 159 + Width = 94 + Anchors = [akTop, akRight, akBottom] + AutoSize = True + BorderSpacing.Right = 6 + BorderSpacing.Bottom = 6 + Caption = '&Справка' + Kind = bkHelp + TabOrder = 5 + end + object btnMore: TBitBtn + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = btnCancel + AnchorSideBottom.Control = Owner + AnchorSideBottom.Side = asrBottom + Left = 6 + Height = 38 + Top = 159 + Width = 73 + Anchors = [akTop, akLeft, akBottom] + AutoSize = True + BorderSpacing.Left = 6 + BorderSpacing.Bottom = 6 + Caption = 'More >>' + OnClick = btnMoreClick + TabOrder = 6 + end end diff --git a/components/rx/rxlogin.lrs b/components/rx/rxlogin.lrs index fc2345dd9..f60e60c16 100644 --- a/components/rx/rxlogin.lrs +++ b/components/rx/rxlogin.lrs @@ -1,56 +1,220 @@ { - , lazarus } LazarusResources.Add('TRxLoginForm','FORMDATA',[ - 'TPF0'#12'TRxLoginForm'#11'RxLoginForm'#6'Cursor'#7#7'crArrow'#4'Left'#3#230#0 - +#6'Height'#3#159#0#3'Top'#3#141#0#5'Width'#3#186#1#18'HorzScrollBar.Page'#3 - +#185#1#18'VertScrollBar.Page'#3#158#0#11'BorderIcons'#11#0#11'BorderStyle'#7 - +#8'bsDialog'#7'Caption'#6#11'RxLoginForm'#12'ClientHeight'#3#159#0#11'Client' - +'Width'#3#186#1#11'Font.Height'#2#245#9'Font.Name'#6#13'MS Sans Serif'#9'For' - +'mStyle'#7#11'fsStayOnTop'#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormSh' - +'ow'#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.25'#0#6'TImage' - +#7'AppIcon'#4'Left'#2#14#6'Height'#2' '#3'Top'#2#12#5'Width'#2' '#8'AutoSize' - +#9#0#0#6'TImage'#8'KeyImage'#4'Left'#2#10#6'Height'#2' '#3'Top'#2#15#5'Width' - +#2' '#8'AutoSize'#9#12'Picture.Data'#10#245#4#0#0#5'TIcon'#235#4#0#0'/* XPM ' - +'*/'#10'static char *graphic[] = {'#10'"32 32 4 1",'#10'". c None",'#10'", c' - +' #808080",'#10'"- c #000000",'#10'"* c #FFFFFF",'#10'".....................' - +'...........",'#10'"................................",'#10'"................' - +'................",'#10'"................................",'#10'"...........' - +'.....................",'#10'"................................",'#10'"......' - +'..........................",'#10'"................................",'#10'".' - +'...............................",'#10'"................................",' - +#10'"................................",'#10'"...............................' - +'.",'#10'"................................",'#10'"..........................' - +'......",'#10'"................................",'#10'".....................' - +'...........",'#10'"................................",'#10'"................' - +'................",'#10'"................................",'#10'"...........' - +'.....................",'#10'",,,,,,,,,,,,,,,,,,-.............",'#10'",*****' - +'************-.............",'#10'",**,--************-.............",'#10'",' - +'*,-,--***********-.............",'#10'",*--**-----------*-.............",' - +#10'",*--**-----------*-.............",'#10'",*,-,--****--*--**-............' - +'.",'#10'",**,--*****--*--**-.............",'#10'",**********--*--**-.......' - +'......",'#10'",*****************-.............",'#10'",*****************-..' - +'...........",'#10'"-------------------............."}'#10#0#0#6'TLabel'#9'H' - +'intLabel'#4'Left'#2'@'#6'Height'#2#13#3'Top'#2#31#5'Width'#3#29#1#8'AutoSiz' - +'e'#8#11'ParentColor'#8#13'ShowAccelChar'#8#0#0#6'TLabel'#13'UserNameLabel'#4 - +'Left'#2'@'#6'Height'#2#13#3'Top'#2'@'#5'Width'#2'i'#8'AutoSize'#8#12'FocusC' - +'ontrol'#7#12'UserNameEdit'#11'ParentColor'#8#0#0#6'TLabel'#13'PasswordLabel' - +#4'Left'#2'@'#6'Height'#2#13#3'Top'#2'`'#5'Width'#2'i'#8'AutoSize'#8#12'Focu' - +'sControl'#7#12'PasswordEdit'#11'ParentColor'#8#0#0#6'TLabel'#13'AppTitleLab' - +'el'#4'Left'#2'@'#6'Height'#2#13#3'Top'#2#12#5'Width'#3#29#1#8'AutoSize'#8#11 - +'ParentColor'#8#13'ShowAccelChar'#8#0#0#6'TLabel'#11'CustomLabel'#4'Left'#2 - +'@'#6'Height'#2#13#3'Top'#3#128#0#5'Width'#2'i'#8'AutoSize'#8#12'FocusContro' - +'l'#7#11'CustomCombo'#11'ParentColor'#8#0#0#5'TEdit'#12'UserNameEdit'#6'Curs' - +'or'#7#7'crIBeam'#4'Left'#3#172#0#6'Height'#2#21#3'Top'#2'<'#5'Width'#3#169#0 - +#8'TabOrder'#2#0#0#0#5'TEdit'#12'PasswordEdit'#6'Cursor'#7#7'crIBeam'#4'Left' - +#3#172#0#6'Height'#2#21#3'Top'#2'\'#5'Width'#3#169#0#8'EchoMode'#7#10'emPass' - +'word'#12'PasswordChar'#6#1'*'#8'TabOrder'#2#1#0#0#7'TButton'#5'OkBtn'#4'Lef' - +'t'#3'd'#1#6'Height'#2#25#3'Top'#2#12#5'Width'#2'M'#25'BorderSpacing.InnerBo' - +'rder'#2#2#7'Caption'#6#2'OK'#7'Default'#9#7'OnClick'#7#10'OkBtnClick'#8'Tab' - +'Order'#2#3#0#0#7'TButton'#9'CancelBtn'#4'Left'#3'd'#1#6'Height'#2#25#3'Top' - +#2','#5'Width'#2'M'#25'BorderSpacing.InnerBorder'#2#2#6'Cancel'#9#7'Caption' - +#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#4#0#0#9'TComboBox'#11'CustomC' - +'ombo'#4'Left'#3#172#0#6'Height'#2#21#3'Top'#2'|'#5'Width'#3#169#0#16'AutoCo' - +'mpleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#10'Ite' - +'mHeight'#2#13#9'MaxLength'#2#0#6'Sorted'#9#5'Style'#7#14'csDropDownList'#8 - +'TabOrder'#2#2#0#0#0 + 'TPF0'#12'TRxLoginForm'#11'RxLoginForm'#6'Cursor'#7#7'crArrow'#4'Left'#3#202#1 + +#6'Height'#3#203#0#3'Top'#3#193#0#5'Width'#3#199#1#13'ActiveControl'#7#12'Us' + +'erNameEdit'#11'BorderIcons'#11#12'biSystemMenu'#6'biHelp'#0#7'Caption'#6#11 + +'RxLoginForm'#12'ClientHeight'#3#203#0#11'ClientWidth'#3#199#1#9'FormStyle'#7 + +#11'fsStayOnTop'#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#8'Posi' + +'tion'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.27'#0#6'TImage'#7'AppIcon' + +#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4 + +'Left'#2#6#6'Height'#2' '#3'Top'#2#6#5'Width'#2' '#8'AutoSize'#9#20'BorderSp' + +'acing.Around'#2#6#0#0#6'TImage'#8'KeyImage'#22'AnchorSideLeft.Control'#7#5 + +'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#6#6'Height'#2' '#3'To' + +'p'#2#6#5'Width'#2' '#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#12'Picture.' + +'Data'#10#200#16#0#0#5'TIcon'#190#16#0#0#0#0#1#0#1#0' '#0#0#1#0' '#0#168#16 + +#0#0#22#0#0#0'('#0#0#0' '#0#0#0'@'#0#0#0#1#0' '#0#0#0#0#0#0#16#0#0'd'#0#0#0 + +'d'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 + +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 + +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#128#128#128#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#0#0#0#255#0#0#0#255#255#255#255#255#0#0#0#255#0#0#0#255#255#255 + +#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128 + +#255#255#255#255#255#255#255#255#255#128#128#128#255#0#0#0#255#0#0#0#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#0#0#0#255#0#0#0#255#255#255#255#255#0#0#0#255#0#0#0#255#255#255#255#255#255 + +#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#255#255#255 + +#255#255#128#128#128#255#0#0#0#255#128#128#128#255#0#0#0#255#0#0#0#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0 + +#255#255#255#255#255#0#0#0#255#0#0#0#255#255#255#255#255#255#255#255#255#0#0 + +#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#255#255#255#255#255#0#0#0#255 + +#0#0#0#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0 + +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 + +#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#255#255 + +#255#255#255#0#0#0#255#0#0#0#255#255#255#255#255#255#255#255#255#0#0#0#255#0 + +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 + +#255#0#0#0#255#0#0#0#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#128#128#128#255#255#255#255#255#128#128#128#255#0#0#0#255#128#128#128#255 + +#0#0#0#255#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#128#128#128#255#255#255#255#255#255#255#255#255#128#128#128#255#0#0#0 + +#255#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#128#128#128#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + ,#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#128#128#255#128#128#128#255 + +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 + +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 + +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 + +#128#128#255#128#128#128#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6'TLabel'#9'HintLabel'#22 + +'AnchorSideLeft.Control'#7#7'AppIcon'#19'AnchorSideLeft.Side'#7#9'asrBottom' + +#21'AnchorSideTop.Control'#7#5'Owner'#23'AnchorSideRight.Control'#7#5'Owner' + +#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2','#6'Height'#2#18#3'Top'#2 + +#6#5'Width'#3#149#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderS' + +'pacing.Around'#2#6#7'Caption'#6#9'HintLabel'#11'ParentColor'#8#13'ShowAccel' + +'Char'#8#0#0#6'TLabel'#13'UserNameLabel'#22'AnchorSideLeft.Control'#7#5'Owne' + +'r'#24'AnchorSideBottom.Control'#7#12'UserNameEdit'#21'AnchorSideBottom.Side' + +#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#18#3'Top'#2'?'#5'Width'#2'F'#7'Ancho' + +'rs'#11#6'akLeft'#8'akBottom'#0#18'BorderSpacing.Left'#2#6#7'Caption'#6#8'Us' + +'erName'#12'FocusControl'#7#12'UserNameEdit'#11'ParentColor'#8#0#0#6'TLabel' + +#13'PasswordLabel'#22'AnchorSideLeft.Control'#7#5'Owner'#24'AnchorSideBottom' + +'.Control'#7#12'PasswordEdit'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Lef' + +'t'#2#6#6'Height'#2#18#3'Top'#2'`'#5'Width'#2'<'#7'Anchors'#11#6'akLeft'#8'a' + +'kBottom'#0#18'BorderSpacing.Left'#2#6#7'Caption'#6#8'Password'#12'FocusCont' + +'rol'#7#12'PasswordEdit'#11'ParentColor'#8#0#0#6'TLabel'#13'AppTitleLabel'#22 + +'AnchorSideLeft.Control'#7#7'AppIcon'#19'AnchorSideLeft.Side'#7#9'asrBottom' + +#21'AnchorSideTop.Control'#7#9'HintLabel'#18'AnchorSideTop.Side'#7#9'asrBott' + +'om'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asr' + +'Bottom'#4'Left'#2','#6'Height'#2#18#3'Top'#2#30#5'Width'#3#149#1#7'Anchors' + +#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6 + +#13'AppTitleLabel'#11'ParentColor'#8#13'ShowAccelChar'#8#0#0#6'TLabel'#13'Da' + +'taBaseLabel'#22'AnchorSideLeft.Control'#7#5'Owner'#24'AnchorSideBottom.Cont' + +'rol'#7#11'CustomCombo'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#6 + +#6'Height'#2#18#3'Top'#3#133#0#5'Width'#2'?'#7'Anchors'#11#6'akLeft'#8'akBot' + +'tom'#0#18'BorderSpacing.Left'#2#6#7'Caption'#6#8'Database'#12'FocusControl' + +#7#11'CustomCombo'#11'ParentColor'#8#0#0#5'TEdit'#12'UserNameEdit'#22'Anchor' + +'SideLeft.Control'#7#13'UserNameLabel'#19'AnchorSideLeft.Side'#7#9'asrBottom' + +#21'AnchorSideTop.Control'#7#13'AppTitleLabel'#18'AnchorSideTop.Side'#7#9'as' + +'rBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9 + +'asrBottom'#6'Cursor'#7#7'crIBeam'#4'Left'#2'^'#6'Height'#2#27#3'Top'#2'6'#5 + +'Width'#3'c'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#18 + +'BorderSpacing.Left'#2#12#20'BorderSpacing.Around'#2#6#8'TabOrder'#2#0#4'Tex' + +'t'#6#1'1'#0#0#5'TEdit'#12'PasswordEdit'#22'AnchorSideLeft.Control'#7#12'Use' + +'rNameEdit'#21'AnchorSideTop.Control'#7#12'UserNameEdit'#18'AnchorSideTop.Si' + +'de'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#12'UserNameEdit'#20'Anchor' + +'SideRight.Side'#7#9'asrBottom'#6'Cursor'#7#7'crIBeam'#4'Left'#2'^'#6'Height' + +#2#27#3'Top'#2'W'#5'Width'#3'c'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight' + +#0#8'AutoSize'#9#17'BorderSpacing.Top'#2#6#8'EchoMode'#7#10'emPassword'#12'P' + +'asswordChar'#6#1'*'#8'TabOrder'#2#1#4'Text'#6#1'1'#0#0#9'TComboBox'#11'Cust' + +'omCombo'#22'AnchorSideLeft.Control'#7#12'UserNameEdit'#21'AnchorSideTop.Con' + +'trol'#7#12'PasswordEdit'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSid' + +'eRight.Control'#7#12'UserNameEdit'#20'AnchorSideRight.Side'#7#9'asrBottom'#4 + +'Left'#2'^'#6'Height'#2#31#3'Top'#2'x'#5'Width'#3'c'#1#7'Anchors'#11#5'akTop' + +#6'akLeft'#7'akRight'#0#12'AutoComplete'#8#17'BorderSpacing.Top'#2#6#10'Item' + +'Height'#2#0#9'ItemWidth'#2#0#5'Style'#7#14'csDropDownList'#8'TabOrder'#2#2#0 + +#0#7'TBitBtn'#5'btnOK'#22'AnchorSideLeft.Control'#7#12'PasswordEdit'#21'Anch' + +'orSideTop.Control'#7#9'btnCancel'#23'AnchorSideRight.Control'#7#9'btnCancel' + +#24'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBo' + +'ttom'#4'Left'#3#190#0#6'Height'#2'&'#3'Top'#3#159#0#5'Width'#2'<'#7'Anchors' + ,#11#5'akTop'#7'akRight'#8'akBottom'#0#8'AutoSize'#9#19'BorderSpacing.Right'#2 + +#6#20'BorderSpacing.Bottom'#2#6#25'BorderSpacing.InnerBorder'#2#2#7'Caption' + +#6#5'&'#208#158#208#154#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#7 + +'OnClick'#7#10'btnOKClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#9'btnCancel'#21'An' + +'chorSideTop.Control'#7#11'CustomCombo'#18'AnchorSideTop.Side'#7#9'asrBottom' + +#23'AnchorSideRight.Control'#7#7'btnHelp'#24'AnchorSideBottom.Control'#7#5'O' + +'wner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#0#1#6'Height'#2'&' + +#3'Top'#3#159#0#5'Width'#2']'#7'Anchors'#11#7'akRight'#8'akBottom'#0#8'AutoS' + +'ize'#9#20'BorderSpacing.Around'#2#6#25'BorderSpacing.InnerBorder'#2#2#6'Can' + +'cel'#9#7'Caption'#6#12#208#158#209#130#208#188#208#181#208#189#208#176#4'Ki' + +'nd'#7#8'bkCancel'#11'ModalResult'#2#2#8'TabOrder'#2#4#0#0#7'TBitBtn'#7'btnH' + +'elp'#21'AnchorSideTop.Control'#7#9'btnCancel'#23'AnchorSideRight.Control'#7 + +#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Contro' + +'l'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'c'#1#6'Hei' + +'ght'#2'&'#3'Top'#3#159#0#5'Width'#2'^'#7'Anchors'#11#5'akTop'#7'akRight'#8 + +'akBottom'#0#8'AutoSize'#9#19'BorderSpacing.Right'#2#6#20'BorderSpacing.Bott' + +'om'#2#6#7'Caption'#6#15'&'#208#161#208#191#209#128#208#176#208#178#208#186 + +#208#176#4'Kind'#7#6'bkHelp'#8'TabOrder'#2#5#0#0#7'TBitBtn'#7'btnMore'#22'An' + +'chorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#9'btnCancel'#24 + +'AnchorSideBottom.Control'#7#5'Owner'#21'AnchorSideBottom.Side'#7#9'asrBotto' + +'m'#4'Left'#2#6#6'Height'#2'&'#3'Top'#3#159#0#5'Width'#2'I'#7'Anchors'#11#5 + +'akTop'#6'akLeft'#8'akBottom'#0#8'AutoSize'#9#18'BorderSpacing.Left'#2#6#20 + +'BorderSpacing.Bottom'#2#6#7'Caption'#6#7'More >>'#7'OnClick'#7#12'btnMoreCl' + +'ick'#8'TabOrder'#2#6#0#0#0 ]); diff --git a/components/rx/rxlogin.pas b/components/rx/rxlogin.pas index b41aef433..87fa6d5ef 100644 --- a/components/rx/rxlogin.pas +++ b/components/rx/rxlogin.pas @@ -18,6 +18,15 @@ uses LResources, LCLType, LCLIntf, SysUtils, LMessages, Classes, Graphics, type TUpdateCaption = (ucNoChange, ucAppTitle, ucFormCaption); + + TRxLoginOption = (rloCustomSelect, rloMoreBtn, rloHelpBtn); + + TRxLoginOptions = set of TRxLoginOption; + + TRxLoginStorageParam = (rlsUserName, rlsTop, rlsLeft, rlsDetailStatus, + rlsDetailItem); + TRxLoginStorageParams = set of TRxLoginStorageParam; + TRxLoginEvent = procedure(Sender: TObject; const UserName, Password: string; var AllowLogin: Boolean) of object; TCheckUnlockEvent = function(const Password: string): Boolean of object; @@ -32,11 +41,16 @@ type private FActive: Boolean; FAttemptNumber: Integer; - FLoggedUser: {$IFDEF RX_D3}String{$ELSE}PString{$ENDIF}; + FDetailItem: integer; + FDetailItems: TStrings; + FLoggedUser: string; FMaxPasswordLen: Integer; FAllowEmpty: Boolean; + FLoginOptions: TRxLoginOptions; + FShowDetails: boolean; + FStorageParams: TRxLoginStorageParams; FUpdateCaption: TUpdateCaption; - FIniFileName: {$IFDEF RX_D3}String{$ELSE}PString{$ENDIF}; + FIniFileName: string; FUseRegistry: Boolean; FLocked: Boolean; FUnlockDlgShowing: Boolean; @@ -46,11 +60,10 @@ type FOnUnlock: TCheckUnlockEvent; FOnUnlockApp: TUnlockAppEvent; FOnIconDblClick: TNotifyEvent; -{$IFNDEF RX_D3} - function GetLoggedUser: string; - procedure SetIniFileName(const Value: string); -{$ENDIF} function GetIniFileName: string; + procedure SetDetailItems(const AValue: TStrings); + procedure SetLoginOptions(const AValue: TRxLoginOptions); + procedure SetShowDetails(const AValue: boolean); function UnlockHook(var Message: TLMessage): Boolean; protected function CheckUnlock(const UserName, Password: string): Boolean; dynamic; @@ -66,10 +79,16 @@ type property Active: Boolean read FActive write FActive default True; property AllowEmptyPassword: Boolean read FAllowEmpty write FAllowEmpty default True; property AttemptNumber: Integer read FAttemptNumber write FAttemptNumber default 3; - property IniFileName: string read GetIniFileName write {$IFDEF RX_D3}FIniFileName{$ELSE}SetIniFileName{$ENDIF}; + property IniFileName: string read GetIniFileName write FIniFileName; property MaxPasswordLen: Integer read FMaxPasswordLen write FMaxPasswordLen default 0; property UpdateCaption: TUpdateCaption read FUpdateCaption write FUpdateCaption default ucNoChange; property UseRegistry: Boolean read FUseRegistry write FUseRegistry default False; + property ShowDetails: boolean read FShowDetails write SetShowDetails; + property StorageParams:TRxLoginStorageParams read FStorageParams write FStorageParams default [rlsUserName]; + property DetailItems:TStrings read FDetailItems write SetDetailItems; + property DetailItem:integer read FDetailItem write FDetailItem; + property LoginOptions:TRxLoginOptions read FLoginOptions write SetLoginOptions default [rloCustomSelect, rloMoreBtn, rloHelpBtn]; + property AfterLogin: TNotifyEvent read FAfterLogin write FAfterLogin; property BeforeLogin: TNotifyEvent read FBeforeLogin write FBeforeLogin; property OnUnlock: TCheckUnlockEvent read FOnUnlock write FOnUnlock; { obsolete } @@ -81,7 +100,7 @@ type function Login: Boolean; virtual; procedure TerminateApplication; procedure Lock; - property LoggedUser: string read {$IFDEF RX_D3}FLoggedUser{$ELSE}GetLoggedUser{$ENDIF}; + property LoggedUser: string read FLoggedUser; end; { TRxLoginDialog } @@ -89,9 +108,12 @@ type TRxLoginDialog = class(TRxCustomLogin) private FOnCheckUser: TRxLoginEvent; + FUserName:string; + FFormTop:integer; + FFormLeft:integer; procedure OkButtonClick(Sender: TObject); - procedure WriteUserName(const UserName: string); - function ReadUserName(const UserName: string): string; + procedure WriteParams; + procedure LoadParams; protected function DoCheckUser(const UserName, Password: string): Boolean; dynamic; function DoLogin(var UserName: string): Boolean; override; @@ -100,9 +122,14 @@ type property Active; property AttemptNumber; property IniFileName; + property DetailItems; + property DetailItem; property MaxPasswordLen; property UpdateCaption; property UseRegistry; + property ShowDetails; + property LoginOptions; + property StorageParams; property OnCheckUser: TRxLoginEvent read FOnCheckUser write FOnCheckUser; property AfterLogin; property BeforeLogin; @@ -114,27 +141,32 @@ type TRxLoginForm = class(TForm) AppIcon: TImage; + btnHelp: TBitBtn; + btnMore: TBitBtn; + btnCancel: TBitBtn; KeyImage: TImage; HintLabel: TLabel; + btnOK: TBitBtn; UserNameLabel: TLabel; PasswordLabel: TLabel; UserNameEdit: TEdit; PasswordEdit: TEdit; AppTitleLabel: TLabel; - OkBtn: TButton; - CancelBtn: TButton; - CustomLabel: TLabel; + DataBaseLabel: TLabel; CustomCombo: TComboBox; + procedure btnMoreClick(Sender: TObject); procedure FormCreate(Sender: TObject); - procedure OkBtnClick(Sender: TObject); + procedure btnOKClick(Sender: TObject); procedure FormShow(Sender: TObject); private - { Private declarations } FSelectDatabase: Boolean; FUnlockMode: Boolean; FAttempt: Integer; FOnFormShow: TNotifyEvent; FOnOkClick: TNotifyEvent; + function GetShowDetailParams: boolean; + procedure SetLoginOptions(const AValue: TRxLoginOptions); + procedure SetShowDetailParams(const AValue: boolean); public { Public declarations } AttemptNumber: Integer; @@ -142,6 +174,8 @@ type property SelectDatabase: Boolean read FSelectDatabase write FSelectDatabase; property OnFormShow: TNotifyEvent read FOnFormShow write FOnFormShow; property OnOkClick: TNotifyEvent read FOnOkClick write FOnOkClick; + property ShowDetailParams:boolean read GetShowDetailParams write SetShowDetailParams; + property LoginOptions:TRxLoginOptions write SetLoginOptions; end; function CreateLoginDialog(UnlockMode, ASelectDatabase: Boolean; @@ -149,25 +183,33 @@ function CreateLoginDialog(UnlockMode, ASelectDatabase: Boolean; implementation -uses {$IFDEF WIN32} Registry, {$ENDIF} IniFiles, RxAppUtils, RxDConst, - VclUtils, RxConst; +uses + Registry, IniFiles, RxAppUtils, RxDConst, VclUtils, RxConst; const - keyLoginSection = 'Login Dialog'; - keyLastLoginUserName = 'Last Logged User'; + keyLoginSection = 'Login Dialog'; + keyLastLoginUserName = 'Last Logged User'; + keyLastLoginFormTop = 'Last Logged Form Top'; + keyLastLoginFormLeft = 'Last Logged Form Left'; + keyLastLoginFormDetailStatus = 'Last Logged Detail Status'; + keyLastLoginFormDetailSelected = 'Last Logged Selected Detail'; + function CreateLoginDialog(UnlockMode, ASelectDatabase: Boolean; FormShowEvent, OkClickEvent: TNotifyEvent): TRxLoginForm; begin Result := TRxLoginForm.Create(Application); - with Result do begin + with Result do + begin FSelectDatabase := ASelectDatabase; FUnlockMode := UnlockMode; - if FUnlockMode then begin + if FUnlockMode then + begin FormStyle := fsNormal; FSelectDatabase := False; end - else begin + else + begin FormStyle := fsStayOnTop; end; OnFormShow := FormShowEvent; @@ -180,14 +222,13 @@ end; constructor TRxCustomLogin.Create(AOwner: TComponent); begin inherited Create(AOwner); -{$IFNDEF RX_D3} - FIniFileName := NullStr; - FLoggedUser := NullStr; -{$ENDIF} + FDetailItems:=TStringList.Create; FActive := True; FAttemptNumber := 3; FAllowEmpty := True; FUseRegistry := False; + FStorageParams:=[rlsUserName]; + FLoginOptions:=[rloCustomSelect, rloMoreBtn, rloHelpBtn]; end; destructor TRxCustomLogin.Destroy; @@ -197,45 +238,43 @@ begin // Application.UnhookMainWindow(UnlockHook); FLocked := False; end; -{$IFNDEF RX_D3} - DisposeStr(FLoggedUser); - DisposeStr(FIniFileName); -{$ENDIF} + FreeAndNil(FDetailItems); inherited Destroy; end; function TRxCustomLogin.GetIniFileName: string; begin - Result := FIniFileName{$IFNDEF RX_D3}^{$ENDIF}; - if (Result = '') and not (csDesigning in ComponentState) then begin -{$IFDEF WIN32} - if UseRegistry then Result := GetDefaultIniRegKey - else Result := GetDefaultIniName; -{$ELSE} - Result := GetDefaultIniName; -{$ENDIF} + Result := FIniFileName; + if (Result = '') and not (csDesigning in ComponentState) then + begin + if UseRegistry then + Result := GetDefaultIniRegKey + else + Result := GetDefaultIniName; end; end; -{$IFNDEF RX_D3} -procedure TRxCustomLogin.SetIniFileName(const Value: string); +procedure TRxCustomLogin.SetDetailItems(const AValue: TStrings); begin - AssignStr(FIniFileName, Value); + if Assigned(AValue) then + FDetailItems.Assign(AValue); end; -function TRxCustomLogin.GetLoggedUser: string; +procedure TRxCustomLogin.SetLoginOptions(const AValue: TRxLoginOptions); begin - Result := FLoggedUser^; + if FLoginOptions=AValue then exit; + FLoginOptions:=AValue; +end; + +procedure TRxCustomLogin.SetShowDetails(const AValue: boolean); +begin + if FShowDetails=AValue then exit; + FShowDetails:=AValue; end; -{$ENDIF} procedure TRxCustomLogin.SetLoggedUser(const Value: string); begin -{$IFDEF RX_D3} FLoggedUser := Value; -{$ELSE} - AssignStr(FLoggedUser, Value); -{$ENDIF} end; procedure TRxCustomLogin.DoAfterLogin; @@ -278,7 +317,8 @@ begin LoginName := EmptyStr; DoBeforeLogin; Result := DoLogin(LoginName); - if Result then begin + if Result then + begin SetLoggedUser(LoginName); DoUpdateCaption; DoAfterLogin; @@ -334,14 +374,18 @@ end; function TRxCustomLogin.CreateLoginForm(UnlockMode: Boolean): TRxLoginForm; begin Result := TRxLoginForm.Create(Application); - with Result do begin + with Result do + begin FUnlockMode := UnlockMode; - if FUnlockMode then begin + if FUnlockMode then + begin FormStyle := fsNormal; FSelectDatabase := False; end - else FormStyle := fsStayOnTop; - if Assigned(Self.FOnIconDblClick) then begin + else + FormStyle := fsStayOnTop; + if Assigned(Self.FOnIconDblClick) then + begin with AppIcon do begin OnDblClick := @DoIconDblClick; @@ -399,7 +443,7 @@ function TRxCustomLogin.UnlockHook(var Message: TLMessage): Boolean; {$ELSE} BringWindowToTop(Popup); {$ENDIF} - end; *) + end; //*) Result := False; (* Exit; end; @@ -429,8 +473,8 @@ begin UnlockHook := not DoUnlock; end; LM_SYSCOMMAND: - if (WParam and $FFF0 = SC_RESTORE) {or - (WParam and $FFF0 = SC_ZOOM) }then + if (WParam and $FFF0 = SC_RESTORE) +{ or (WParam and $FFF0 = SC_ZOOM) }then begin UnlockHook := not DoUnlock; end; @@ -446,7 +490,8 @@ var begin FLoading := csLoading in ComponentState; inherited Loaded; - if not (csDesigning in ComponentState) and FLoading then begin + if not (csDesigning in ComponentState) and FLoading then + begin if Active and not Login then TerminateApplication; end; @@ -464,7 +509,8 @@ begin SC := True; {$ENDIF} try - if SC then Screen.Cursor := crHourGlass; + if SC then + Screen.Cursor := crHourGlass; try if DoCheckUser(UserNameEdit.Text, PasswordEdit.Text) then ModalResult := mrOk @@ -486,19 +532,24 @@ begin FOnCheckUser(Self, UserName, Password, Result); end; -procedure TRxLoginDialog.WriteUserName(const UserName: string); +procedure TRxLoginDialog.WriteParams; var Ini: TObject; begin try -{$IFDEF WIN32} if UseRegistry then Ini := TRegIniFile.Create(IniFileName) else Ini := TIniFile.Create(IniFileName); -{$ELSE} - Ini := TIniFile.Create(IniFileName); -{$ENDIF} try - IniWriteString(Ini, keyLoginSection, keyLastLoginUserName, UserName); + if rlsUserName in FStorageParams then + IniWriteString(Ini, keyLoginSection, keyLastLoginUserName, FUserName); + if rlsTop in FStorageParams then + IniWriteInteger(Ini, keyLoginSection, keyLastLoginFormTop, FFormTop); + if rlsLeft in FStorageParams then + IniWriteInteger(Ini, keyLoginSection, keyLastLoginFormLeft, FFormLeft); + if rlsDetailStatus in FStorageParams then + IniWriteInteger(Ini, keyLoginSection, keyLastLoginFormDetailStatus, ord(FShowDetails)); + if rlsDetailItem in FStorageParams then + IniWriteInteger(Ini, keyLoginSection, keyLastLoginFormDetailSelected, FDetailItem); finally Ini.Free; end; @@ -506,50 +557,83 @@ begin end; end; -function TRxLoginDialog.ReadUserName(const UserName: string): string; +procedure TRxLoginDialog.LoadParams; var Ini: TObject; begin try -{$IFDEF WIN32} - if UseRegistry then begin + if UseRegistry then + begin Ini := TRegIniFile.Create(IniFileName); -{$IFDEF RX_D5} TRegIniFile(Ini).Access := KEY_READ; -{$ENDIF} end - else + else Ini := TIniFile.Create(IniFileName); -{$ELSE} - Ini := TIniFile.Create(IniFileName); -{$ENDIF} try -{ Result := IniReadString(Ini, keyLoginSection, keyLastLoginUserName, - UserName);} + if rlsUserName in FStorageParams then + FUserName:=IniReadString(Ini, keyLoginSection, keyLastLoginUserName, FUserName); + if rlsTop in FStorageParams then + FFormTop:=IniReadInteger(Ini, keyLoginSection, keyLastLoginFormTop, FFormTop); + if rlsLeft in FStorageParams then + FFormLeft:=IniReadInteger(Ini, keyLoginSection, keyLastLoginFormLeft, FFormLeft); + if rlsDetailStatus in FStorageParams then + FShowDetails:=IniReadInteger(Ini, keyLoginSection, keyLastLoginFormDetailStatus, ord(FShowDetails))=1; + if rlsDetailItem in FStorageParams then + FDetailItem:=IniReadInteger(Ini, keyLoginSection, keyLastLoginFormDetailSelected, FDetailItem); finally Ini.Free; end; except - Result := UserName; end; end; function TRxLoginDialog.DoLogin(var UserName: string): Boolean; +var + LoginForm:TRxLoginForm; begin try -{ with CreateLoginForm(False) do + LoginForm:=CreateLoginForm(False); try - OnOkClick := Self.OkButtonClick; - UserName := ReadUserName(UserName); - UserNameEdit.Text := UserName; - Result := (ShowModal = mrOk); - if Result then begin - UserName := UserNameEdit.Text; - WriteUserName(UserName); + FUserName:=UserName; + LoginForm.OnOkClick := @Self.OkButtonClick; + LoadParams; + LoginForm.LoginOptions:=FLoginOptions; + + if rlsUserName in StorageParams then + LoginForm.UserNameEdit.Text := FUserName; + if rlsTop in StorageParams then + LoginForm.Top:=FFormTop; + if rlsLeft in StorageParams then + LoginForm.Left:=FFormLeft; + + if rloCustomSelect in LoginOptions then + begin + LoginForm.CustomCombo.Items.Assign(DetailItems); + if (FDetailItem>=0) and (FDetailItem<DetailItems.Count) then + LoginForm.CustomCombo.ItemIndex:=FDetailItem; + end; + + LoginForm.ShowDetailParams:=ShowDetails; + + Result := (LoginForm.ShowModal = mrOk); + if Result then + begin + if rlsTop in StorageParams then + FFormTop:=LoginForm.Top; + if rlsLeft in StorageParams then + FFormLeft:=LoginForm.Left; + + if rloCustomSelect in LoginOptions then + FDetailItem:=LoginForm.CustomCombo.ItemIndex; + + ShowDetails:=LoginForm.ShowDetailParams; + UserName := LoginForm.UserNameEdit.Text; + FUserName:=UserName; + WriteParams; end; finally - Free; - end;} + LoginForm.Free; + end; except Application.HandleException(Self); Result := False; @@ -560,17 +644,20 @@ end; procedure TRxLoginForm.FormCreate(Sender: TObject); begin -{ Icon := Application.Icon; - if Icon.Empty then Icon.Handle := LoadIcon(0, IDI_APPLICATION); + Icon.Assign(Application.Icon); +// if Icon.Empty then Icon.Handle := LoadIcon(0, IDI_APPLICATION); AppIcon.Picture.Assign(Icon); - AppTitleLabel.Caption := FmtLoadStr(SAppTitleLabel, [Application.Title]); - PasswordLabel.Caption := LoadStr(SPasswordLabel); - UserNameLabel.Caption := LoadStr(SUserNameLabel); - OkBtn.Caption := ResStr(SOKButton); - CancelBtn.Caption := ResStr(SCancelButton);} + AppTitleLabel.Caption := Format(SAppTitleLabel, [Application.Title]); + PasswordLabel.Caption := SPasswordLabel; + UserNameLabel.Caption := SUserNameLabel; end; -procedure TRxLoginForm.OkBtnClick(Sender: TObject); +procedure TRxLoginForm.btnMoreClick(Sender: TObject); +begin + ShowDetailParams:=not ShowDetailParams; +end; + +procedure TRxLoginForm.btnOKClick(Sender: TObject); begin Inc(FAttempt); if Assigned(FOnOkClick) then FOnOkClick(Self) @@ -584,33 +671,76 @@ var I: Integer; S: string; begin -{ if FSelectDatabase then + if FSelectDatabase then begin ClientHeight := CustomCombo.Top + PasswordEdit.Top - UserNameEdit.Top; - S := LoadStr(SDatabaseName); + S := SDatabaseName; I := Pos(':', S); if I = 0 then I := Length(S); - CustomLabel.Caption := '&' + Copy(S, 1, I); + DataBaseLabel.Caption := '&' + Copy(S, 1, I); end - else begin - ClientHeight := PasswordEdit.Top + PasswordEdit.Top - UserNameEdit.Top; - CustomLabel.Visible := False; + else + begin + DataBaseLabel.Visible := False; CustomCombo.Visible := False; + btnMore.Visible := False; end; - if not FUnlockMode then begin - HintLabel.Caption := LoadStr(SHintLabel); - Caption := LoadStr(SRegistration); + + SetShowDetailParams(ShowDetailParams); + + if not FUnlockMode then + begin + HintLabel.Caption := SHintLabel; + Caption := SRegistration; end - else begin - HintLabel.Caption := LoadStr(SUnlockHint); - Caption := LoadStr(SUnlockCaption); + else + begin + HintLabel.Caption := SUnlockHint; + Caption := SUnlockCaption; end; + if (UserNameEdit.Text = EmptyStr) and not FUnlockMode then ActiveControl := UserNameEdit else ActiveControl := PasswordEdit; if Assigned(FOnFormShow) then FOnFormShow(Self); - FAttempt := 0;} + FAttempt := 0; +end; + +procedure TRxLoginForm.SetShowDetailParams(const AValue: boolean); +begin + DataBaseLabel.Visible:=AValue; + CustomCombo.Visible:=AValue; + if AValue then + begin + btnMore.Caption:=SMore2; + btnCancel.AnchorSideTop.Control:=CustomCombo; + Height := CustomCombo.Top + CustomCombo.Height + btnCancel.Height + 12; + end + else + begin + btnMore.Caption:=SMore1; + btnCancel.AnchorSideTop.Control:=PasswordEdit; + Height := PasswordEdit.Top + PasswordEdit.Height + btnCancel.Height + 12; + end; +end; + +function TRxLoginForm.GetShowDetailParams: boolean; +begin + Result:=CustomCombo.Visible; +end; + +procedure TRxLoginForm.SetLoginOptions(const AValue: TRxLoginOptions); +begin + btnHelp.Visible:=rloHelpBtn in AValue; + if not btnHelp.Visible then + begin + btnCancel.AnchorSideLeft.Side:=asrBottom; + btnCancel.AnchorSideLeft.Control:=Self; + end; + + btnMore.Visible:=rloMoreBtn in AValue; + FSelectDatabase:=rloCustomSelect in AValue; end; initialization diff --git a/components/rx/rxnew.lpk b/components/rx/rxnew.lpk index 57fe9d6d1..ba5185951 100644 --- a/components/rx/rxnew.lpk +++ b/components/rx/rxnew.lpk @@ -20,7 +20,7 @@ translate to Lazarus by alexs in 2005 - 2009 "/> <License Value="free ware "/> - <Version Major="1" Minor="2" Release="1" Build="98"/> + <Version Major="1" Minor="2" Release="2" Build="103"/> <Files Count="51"> <Item1> <Filename Value="rxlookup.pas"/> @@ -226,7 +226,7 @@ translate to Lazarus by alexs in 2005 - 2009 </Item50> <Item51> <Filename Value="rxdbctrls.pas"/> - <UnitName Value="rxdbctrls"/> + <UnitName Value="RxDBCtrls"/> </Item51> </Files> <Type Value="RunAndDesignTime"/>