Examples: Fix GUI handlers and updates in CleanDir\ConfDirs example. Issue #16693.

git-svn-id: trunk@47198 -
This commit is contained in:
juha 2014-12-14 23:14:13 +00:00
parent 2aec6cd83e
commit 2f68fa15b1
3 changed files with 254 additions and 234 deletions

View File

@ -46,12 +46,10 @@
<Unit0> <Unit0>
<Filename Value="confcleandirs.lpr"/> <Filename Value="confcleandirs.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="confcleandirs"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="diskclean.pp"/> <Filename Value="diskclean.pp"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="diskclean"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
<Filename Value="frmmain.pp"/> <Filename Value="frmmain.pp"/>
@ -67,7 +65,6 @@
<ComponentName Value="LogForm"/> <ComponentName Value="LogForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="frmlog"/>
</Unit3> </Unit3>
</Units> </Units>
</ProjectOptions> </ProjectOptions>
@ -85,11 +82,5 @@
</Win32> </Win32>
</Options> </Options>
</Linking> </Linking>
<Other>
<CompilerMessages>
<UseMsgFile Value="True"/>
</CompilerMessages>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions> </CompilerOptions>
</CONFIG> </CONFIG>

View File

@ -1,14 +1,13 @@
object MainForm: TMainForm object MainForm: TMainForm
Left = 635 Left = 407
Height = 432 Height = 442
Top = 338 Top = 133
Width = 571 Width = 576
HorzScrollBar.Page = 570 HorzScrollBar.Page = 570
VertScrollBar.Page = 405 VertScrollBar.Page = 405
ActiveControl = EDailyAt
Caption = 'Configure Directory Cleaner' Caption = 'Configure Directory Cleaner'
ClientHeight = 412 ClientHeight = 417
ClientWidth = 571 ClientWidth = 576
Menu = MMMain Menu = MMMain
OnCloseQuery = FormCloseQuery OnCloseQuery = FormCloseQuery
OnShow = FormShow OnShow = FormShow
@ -17,7 +16,7 @@ object MainForm: TMainForm
Left = 0 Left = 0
Height = 26 Height = 26
Top = 0 Top = 0
Width = 571 Width = 576
Caption = 'TBMain' Caption = 'TBMain'
Images = ILMain Images = ILMain
TabOrder = 0 TabOrder = 0
@ -28,6 +27,7 @@ object MainForm: TMainForm
end end
object ToolButton2: TToolButton object ToolButton2: TToolButton
Left = 24 Left = 24
Height = 22
Top = 2 Top = 2
Width = 10 Width = 10
Caption = 'ToolButton2' Caption = 'ToolButton2'
@ -50,6 +50,7 @@ object MainForm: TMainForm
end end
object ToolButton1: TToolButton object ToolButton1: TToolButton
Left = 103 Left = 103
Height = 22
Top = 2 Top = 2
Width = 10 Width = 10
Caption = 'ToolButton1' Caption = 'ToolButton1'
@ -68,23 +69,23 @@ object MainForm: TMainForm
end end
object PCConfig: TPageControl object PCConfig: TPageControl
Left = 0 Left = 0
Height = 386 Height = 391
Top = 26 Top = 26
Width = 571 Width = 576
ActivePage = TSScheduling ActivePage = TSOptions
Align = alClient Align = alClient
TabIndex = 3 TabIndex = 0
TabOrder = 1 TabOrder = 1
OnChange = PCConfigChange OnChange = PCConfigChange
object TSOptions: TTabSheet object TSOptions: TTabSheet
Caption = 'Options' Caption = 'Options'
ClientHeight = 380 ClientHeight = 366
ClientWidth = 571 ClientWidth = 572
object LVDirectories: TListView object LVDirectories: TListView
Left = 0 Left = 0
Height = 214 Height = 200
Top = 50 Top = 50
Width = 571 Width = 572
Align = alClient Align = alClient
Columns = < Columns = <
item item
@ -109,39 +110,45 @@ object MainForm: TMainForm
object PDirectories: TPanel object PDirectories: TPanel
Left = 0 Left = 0
Height = 116 Height = 116
Top = 264 Top = 250
Width = 571 Width = 572
Align = alBottom Align = alBottom
BevelOuter = bvLowered BevelOuter = bvLowered
ClientHeight = 116 ClientHeight = 116
ClientWidth = 571 ClientWidth = 572
TabOrder = 1 TabOrder = 1
object Label1: TLabel object Label1: TLabel
Left = 4 AnchorSideTop.Control = EDirName
Height = 21 AnchorSideTop.Side = asrCenter
Top = 10 AnchorSideRight.Control = EDirName
Width = 80 Left = 51
Alignment = taRightJustify Height = 15
AutoSize = False Top = 11
Width = 37
Anchors = [akTop, akRight]
BorderSpacing.Right = 6
Caption = '&Name' Caption = '&Name'
FocusControl = EDirName FocusControl = EDirName
Layout = tlCenter Layout = tlCenter
ParentColor = False ParentColor = False
end end
object Label2: TLabel object Label2: TLabel
Left = 4 AnchorSideTop.Control = EDirPath
Height = 19 AnchorSideTop.Side = asrCenter
Top = 44 AnchorSideRight.Control = EDirPath
Width = 80 Left = 62
Alignment = taRightJustify Height = 15
AutoSize = False Top = 43
Width = 26
Anchors = [akTop, akRight]
BorderSpacing.Right = 6
Caption = '&Path' Caption = '&Path'
FocusControl = EDirPath FocusControl = EDirPath
Layout = tlCenter Layout = tlCenter
ParentColor = False ParentColor = False
end end
object SBDirPath: TSpeedButton object SBDirPath: TSpeedButton
Left = 533 Left = 534
Height = 22 Height = 22
Top = 41 Top = 41
Width = 23 Width = 23
@ -186,29 +193,31 @@ object MainForm: TMainForm
end end
object CBDirEnabled: TTICheckBox object CBDirEnabled: TTICheckBox
Left = 94 Left = 94
Height = 22 Height = 20
Top = 72 Top = 70
Width = 70 Width = 73
AutoSize = True
Caption = '&Enabled' Caption = '&Enabled'
Link.TIPropertyName = 'Enabled' Link.TIPropertyName = 'Enabled'
OnEditingDone = DirectoryChanged OnChange = DirectoryChanged
PropertyNameAsCaption = False PropertyNameAsCaption = False
TabOrder = 0 TabOrder = 0
end end
object CBDirRecurse: TTICheckBox object CBDirRecurse: TTICheckBox
Left = 94 Left = 94
Height = 22 Height = 20
Top = 96 Top = 90
Width = 70 Width = 73
AutoSize = True
Caption = '&Recurse' Caption = '&Recurse'
Link.TIPropertyName = 'Recurse' Link.TIPropertyName = 'Recurse'
OnEditingDone = DirectoryChanged OnChange = DirectoryChanged
PropertyNameAsCaption = False PropertyNameAsCaption = False
TabOrder = 1 TabOrder = 1
end end
object EDirName: TTIEdit object EDirName: TTIEdit
Left = 94 Left = 94
Height = 23 Height = 21
Top = 8 Top = 8
Width = 200 Width = 200
Link.TIPropertyName = 'Name' Link.TIPropertyName = 'Name'
@ -217,9 +226,9 @@ object MainForm: TMainForm
end end
object EDirPath: TTIEdit object EDirPath: TTIEdit
Left = 94 Left = 94
Height = 23 Height = 21
Top = 40 Top = 40
Width = 437 Width = 438
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
Link.TIPropertyName = 'Path' Link.TIPropertyName = 'Path'
OnEditingDone = DirectoryChanged OnEditingDone = DirectoryChanged
@ -230,17 +239,17 @@ object MainForm: TMainForm
Left = 0 Left = 0
Height = 50 Height = 50
Top = 0 Top = 0
Width = 571 Width = 572
Align = alTop Align = alTop
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 50 ClientHeight = 50
ClientWidth = 571 ClientWidth = 572
TabOrder = 2 TabOrder = 2
object Label3: TLabel object Label3: TLabel
Left = 0 Left = 0
Height = 24 Height = 24
Top = 26 Top = 26
Width = 571 Width = 572
Align = alBottom Align = alBottom
Alignment = taCenter Alignment = taCenter
AutoSize = False AutoSize = False
@ -285,42 +294,48 @@ object MainForm: TMainForm
end end
object TSLocations: TTabSheet object TSLocations: TTabSheet
Caption = 'Locations' Caption = 'Locations'
ClientHeight = 380 ClientHeight = 366
ClientWidth = 571 ClientWidth = 572
object PLocation: TPanel object PLocation: TPanel
Left = 0 Left = 0
Height = 188 Height = 188
Top = 192 Top = 178
Width = 571 Width = 572
Align = alBottom Align = alBottom
BevelOuter = bvLowered BevelOuter = bvLowered
ClientHeight = 188 ClientHeight = 188
ClientWidth = 571 ClientWidth = 572
TabOrder = 0 TabOrder = 0
object LELocationName: TLabel object LELocationName: TLabel
Left = 4 AnchorSideTop.Control = ELocationName
Height = 21 AnchorSideTop.Side = asrCenter
Top = 13 AnchorSideRight.Control = ELocationName
Width = 76 Left = 43
Alignment = taRightJustify Height = 15
AutoSize = False Top = 16
Width = 37
Anchors = [akTop, akRight]
BorderSpacing.Right = 6
Caption = '&Name' Caption = '&Name'
Layout = tlCenter Layout = tlCenter
ParentColor = False ParentColor = False
end end
object Label4: TLabel object Label4: TLabel
Left = 4 AnchorSideTop.Control = ELocationBaseDir
Height = 23 AnchorSideTop.Side = asrCenter
Top = 48 AnchorSideRight.Control = ELocationBaseDir
Width = 76 Left = 54
Alignment = taRightJustify Height = 15
AutoSize = False Top = 51
Width = 26
Anchors = [akTop, akRight]
BorderSpacing.Right = 6
Caption = '&Path' Caption = '&Path'
Layout = tlCenter Layout = tlCenter
ParentColor = False ParentColor = False
end end
object SBLocationPath: TSpeedButton object SBLocationPath: TSpeedButton
Left = 524 Left = 525
Height = 22 Height = 22
Top = 49 Top = 49
Width = 23 Width = 23
@ -365,7 +380,7 @@ object MainForm: TMainForm
end end
object ELocationBaseDir: TTIEdit object ELocationBaseDir: TTIEdit
Left = 86 Left = 86
Height = 23 Height = 21
Top = 48 Top = 48
Width = 432 Width = 432
Link.TIPropertyName = 'BasePath' Link.TIPropertyName = 'BasePath'
@ -374,7 +389,7 @@ object MainForm: TMainForm
end end
object ELocationName: TTIEdit object ELocationName: TTIEdit
Left = 86 Left = 86
Height = 23 Height = 21
Top = 13 Top = 13
Width = 184 Width = 184
Link.TIPropertyName = 'Name' Link.TIPropertyName = 'Name'
@ -400,14 +415,14 @@ object MainForm: TMainForm
'sdMin=Min' 'sdMin=Min'
'sdTime=Time' 'sdTime=Time'
) )
OnEditingDone = LocationChanged OnItemClick = LocationSubdirsItemClick
end end
end end
object LVLocations: TListView object LVLocations: TListView
Left = 0 Left = 0
Height = 192 Height = 178
Top = 0 Top = 0
Width = 571 Width = 572
Align = alClient Align = alClient
Columns = < Columns = <
item item
@ -430,13 +445,13 @@ object MainForm: TMainForm
end end
object TSFileActions: TTabSheet object TSFileActions: TTabSheet
Caption = 'Actions' Caption = 'Actions'
ClientHeight = 380 ClientHeight = 366
ClientWidth = 571 ClientWidth = 572
object LVFileActions: TListView object LVFileActions: TListView
Left = 0 Left = 0
Height = 216 Height = 202
Top = 0 Top = 0
Width = 571 Width = 572
Align = alClient Align = alClient
Columns = < Columns = <
item item
@ -471,61 +486,74 @@ object MainForm: TMainForm
object PFileAction: TPanel object PFileAction: TPanel
Left = 0 Left = 0
Height = 164 Height = 164
Top = 216 Top = 202
Width = 571 Width = 572
Align = alBottom Align = alBottom
BevelOuter = bvLowered BevelOuter = bvLowered
ClientHeight = 164 ClientHeight = 164
ClientWidth = 571 ClientWidth = 572
TabOrder = 1 TabOrder = 1
object LSEFileActionMinCompressSize: TLabel object LSEFileActionMinCompressSize: TLabel
Left = 214 AnchorSideTop.Control = SEFileActionMinCompressSize
Height = 20 AnchorSideTop.Side = asrCenter
Top = 131 AnchorSideRight.Control = SEFileActionMinCompressSize
Width = 85 Left = 212
Alignment = taRightJustify Height = 15
AutoSize = False Top = 128
Width = 84
Anchors = [akTop, akRight]
BorderSpacing.Right = 6
Caption = '&Minimum size' Caption = '&Minimum size'
FocusControl = SEFileActionMinCompressSize FocusControl = SEFileActionMinCompressSize
Layout = tlCenter Layout = tlCenter
ParentColor = False ParentColor = False
end end
object Label5: TLabel object Label5: TLabel
Left = 15 AnchorSideTop.Control = EFileActionName
Height = 23 AnchorSideTop.Side = asrCenter
Top = 8 AnchorSideRight.Control = EFileActionName
Width = 70 Left = 49
Alignment = taRightJustify Height = 15
AutoSize = False Top = 11
Width = 37
Anchors = [akTop, akRight]
BorderSpacing.Right = 6
Caption = '&Name' Caption = '&Name'
Layout = tlCenter Layout = tlCenter
ParentColor = False ParentColor = False
end end
object Label6: TLabel object Label6: TLabel
Left = 15 AnchorSideTop.Control = EFileActionExtensions
Height = 23 AnchorSideTop.Side = asrCenter
Top = 40 AnchorSideRight.Control = EFileActionExtensions
Width = 70 Left = 19
Alignment = taRightJustify Height = 15
AutoSize = False Top = 43
Width = 67
Anchors = [akTop, akRight]
BorderSpacing.Right = 6
Caption = '&Extensions' Caption = '&Extensions'
Layout = tlCenter Layout = tlCenter
ParentColor = False ParentColor = False
end end
object Label7: TLabel object Label7: TLabel
Left = 13 AnchorSideTop.Control = CBFileActionLocationName
Height = 25 AnchorSideTop.Side = asrCenter
Top = 72 AnchorSideRight.Control = CBFileActionLocationName
Width = 72 Left = 35
Height = 15
Top = 75
Width = 51
Alignment = taRightJustify Alignment = taRightJustify
AutoSize = False Anchors = [akTop, akRight]
BorderSpacing.Right = 6
Caption = 'Location' Caption = 'Location'
Layout = tlCenter Layout = tlCenter
ParentColor = False ParentColor = False
end end
object EFileActionName: TTIEdit object EFileActionName: TTIEdit
Left = 92 Left = 92
Height = 23 Height = 21
Top = 8 Top = 8
Width = 178 Width = 178
Link.TIPropertyName = 'Name' Link.TIPropertyName = 'Name'
@ -534,7 +562,7 @@ object MainForm: TMainForm
end end
object EFileActionExtensions: TTIEdit object EFileActionExtensions: TTIEdit
Left = 92 Left = 92
Height = 23 Height = 21
Top = 40 Top = 40
Width = 178 Width = 178
Link.TIPropertyName = 'Extensions' Link.TIPropertyName = 'Extensions'
@ -543,20 +571,22 @@ object MainForm: TMainForm
end end
object CBFileActionDelete: TTICheckBox object CBFileActionDelete: TTICheckBox
Left = 92 Left = 92
Height = 22 Height = 20
Top = 104 Top = 102
Width = 60 Width = 65
AutoSize = True
Caption = '&Delete' Caption = '&Delete'
Link.TIPropertyName = 'Delete' Link.TIPropertyName = 'Delete'
OnEditingDone = ActionChanged OnChange = ActionChanged
PropertyNameAsCaption = False PropertyNameAsCaption = False
TabOrder = 2 TabOrder = 2
end end
object CBFileActionCompress: TTICheckBox object CBFileActionCompress: TTICheckBox
Left = 92 Left = 92
Height = 22 Height = 20
Top = 131 Top = 125
Width = 79 Width = 85
AutoSize = True
Caption = '&Compress' Caption = '&Compress'
Link.TIPropertyName = 'Compress' Link.TIPropertyName = 'Compress'
OnChange = CBFileActionCompressChange OnChange = CBFileActionCompressChange
@ -564,9 +594,11 @@ object MainForm: TMainForm
TabOrder = 3 TabOrder = 3
end end
object SEFileActionMinCompressSize: TTISpinEdit object SEFileActionMinCompressSize: TTISpinEdit
AnchorSideTop.Control = CBFileActionCompress
AnchorSideTop.Side = asrCenter
Left = 302 Left = 302
Height = 23 Height = 21
Top = 128 Top = 125
Width = 50 Width = 50
Link.TIElementName = 'MinCompressSize' Link.TIElementName = 'MinCompressSize'
MaxValue = 10000 MaxValue = 10000
@ -592,26 +624,32 @@ object MainForm: TMainForm
end end
object TSScheduling: TTabSheet object TSScheduling: TTabSheet
Caption = 'Scheduling' Caption = 'Scheduling'
ClientHeight = 360 ClientHeight = 366
ClientWidth = 563 ClientWidth = 572
object LEDailyAt: TLabel object LEDailyAt: TLabel
Left = 14 AnchorSideTop.Control = EDailyAt
Height = 23 AnchorSideTop.Side = asrCenter
Top = 130 AnchorSideRight.Control = EDailyAt
Width = 56 Left = 32
Alignment = taRightJustify Height = 15
AutoSize = False Top = 133
Width = 48
Anchors = [akTop, akRight]
BorderSpacing.Right = 6
Caption = 'Daily at' Caption = 'Daily at'
Layout = tlCenter Layout = tlCenter
ParentColor = False ParentColor = False
end end
object LSEHourlyAt: TLabel object LSEHourlyAt: TLabel
Left = 14 AnchorSideTop.Control = SEHourlyAt
Height = 23 AnchorSideTop.Side = asrCenter
Top = 170 AnchorSideRight.Control = SEHourlyAt
Width = 56 Left = 23
Alignment = taRightJustify Height = 15
AutoSize = False Top = 173
Width = 57
Anchors = [akTop, akRight]
BorderSpacing.Right = 6
Caption = 'Hourly at' Caption = 'Hourly at'
Layout = tlCenter Layout = tlCenter
ParentColor = False ParentColor = False
@ -680,8 +718,7 @@ object MainForm: TMainForm
end end
object MMMain: TMainMenu object MMMain: TMainMenu
Images = ILMain Images = ILMain
left = 80 left = 382
top = 64
object MFile: TMenuItem object MFile: TMenuItem
Caption = '&File' Caption = '&File'
object MNew: TMenuItem object MNew: TMenuItem
@ -857,96 +894,80 @@ object MainForm: TMainForm
object MINewItem: TMenuItem object MINewItem: TMenuItem
Action = ANewItem Action = ANewItem
Bitmap.Data = { Bitmap.Data = {
36050000424D3605000000000000360400002800000010000000100000000100 36040000424D3604000000000000360000002800000010000000100000000100
0800000000000001000000000000000000000000000000000000000000000000 2000000000000004000064000000640000000000000000000000F0FBFFFFF0FB
80000080000000808000800000008000800080800000C0C0C000C0DCC000F0CA FFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
A6000020400000206000002080000020A0000020C0000020E000004000000040 FFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
20000040400000406000004080000040A0000040C0000040E000006000000060 FFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFF006000FF006000FF0060
20000060400000606000006080000060A0000060C0000060E000008000000080 00FF000000FFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
20000080400000806000008080000080A0000080C0000080E00000A0000000A0 FFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFF006000FF006000FF008000FF0060
200000A0400000A0600000A0800000A0A00000A0C00000A0E00000C0000000C0 00FF000000FF004000FFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
200000C0400000C0600000C0800000C0A00000C0C00000C0E00000E0000000E0 FFFFF0FBFFFFF0FBFFFFF0FBFFFF006000FF008000FF008000FF00A000FF00A0
200000E0400000E0600000E0800000E0A00000E0C00000E0E000400000004000 00FF006000FF006000FF000000FFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
20004000400040006000400080004000A0004000C0004000E000402000004020 FFFFF0FBFFFFF0FBFFFF008000FF008000FF00A000FF00A000FF00C000FF00A0
20004020400040206000402080004020A0004020C0004020E000404000004040 00FF008000FF006000FF006000FF000000FFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
20004040400040406000404080004040A0004040C0004040E000406000004060 FFFFF0FBFFFFF0FBFFFF000000FF008000FF00A000FF00C000FF80E040FF00C0
20004060400040606000406080004060A0004060C0004060E000408000004080 00FF00A000FF008000FF006000FF000000FFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
20004080400040806000408080004080A0004080C0004080E00040A0000040A0 FFFFF0FBFFFFF0FBFFFF00FFFFFF00A000FF00C000FF80E040FF00FF00FF00A0
200040A0400040A0600040A0800040A0A00040A0C00040A0E00040C0000040C0 00FF00A000FF00A000FF008000FF006000FFF0FBFFFFF0FBFFFFF0FBFFFF0000
200040C0400040C0600040C0800040C0A00040C0C00040C0E00040E0000040E0 00FFF0FBFFFFF0FBFFFF000000FF00C000FF80E040FF000000FF80E040FF80E0
200040E0400040E0600040E0800040E0A00040E0C00040E0E000800000008000 40FF00A000FF00A000FF00A000FF008000FFF0FBFFFFF0FBFFFFF0FBFFFF00FF
20008000400080006000800080008000A0008000C0008000E000802000008020 FFFF000000FFF0FBFFFF00FFFFFF00A000FF000000FF00FFFFFF80E040FF80E0
20008020400080206000802080008020A0008020C0008020E000804000008040 40FF80E040FF80E040FF00A000FF00A000FFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
20008040400080406000804080008040A0008040C0008040E000806000008060 FFFF00FFFFFF000000FF000000FF000000FF00FFFFFF80E040FF80E040FF80E0
20008060400080606000806080008060A0008060C0008060E000808000008080 40FF80E040FF80E040FF80E040FF40E000FFF0FBFFFFF0FBFFFFF0FBFFFF0000
20008080400080806000808080008080A0008080C0008080E00080A0000080A0 00FFF0FBFFFF00FFFFFF00FFFFFF00FFFFFF40E000FF000000FF000000FF0000
200080A0400080A0600080A0800080A0A00080A0C00080A0E00080C0000080C0 00FF40E020FF80E020FF80E020FFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFF00FF
200080C0400080C0600080C0800080C0A00080C0C00080C0E00080E0000080E0 FFFFF0FBFFFF00FFFFFF00FFFFFF00FFFFFF80E020FF00FFFFFF00FFFFFF00FF
200080E0400080E0600080E0800080E0A00080E0C00080E0E000C0000000C000 FFFF00FF00FF40E020FFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
2000C0004000C0006000C0008000C000A000C000C000C000E000C0200000C020 FFFF000000FF00FFFFFF00FFFFFF00FFFFFF000000FFF0FBFFFF80E020FF80E0
2000C0204000C0206000C0208000C020A000C020C000C020E000C0400000C040 20FFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFF0000
2000C0404000C0406000C0408000C040A000C040C000C040E000C0600000C060 00FF00FFFFFFF0FBFFFF000000FFF0FBFFFF00FFFFFF000000FFF0FBFFFFF0FB
2000C0604000C0606000C0608000C060A000C060C000C060E000C0800000C080 FFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFF00FF
2000C0804000C0806000C0808000C080A000C080C000C080E000C0A00000C0A0 FFFFF0FBFFFFF0FBFFFF00FFFFFFF0FBFFFFF0FBFFFF00FFFFFFF0FBFFFFF0FB
2000C0A04000C0A06000C0A08000C0A0A000C0A0C000C0A0E000C0C00000C0C0 FFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
2000C0C04000C0C06000C0C08000C0C0A000F0FBFF00A4A0A000808080000000 FFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00F6F6F6F6F6F6 FFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFF
F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F618181800F6F6F6F6F6F6F6F6F6F6F6
181802180010F6F6F6F6F6F6F6F6F61802022828181800F6F6F6F6F6F6F60202
2828302802181800F6F6F6F6F6F600022830BA3028021800F6F6F6F6F6F6FB28
30BAFA2828280218F6F6F600F6F60030BA00BABA28282802F6F6F6FB00F6FB28
00FBBABABABA2828F6F6F6F6FB000000FBBABABABABABA78F6F6F600F6FBFBFB
7800000079B9B9F6F6F6F6FBF6FBFBFBB9FBFBFBFA79F6F6F6F6F6F600FBFBFB
00F6B9B9F6F6F6F6F6F6F600FBF600F6FB00F6F6F6F6F6F6F6F6F6FBF6F6FBF6
F6FBF6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6
} }
OnClick = ANewItemExecute OnClick = ANewItemExecute
end end
object MIDeleteItem: TMenuItem object MIDeleteItem: TMenuItem
Action = ADeleteItem Action = ADeleteItem
Bitmap.Data = { Bitmap.Data = {
36050000424D3605000000000000360400002800000010000000100000000100 36040000424D3604000000000000360000002800000010000000100000000100
0800000000000001000000000000000000000000000000000000000000000000 2000000000000004000064000000640000000000000000000000F0FBFFFFF0FB
80000080000000808000800000008000800080800000C0C0C000C0DCC000F0CA FFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
A6000020400000206000002080000020A0000020C0000020E000004000000040 FFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
20000040400000406000004080000040A0000040C0000040E000006000000060 FFFF0000FFFF0000FFFF000080FF002040FF000000FFF0FBFFFFF0FBFFFFF0FB
20000060400000606000006080000060A0000060C0000060E000008000000080 FFFF000000FF0000FFFF0000FFFF000000FFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
20000080400000806000008080000080A0000080C0000080E00000A0000000A0 FFFFF0FBFFFF0000FFFF0000FFFF0000FFFF000080FF000000FFF0FBFFFF0000
200000A0400000A0600000A0800000A0A00000A0C00000A0E00000C0000000C0 00FF0020A0FF0000FFFF000000FFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
200000C0400000C0600000C0800000C0A00000C0C00000C0E00000E0000000E0 FFFFF0FBFFFFF0FBFFFF0000FFFF0000FFFF0000FFFF000080FF000000FF0000
200000E0400000E0600000E0800000E0A00000E0C00000E0E000400000004000 FFFF0000FFFF404060FFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
20004000400040006000400080004000A0004000C0004000E000402000004020 FFFFF0FBFFFFF0FBFFFFF0FBFFFF406080FF0000FFFF0000FFFF0000FFFF0000
20004020400040206000402080004020A0004020C0004020E000404000004040 FFFF404080FFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
20004040400040406000404080004040A0004040C0004040E000406000004060 FFFFF0FBFFFFF0FBFFFF406080FF000000FF0000FFFF0000FFFF0000FFFF0000
20004060400040606000406080004060A0004060C0004060E000408000004080 FFFF000000FF404040FFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
20004080400040806000408080004080A0004080C0004080E00040A0000040A0 FFFFF0FBFFFF4060A0FF000000FF0000FFFF0000FFFF004040FF4080C0FF0000
200040A0400040A0600040A0800040A0A00040A0C00040A0E00040C0000040C0 FFFF0000FFFF000000FF402020FFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
200040C0400040C0600040C0800040C0A00040C0C00040C0E00040E0000040E0 FFFFF0FBFFFF000000FF0000FFFF0000FFFF4080E0FF80E0E0FF4080E0FF4060
200040E0400040E0600040E0800040E0A00040E0C00040E0E000800000008000 C0FF0000FFFF0000FFFF000000FFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
20008000400080006000800080008000A0008000C0008000E000802000008020 FFFF000000FF0000FFFF0000FFFF4080E0FF80E0E0FF40A0E0FF4080C0FF4080
20008020400080206000802080008020A0008020C0008020E000804000008040 C0FF4060C0FF0000FFFF0000FFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
20008040400080406000804080008040A0008040C0008040E000806000008060 FFFF0000FFFF0000FFFF4080E0FF80E0E0FF4080E0FF80E0E0FF80E0E0FF4080
20008060400080606000806080008060A0008060C0008060E000808000008080 C0FF4060C0FF4080C0FF0000FFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
20008080400080806000808080008080A0008080C0008080E00080A0000080A0 FFFFF0FBFFFF4060A0FF4060A0FF40A0E0FF80E0E0FF80E0E0FF80E0E0FF80E0
200080A0400080A0600080A0800080A0A00080A0C00080A0E00080C0000080C0 E0FF80E0E0FF4060C0FF4080C0FFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
200080C0400080C0600080C0800080C0A00080C0C00080C0E00080E0000080E0 FFFFF0FBFFFF40A0E0FF80E0E0FF80E0E0FF80E0E0FF80E0E0FF80E0E0FF80E0
200080E0400080E0600080E0800080E0A00080E0C00080E0E000C0000000C000 E0FF80E0E0FF80E0E0FF40A0E0FFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
2000C0004000C0006000C0008000C000A000C000C000C000E000C0200000C020 FFFFF0FBFFFFF0FBFFFF40A0E0FF40A0E0FF40C0E0FF40C0E0FF40C0E0FF40C0
2000C0204000C0206000C0208000C020A000C020C000C020E000C0400000C040 E0FF40C0E0FF40C0E0FFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
2000C0404000C0406000C0408000C040A000C040C000C040E000C0600000C060 FFFFF0FBFFFFF0FBFFFFF0FBFFFF40C0E0FF40C0E0FF40A0E0FF40A0E0FF40A0
2000C0604000C0606000C0608000C060A000C060C000C060E000C0800000C080 E0FF40C0E0FFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
2000C0804000C0806000C0808000C080A000C080C000C080E000C0A00000C0A0 FFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFF40C0E0FF40C0E0FFF0FB
2000C0A04000C0A06000C0A08000C0A0A000C0A0C000C0A0E000C0C00000C0C0 FFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
2000C0C04000C0C06000C0C08000C0C0A000F0FBFF00A4A0A000808080000000 FFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FB
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00F6F6F6F6F6F6 FFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFFF0FBFFFF
F6F6F6F6F6F6F6F6F6F6F6F6F9F9010A00F6F6F600F9F900F6F6F6F6F6F9F9F9
0100F6000DF900F6F6F6F6F6F6F6F9F9F90100F9F953F6F6F6F6F6F6F6F6F65C
F9F9F9F954F6F6F6F6F6F6F6F6F65C00F9F9F9F90052F6F6F6F6F6F6F65D00F9
F91266F9F90049F6F6F6F6F6F600F9F967BF675EF9F900F6F6F6F6F600F9F967
BF6F66665EF9F9F6F6F6F6F6F9F967BF67BFBF665E66F9F6F6F6F6F6F65D5D6F
BFBFBFBFBF5E66F6F6F6F6F6F66FBFBFBFBFBFBFBFBF6FF6F6F6F6F6F6F66F6F
777777777777F6F6F6F6F6F6F6F6F677776F6F6F77F6F6F6F6F6F6F6F6F6F6F6
F67777F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6
} }
OnClick = ADeleteItemExecute OnClick = ADeleteItemExecute
end end
@ -965,8 +986,8 @@ object MainForm: TMainForm
end end
object ALMain: TActionList object ALMain: TActionList
Images = ILMain Images = ILMain
left = 80 left = 382
top = 96 top = 32
object ANew: TAction object ANew: TAction
Category = 'File' Category = 'File'
Caption = '&New' Caption = '&New'
@ -1035,20 +1056,19 @@ object MainForm: TMainForm
Filter = 'Configuration files|*.cfg|All files|*.*' Filter = 'Configuration files|*.cfg|All files|*.*'
FilterIndex = 0 FilterIndex = 0
Options = [ofOverwritePrompt, ofPathMustExist, ofEnableSizing, ofViewDetail] Options = [ofOverwritePrompt, ofPathMustExist, ofEnableSizing, ofViewDetail]
left = 120 left = 422
top = 64
end end
object ODConfig: TOpenDialog object ODConfig: TOpenDialog
Title = 'Open existing configuration file' Title = 'Open existing configuration file'
Filter = 'Configuration files|*.cfg|All files|*.*' Filter = 'Configuration files|*.cfg|All files|*'
FilterIndex = 0 FilterIndex = 0
Options = [ofFileMustExist, ofEnableSizing, ofViewDetail] Options = [ofFileMustExist, ofEnableSizing, ofViewDetail]
left = 120 left = 422
top = 96 top = 32
end end
object ILMain: TImageList object ILMain: TImageList
left = 42 left = 344
top = 66 top = 2
Bitmap = { Bitmap = {
4C690600000010000000100000000000000000000000C88B4DFFC88C4FFFC88C 4C690600000010000000100000000000000000000000C88B4DFFC88C4FFFC88C
4FFFC88C4FFFC88C4FFFC88D4FFFC98C4FFFC78B4FFFC5894BFFC4763BFF0000 4FFFC88C4FFFC88C4FFFC88D4FFFC98C4FFFC78B4FFFC5894BFFC4763BFF0000
@ -1246,9 +1266,8 @@ object MainForm: TMainForm
} }
end end
object SDDir: TSelectDirectoryDialog object SDDir: TSelectDirectoryDialog
Title = 'Select Directory'
FilterIndex = 0 FilterIndex = 0
left = 162 left = 464
top = 66 top = 2
end end
end end

View File

@ -140,6 +140,7 @@ type
procedure ATestExecute(Sender: TObject); procedure ATestExecute(Sender: TObject);
procedure ActionChanged(Sender: TObject); procedure ActionChanged(Sender: TObject);
procedure CBFileActionCompressChange(Sender: TObject); procedure CBFileActionCompressChange(Sender: TObject);
procedure LocationSubdirsItemClick(Sender: TObject; Index: integer);
procedure DirectoryChanged(Sender: TObject); procedure DirectoryChanged(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
@ -342,6 +343,7 @@ end;
procedure TMainForm.ActionChanged(Sender: TObject); procedure TMainForm.ActionChanged(Sender: TObject);
begin begin
RefreshFileActionItem(LVFileActions.Selected);
FFileActionChanged:=True; FFileActionChanged:=True;
end; end;
@ -729,7 +731,7 @@ begin
LI.Free; LI.Free;
If (I>=LV.Items.Count) then If (I>=LV.Items.Count) then
Dec(I); Dec(I);
If (I<LV.Items.Count) then If (i>=0) and (I<LV.Items.Count) then
Result:=LV.Items[I]; Result:=LV.Items[I];
end; end;
end; end;
@ -784,6 +786,11 @@ begin
FLocationChanged:=True; FLocationChanged:=True;
end; end;
procedure TMainForm.LocationSubdirsItemClick(Sender: TObject; Index: integer);
begin
LocationChanged(Sender);
end;
procedure TMainForm.SBLocationPathClick(Sender: TObject); procedure TMainForm.SBLocationPathClick(Sender: TObject);
begin begin
@ -795,7 +802,6 @@ begin
end; end;
procedure TMainForm.ShowLocations(ALocations: TLocations); procedure TMainForm.ShowLocations(ALocations: TLocations);
Var Var
@ -890,7 +896,9 @@ begin
LI:=LVLocations.Items.Add; LI:=LVLocations.Items.Add;
LI.Data:=D; LI.Data:=D;
LVLocations.Selected:=LI; LVLocations.Selected:=LI;
RefreshLocationItem(LI);
ShowLocationItem(LI); ShowLocationItem(LI);
FLocationChanged:=True;
end; end;
procedure TMainForm.DeleteLocation; procedure TMainForm.DeleteLocation;
@ -925,7 +933,6 @@ begin
CheckCompressMinSize; CheckCompressMinSize;
end; end;
procedure TMainForm.ShowFileActions(AFileActions: TFileActions); procedure TMainForm.ShowFileActions(AFileActions: TFileActions);
Var Var
@ -1019,7 +1026,9 @@ begin
LI:=LVFileActions.Items.Add; LI:=LVFileActions.Items.Add;
LI.Data:=D; LI.Data:=D;
LVFileActions.Selected:=LI; LVFileActions.Selected:=LI;
RefreshFileActionItem(LI);
ShowFileActionItem(LI); ShowFileActionItem(LI);
FFileActionChanged:=True;
end; end;
procedure TMainForm.DeleteFileAction; procedure TMainForm.DeleteFileAction;
@ -1027,6 +1036,7 @@ procedure TMainForm.DeleteFileAction;
begin begin
FreeAndNil(FFileAction); FreeAndNil(FFileAction);
ShowDirectoryItem(DeleteListItem(LVFileActions)); ShowDirectoryItem(DeleteListItem(LVFileActions));
FFileActionChanged:=True;
end; end;
Function TMainForm.HaveFileAction : Boolean; Function TMainForm.HaveFileAction : Boolean;