Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 685274a356 | |||
| e968856a55 | |||
| f20447a54d | |||
| d9a9332907 | |||
| c61b66b684 | |||
| 15d4e0bf31 | |||
| ddb1d7ca8f | |||
| 43d2f180fd | |||
| c473d722da | |||
| 63823b8e6e |
@@ -8,3 +8,4 @@
|
|||||||
*.ppu
|
*.ppu
|
||||||
*.obj
|
*.obj
|
||||||
*.o
|
*.o
|
||||||
|
*.lps
|
||||||
|
|||||||
+20
-5
@@ -19,9 +19,9 @@
|
|||||||
<VersionInfo>
|
<VersionInfo>
|
||||||
<UseVersionInfo Value="True"/>
|
<UseVersionInfo Value="True"/>
|
||||||
<MinorVersionNr Value="7"/>
|
<MinorVersionNr Value="7"/>
|
||||||
<RevisionNr Value="1"/>
|
|
||||||
<Language Value="0419"/>
|
<Language Value="0419"/>
|
||||||
<Attributes pvaDebug="True" pvaPrivateBuild="True"/>
|
<Attributes pvaDebug="True" pvaPrivateBuild="True"/>
|
||||||
|
<StringTable ProductVersion="0.7.1.0"/>
|
||||||
</VersionInfo>
|
</VersionInfo>
|
||||||
<BuildModes Count="2">
|
<BuildModes Count="2">
|
||||||
<Item1 Name="Debug" Default="True"/>
|
<Item1 Name="Debug" Default="True"/>
|
||||||
@@ -75,7 +75,7 @@
|
|||||||
<PackageName Value="LCL"/>
|
<PackageName Value="LCL"/>
|
||||||
</Item2>
|
</Item2>
|
||||||
</RequiredPackages>
|
</RequiredPackages>
|
||||||
<Units Count="7">
|
<Units Count="9">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="ABTool.lpr"/>
|
<Filename Value="ABTool.lpr"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
<Unit2>
|
<Unit2>
|
||||||
<Filename Value="dmain.pas"/>
|
<Filename Value="dmain.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<ComponentName Value="MainDM"/>
|
<ComponentName Value="dmMain"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
<ResourceBaseClass Value="DataModule"/>
|
<ResourceBaseClass Value="DataModule"/>
|
||||||
<UnitName Value="dMain"/>
|
<UnitName Value="dMain"/>
|
||||||
@@ -116,6 +116,19 @@
|
|||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="uPackageList"/>
|
<UnitName Value="uPackageList"/>
|
||||||
</Unit6>
|
</Unit6>
|
||||||
|
<Unit7>
|
||||||
|
<Filename Value="foptions.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="fmOptions"/>
|
||||||
|
<HasResources Value="True"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="fOptions"/>
|
||||||
|
</Unit7>
|
||||||
|
<Unit8>
|
||||||
|
<Filename Value="uoptions.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="uOptions"/>
|
||||||
|
</Unit8>
|
||||||
</Units>
|
</Units>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
@@ -148,7 +161,6 @@
|
|||||||
<Linking>
|
<Linking>
|
||||||
<Debugging>
|
<Debugging>
|
||||||
<DebugInfoType Value="dsDwarf2Set"/>
|
<DebugInfoType Value="dsDwarf2Set"/>
|
||||||
<UseHeaptrc Value="True"/>
|
|
||||||
<TrashVariables Value="True"/>
|
<TrashVariables Value="True"/>
|
||||||
<UseExternalDbgSyms Value="True"/>
|
<UseExternalDbgSyms Value="True"/>
|
||||||
</Debugging>
|
</Debugging>
|
||||||
@@ -166,7 +178,7 @@
|
|||||||
</Other>
|
</Other>
|
||||||
</CompilerOptions>
|
</CompilerOptions>
|
||||||
<Debugging>
|
<Debugging>
|
||||||
<Exceptions Count="3">
|
<Exceptions Count="4">
|
||||||
<Item1>
|
<Item1>
|
||||||
<Name Value="EAbort"/>
|
<Name Value="EAbort"/>
|
||||||
</Item1>
|
</Item1>
|
||||||
@@ -176,6 +188,9 @@
|
|||||||
<Item3>
|
<Item3>
|
||||||
<Name Value="EFOpenError"/>
|
<Name Value="EFOpenError"/>
|
||||||
</Item3>
|
</Item3>
|
||||||
|
<Item4>
|
||||||
|
<Name Value="RunError(211)"/>
|
||||||
|
</Item4>
|
||||||
</Exceptions>
|
</Exceptions>
|
||||||
</Debugging>
|
</Debugging>
|
||||||
</CONFIG>
|
</CONFIG>
|
||||||
|
|||||||
+5
-35
@@ -12,47 +12,17 @@ uses {$IFDEF UNIX} {$IFDEF UseCThreads}
|
|||||||
uFileUtils,
|
uFileUtils,
|
||||||
uPackage,
|
uPackage,
|
||||||
uPackageUtils,
|
uPackageUtils,
|
||||||
uPackageList;
|
uPackageList,
|
||||||
|
fOptions,
|
||||||
|
uOptions;
|
||||||
|
|
||||||
{$R *.res}
|
{$R *.res}
|
||||||
|
|
||||||
var
|
|
||||||
// путь к файлу ABTool.exe
|
|
||||||
ABToolExePath: String;
|
|
||||||
|
|
||||||
// путь к директории ABTool
|
|
||||||
ABToolDataPath: String;
|
|
||||||
|
|
||||||
// путь к директории ABTool\Packages
|
|
||||||
ABToolPkgPath: String;
|
|
||||||
|
|
||||||
// путь к директории ABTool\Languages
|
|
||||||
ABToolLangPath: String;
|
|
||||||
|
|
||||||
// путь к директории ABTool\Logs
|
|
||||||
ABToolLogPath: String;
|
|
||||||
|
|
||||||
begin
|
begin
|
||||||
RequireDerivedFormResource := True;
|
RequireDerivedFormResource := True;
|
||||||
Application.Initialize;
|
Application.Initialize;
|
||||||
|
Application.CreateForm(TdmMain, dmMain);
|
||||||
// настройка путей к директориям
|
Application.CreateForm(TfmMain, fmMain);
|
||||||
ABToolExePath := ExtractFilePath(ParamStr(0));
|
|
||||||
ABToolDataPath := ABToolExePath + 'ABTool\';
|
|
||||||
ABToolPkgPath := ABToolDataPath + 'Packages\';
|
|
||||||
ABToolLangPath := ABToolDataPath + 'Languages\';
|
|
||||||
ABToolLogPath := ABToolDataPath + 'Logs\';
|
|
||||||
|
|
||||||
// подготовка директорий
|
|
||||||
if not DirectoryExists(ABToolPkgPath) then
|
|
||||||
ForceDirectories(ABToolPkgPath);
|
|
||||||
if not DirectoryExists(ABToolLangPath) then
|
|
||||||
ForceDirectories(ABToolLangPath);
|
|
||||||
if not DirectoryExists(ABToolLogPath) then
|
|
||||||
ForceDirectories(ABToolLogPath);
|
|
||||||
|
|
||||||
Application.CreateForm(TMainDM, MainDM);
|
|
||||||
Application.CreateForm(TfmMain, fMain.fmMain);
|
|
||||||
Application.Run;
|
Application.Run;
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|||||||
-239
@@ -1,239 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<CONFIG>
|
|
||||||
<ProjectSession>
|
|
||||||
<PathDelim Value="\"/>
|
|
||||||
<Version Value="10"/>
|
|
||||||
<BuildModes Active="Debug"/>
|
|
||||||
<Units Count="10">
|
|
||||||
<Unit0>
|
|
||||||
<Filename Value="ABTool.lpr"/>
|
|
||||||
<IsPartOfProject Value="True"/>
|
|
||||||
<TopLine Value="34"/>
|
|
||||||
<CursorPos X="66" Y="56"/>
|
|
||||||
<UsageCount Value="66"/>
|
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit0>
|
|
||||||
<Unit1>
|
|
||||||
<Filename Value="fmain.pas"/>
|
|
||||||
<IsPartOfProject Value="True"/>
|
|
||||||
<ComponentName Value="fmMain"/>
|
|
||||||
<HasResources Value="True"/>
|
|
||||||
<ResourceBaseClass Value="Form"/>
|
|
||||||
<UnitName Value="fMain"/>
|
|
||||||
<IsVisibleTab Value="True"/>
|
|
||||||
<EditorIndex Value="2"/>
|
|
||||||
<TopLine Value="44"/>
|
|
||||||
<CursorPos X="26" Y="56"/>
|
|
||||||
<UsageCount Value="66"/>
|
|
||||||
<Loaded Value="True"/>
|
|
||||||
<LoadedDesigner Value="True"/>
|
|
||||||
</Unit1>
|
|
||||||
<Unit2>
|
|
||||||
<Filename Value="dmain.pas"/>
|
|
||||||
<IsPartOfProject Value="True"/>
|
|
||||||
<ComponentName Value="MainDM"/>
|
|
||||||
<HasResources Value="True"/>
|
|
||||||
<ResourceBaseClass Value="DataModule"/>
|
|
||||||
<UnitName Value="dMain"/>
|
|
||||||
<EditorIndex Value="1"/>
|
|
||||||
<CursorPos X="50" Y="36"/>
|
|
||||||
<ComponentState Value="1"/>
|
|
||||||
<UsageCount Value="66"/>
|
|
||||||
<Loaded Value="True"/>
|
|
||||||
<LoadedDesigner Value="True"/>
|
|
||||||
</Unit2>
|
|
||||||
<Unit3>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<IsPartOfProject Value="True"/>
|
|
||||||
<UnitName Value="uFileUtils"/>
|
|
||||||
<EditorIndex Value="3"/>
|
|
||||||
<TopLine Value="13"/>
|
|
||||||
<CursorPos X="29" Y="5"/>
|
|
||||||
<UsageCount Value="43"/>
|
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit3>
|
|
||||||
<Unit4>
|
|
||||||
<Filename Value="upackage.pas"/>
|
|
||||||
<IsPartOfProject Value="True"/>
|
|
||||||
<UnitName Value="uPackage"/>
|
|
||||||
<EditorIndex Value="4"/>
|
|
||||||
<TopLine Value="7"/>
|
|
||||||
<CursorPos X="3" Y="12"/>
|
|
||||||
<UsageCount Value="35"/>
|
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit4>
|
|
||||||
<Unit5>
|
|
||||||
<Filename Value="upackageutils.pas"/>
|
|
||||||
<IsPartOfProject Value="True"/>
|
|
||||||
<UnitName Value="uPackageUtils"/>
|
|
||||||
<EditorIndex Value="6"/>
|
|
||||||
<CursorPos X="38"/>
|
|
||||||
<UsageCount Value="30"/>
|
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit5>
|
|
||||||
<Unit6>
|
|
||||||
<Filename Value="upackagelist.pas"/>
|
|
||||||
<IsPartOfProject Value="True"/>
|
|
||||||
<UnitName Value="uPackageList"/>
|
|
||||||
<EditorIndex Value="5"/>
|
|
||||||
<CursorPos X="28"/>
|
|
||||||
<UsageCount Value="28"/>
|
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit6>
|
|
||||||
<Unit7>
|
|
||||||
<Filename Value="C:\Lazarus\lcl\include\custompage.inc"/>
|
|
||||||
<EditorIndex Value="-1"/>
|
|
||||||
<TopLine Value="253"/>
|
|
||||||
<CursorPos Y="266"/>
|
|
||||||
<UsageCount Value="5"/>
|
|
||||||
</Unit7>
|
|
||||||
<Unit8>
|
|
||||||
<Filename Value="upackagetypes.pas"/>
|
|
||||||
<UnitName Value="uPackageTypes"/>
|
|
||||||
<EditorIndex Value="-1"/>
|
|
||||||
<CursorPos Y="9"/>
|
|
||||||
<UsageCount Value="20"/>
|
|
||||||
</Unit8>
|
|
||||||
<Unit9>
|
|
||||||
<Filename Value="C:\Lazarus\lcl\interfaces\win32\win32listsl.inc"/>
|
|
||||||
<EditorIndex Value="-1"/>
|
|
||||||
<TopLine Value="114"/>
|
|
||||||
<CursorPos X="28" Y="121"/>
|
|
||||||
<UsageCount Value="9"/>
|
|
||||||
</Unit9>
|
|
||||||
</Units>
|
|
||||||
<JumpHistory Count="30" HistoryIndex="29">
|
|
||||||
<Position1>
|
|
||||||
<Filename Value="fmain.pas"/>
|
|
||||||
<Caret Line="61" TopLine="44"/>
|
|
||||||
</Position1>
|
|
||||||
<Position2>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="57" TopLine="43"/>
|
|
||||||
</Position2>
|
|
||||||
<Position3>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="31" TopLine="19"/>
|
|
||||||
</Position3>
|
|
||||||
<Position4>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="32" Column="33" TopLine="19"/>
|
|
||||||
</Position4>
|
|
||||||
<Position5>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="37" TopLine="19"/>
|
|
||||||
</Position5>
|
|
||||||
<Position6>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="40" TopLine="20"/>
|
|
||||||
</Position6>
|
|
||||||
<Position7>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="42" TopLine="22"/>
|
|
||||||
</Position7>
|
|
||||||
<Position8>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="35" TopLine="22"/>
|
|
||||||
</Position8>
|
|
||||||
<Position9>
|
|
||||||
<Filename Value="fmain.pas"/>
|
|
||||||
<Caret Line="58" Column="72" TopLine="40"/>
|
|
||||||
</Position9>
|
|
||||||
<Position10>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="84" Column="59" TopLine="66"/>
|
|
||||||
</Position10>
|
|
||||||
<Position11>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="80" TopLine="60"/>
|
|
||||||
</Position11>
|
|
||||||
<Position12>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="61" TopLine="57"/>
|
|
||||||
</Position12>
|
|
||||||
<Position13>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="62" TopLine="57"/>
|
|
||||||
</Position13>
|
|
||||||
<Position14>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="31" TopLine="15"/>
|
|
||||||
</Position14>
|
|
||||||
<Position15>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="27" Column="55" TopLine="15"/>
|
|
||||||
</Position15>
|
|
||||||
<Position16>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="33" Column="27" TopLine="25"/>
|
|
||||||
</Position16>
|
|
||||||
<Position17>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="80" TopLine="68"/>
|
|
||||||
</Position17>
|
|
||||||
<Position18>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="61" TopLine="49"/>
|
|
||||||
</Position18>
|
|
||||||
<Position19>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="62" TopLine="49"/>
|
|
||||||
</Position19>
|
|
||||||
<Position20>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="31" TopLine="19"/>
|
|
||||||
</Position20>
|
|
||||||
<Position21>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="32" TopLine="19"/>
|
|
||||||
</Position21>
|
|
||||||
<Position22>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="33" TopLine="19"/>
|
|
||||||
</Position22>
|
|
||||||
<Position23>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="38" Column="53" TopLine="25"/>
|
|
||||||
</Position23>
|
|
||||||
<Position24>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="81" TopLine="69"/>
|
|
||||||
</Position24>
|
|
||||||
<Position25>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="62" TopLine="50"/>
|
|
||||||
</Position25>
|
|
||||||
<Position26>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="63" TopLine="50"/>
|
|
||||||
</Position26>
|
|
||||||
<Position27>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="31" TopLine="19"/>
|
|
||||||
</Position27>
|
|
||||||
<Position28>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="32" TopLine="19"/>
|
|
||||||
</Position28>
|
|
||||||
<Position29>
|
|
||||||
<Filename Value="ufileutils.pas"/>
|
|
||||||
<Caret Line="33" TopLine="19"/>
|
|
||||||
</Position29>
|
|
||||||
<Position30>
|
|
||||||
<Filename Value="fmain.pas"/>
|
|
||||||
<Caret Line="10" Column="15" TopLine="5"/>
|
|
||||||
</Position30>
|
|
||||||
</JumpHistory>
|
|
||||||
</ProjectSession>
|
|
||||||
<Debugging>
|
|
||||||
<BreakPoints Count="1">
|
|
||||||
<Item1>
|
|
||||||
<Kind Value="bpkSource"/>
|
|
||||||
<WatchScope Value="wpsLocal"/>
|
|
||||||
<WatchKind Value="wpkWrite"/>
|
|
||||||
<Source Value="mainform.pas"/>
|
|
||||||
<Line Value="57"/>
|
|
||||||
</Item1>
|
|
||||||
</BreakPoints>
|
|
||||||
</Debugging>
|
|
||||||
</CONFIG>
|
|
||||||
BIN
Binary file not shown.
@@ -0,0 +1,187 @@
|
|||||||
|
; Author: AnthonyAxenov, anthonysoprano.93@gmail.com, abtool.ru
|
||||||
|
; Date: 20:11 20.05.2015
|
||||||
|
[Info]
|
||||||
|
; Language name - required
|
||||||
|
Name=DEBUG
|
||||||
|
; ABTool version — required
|
||||||
|
ABToolVer=0.8.0
|
||||||
|
|
||||||
|
[Main]
|
||||||
|
; Bidirectional mode:
|
||||||
|
; = 1 - Left to right
|
||||||
|
; = 2 - Right to left with right alignment
|
||||||
|
; = 3 - Right to left with left alignment
|
||||||
|
; = 4 - Right to left with right alignment only for reading (not typing)
|
||||||
|
Bidi=1
|
||||||
|
|
||||||
|
[SplashForm]
|
||||||
|
;
|
||||||
|
; Splash form
|
||||||
|
;
|
||||||
|
SplashForm_Lab_Loading=SplashForm_Lab_Loading
|
||||||
|
|
||||||
|
[MainForm]
|
||||||
|
;
|
||||||
|
; Main form
|
||||||
|
;
|
||||||
|
;Tabs
|
||||||
|
MainForm_Tab_Soft=MainForm_Tab_Soft
|
||||||
|
MainForm_Tab_Tools=MainForm_Tab_Tools
|
||||||
|
MainForm_Tab_System=MainForm_Tab_System
|
||||||
|
; Deprecated since v0.8.0.313 (19:01 19.05.2015)
|
||||||
|
;MainForm_Tab_SysInfo=MainForm_Tab_SysInfo
|
||||||
|
; Deprecated since v0.8.0.313 (19:01 19.05.2015)
|
||||||
|
;MainForm_Tab_SysCare=MainForm_Tab_SysCare
|
||||||
|
MainForm_Tab_Log=MainForm_Tab_Log
|
||||||
|
|
||||||
|
;Common buttons on toolbars
|
||||||
|
MainForm_Btn_List=MainForm_Btn_List
|
||||||
|
MainForm_Mnb_ExpandAll=MainForm_Mnb_ExpandAll
|
||||||
|
MainForm_Mnb_CollapseAll=MainForm_Mnb_CollapseAll
|
||||||
|
MainForm_Btn_Search=MainForm_Btn_Search
|
||||||
|
MainForm_Mnb_PackDefault=MainForm_Mnb_PackDefault
|
||||||
|
MainForm_Mnb_PacksEdit=MainForm_Mnb_PacksEdit
|
||||||
|
|
||||||
|
;"Programms" tab
|
||||||
|
MainForm_Btn_SoftCheck=MainForm_Btn_SoftCheck
|
||||||
|
MainForm_Mnb_SoftCheckAll=MainForm_Mnb_SoftCheckAll
|
||||||
|
MainForm_Mnb_SoftCheckNone=MainForm_Mnb_SoftCheckNone
|
||||||
|
MainForm_Btn_SoftPackages=MainForm_Btn_SoftPackages
|
||||||
|
MainForm_Btn_SoftStart=MainForm_Btn_SoftStart
|
||||||
|
|
||||||
|
;"Utilities" tab
|
||||||
|
MainForm_Btn_ToolsPackages=MainForm_Btn_ToolsPackages
|
||||||
|
|
||||||
|
;"System" tab
|
||||||
|
MainForm_Lab_System=MainForm_Lab_System
|
||||||
|
MainForm_SInfo_RowOSVer=MainForm_SInfo_RowPCName
|
||||||
|
MainForm_SInfo_RowPCName=MainForm_SInfo_RowPCName
|
||||||
|
MainForm_SInfo_RowUserName=MainForm_SInfo_RowUserName
|
||||||
|
MainForm_Lab_UserVars=MainForm_Lab_UserVars
|
||||||
|
MainForm_Vars_Col1=MainForm_Vars_Col1
|
||||||
|
MainForm_Vars_Col2=MainForm_Vars_Col2
|
||||||
|
MainForm_Lab_SysVars=MainForm_Lab_SysVars
|
||||||
|
MainForm_Btn_SysInfoRefresh=MainForm_Btn_SysInfoRefresh
|
||||||
|
MainForm_Btn_VarsEdit=MainForm_Btn_VarsEdit
|
||||||
|
MainForm_Mnb_CopyVarValue=MainForm_Mnb_CopyVarValue
|
||||||
|
MainForm_Mnb_CopyVarLine=MainForm_Mnb_CopyVarLine
|
||||||
|
MainForm_Mnb_CopyVarAll=MainForm_Mnb_CopyVarAll
|
||||||
|
MainForm_Grp_Power=MainForm_Grp_Power
|
||||||
|
MainForm_Btn_PowerOff=MainForm_Btn_PowerOff
|
||||||
|
MainForm_Btn_Reboot=MainForm_Btn_Reboot
|
||||||
|
|
||||||
|
;"Log" tab
|
||||||
|
MainForm_Btn_LogClear=MainForm_Btn_LogClear
|
||||||
|
MainForm_Btn_LogSave=MainForm_Btn_LogSave
|
||||||
|
|
||||||
|
;Other strings in this window
|
||||||
|
;MainForm_Caption=ABTool Debugging
|
||||||
|
MainForm_Btn_Options=MainForm_Btn_Options
|
||||||
|
|
||||||
|
[OptionsForm]
|
||||||
|
;
|
||||||
|
; Options form
|
||||||
|
;
|
||||||
|
;Tabs
|
||||||
|
OptForm_Tab_Common=OptForm_Tab_Common
|
||||||
|
OptForm_Tab_Interface=OptForm_Tab_Interface
|
||||||
|
OptForm_Tab_Packages=OptForm_Tab_Packages
|
||||||
|
OptForm_Tab_About=OptForm_Tab_About
|
||||||
|
|
||||||
|
;"Common" tab
|
||||||
|
; "OptForm_Grp_Lang / Language"
|
||||||
|
OptForm_Grp_Lang=OptForm_Grp_Lang
|
||||||
|
OptForm_Lab_LangFileIs=OptForm_Lab_LangFileIs
|
||||||
|
OptForm_Lab_LangNameIs=OptForm_Lab_LangNameIs
|
||||||
|
OptForm_Lab_LangVerIs=OptForm_Lab_LangVerIs
|
||||||
|
OptForm_Grp_Soft=OptForm_Grp_Soft
|
||||||
|
OptForm_Chb_ChkExitCodes=OptForm_Chb_ChkExitCodes
|
||||||
|
OptForm_Chb_ChkExitCodesHint=OptForm_Chb_ChkExitCodesHint
|
||||||
|
OptForm_Chb_DntUnChkItems=OptForm_Chb_DntUnChkItems
|
||||||
|
OptForm_Chb_DntUnChkItemsHint=OptForm_Chb_DntUnChkItemsHint
|
||||||
|
OptForm_Chb_ColorSoftTree=OptForm_Chb_ColorSoftTree
|
||||||
|
OptForm_Chb_ColorSoftTreeHint=OptForm_Chb_ColorSoftTreeHint
|
||||||
|
OptForm_Chb_ShowProgress=OptForm_Chb_ShowProgress
|
||||||
|
OptForm_Chb_ShowProgressHint=OptForm_Chb_ShowProgressHint
|
||||||
|
OptForm_Chb_ExpandSoft=OptForm_Chb_ExpandSoft
|
||||||
|
OptForm_Chb_ExpandSoftHint=OptForm_Chb_ExpandSoftHint
|
||||||
|
OptForm_Chb_QuietREG=OptForm_Chb_QuietREG
|
||||||
|
OptForm_Chb_QuietREGHint=OptForm_Chb_QuietREGHint
|
||||||
|
OptForm_Grp_Tools=OptForm_Grp_Tools
|
||||||
|
OptForm_Chb_HideOnTool=OptForm_Chb_HideOnTool
|
||||||
|
OptForm_Chb_HideOnToolHint=OptForm_Chb_HideOnToolHint
|
||||||
|
OptForm_Chb_ExpandTools=OptForm_Chb_ExpandTools
|
||||||
|
OptForm_Chb_ExpandToolsHint=OptForm_Chb_ExpandToolsHint
|
||||||
|
; "OptForm_Url_DownloadLangs / Download other languages"
|
||||||
|
OptForm_Url_DownloadLangs=OptForm_Url_DownloadLangs
|
||||||
|
|
||||||
|
;"Interface" tab
|
||||||
|
OptForm_Chb_ShowLog=OptForm_Chb_ShowLog
|
||||||
|
OptForm_Chb_ShowLogHint=OptForm_Chb_ShowLogHint
|
||||||
|
OptForm_Chb_DrawOutlines=OptForm_Chb_DrawOutlines
|
||||||
|
OptForm_Chb_DrawOutlinesHint=OptForm_Chb_DrawOutlinesHint
|
||||||
|
OptForm_Chb_ScreenSnap=OptForm_Chb_ScreenSnap
|
||||||
|
OptForm_Chb_ScreenSnapHint=OptForm_Chb_ScreenSnapHint
|
||||||
|
OptForm_Chb_OnTop=OptForm_Chb_OnTop
|
||||||
|
OptForm_Chb_OnTopHint=OptForm_Chb_OnTopHint
|
||||||
|
OptForm_Chb_ShowPkgDesc=OptForm_Chb_ShowPkgDesc
|
||||||
|
OptForm_Chb_ShowPkgDescHint=OptForm_Chb_ShowPkgDescHint
|
||||||
|
OptForm_Chb_SrchVisible=OptForm_Chb_SrchVisible
|
||||||
|
OptForm_Chb_SrchVisibleHint=OptForm_Chb_SrchVisibleHint
|
||||||
|
OptForm_Chb_ScrollLog=OptForm_Chb_ScrollLog
|
||||||
|
OptForm_Chb_ScrollLogHint=OptForm_Chb_ScrollLogHint
|
||||||
|
OptForm_Grp_PkgSwitchMethod=OptForm_Grp_PkgSwitchMethod
|
||||||
|
OptForm_Rdb_PkgSwByMenu=OptForm_Rdb_PkgSwByMenu
|
||||||
|
OptForm_Rdb_PkgSwByMenuHint=OptForm_Rdb_PkgSwByMenuHint
|
||||||
|
OptForm_Rdb_PkgSwByTabs=OptForm_Rdb_PkgSwByTabs
|
||||||
|
OptForm_Rdb_PkgSwByTabsHint=OptForm_Rdb_PkgSwByTabsHint
|
||||||
|
OptForm_Chb_PkgSwShrinkTabs=OptForm_Chb_PkgSwShrinkTabs
|
||||||
|
OptForm_Chb_PkgSwShrinkTabsHint=OptForm_Chb_PkgSwShrinkTabsHint
|
||||||
|
OptForm_Cmb_PkgSwTabsPosHint=OptForm_Cmb_PkgSwTabsPosHint
|
||||||
|
OptForm_Cmb_PkgSwTabsPosTop=OptForm_Cmb_PkgSwTabsPosTop
|
||||||
|
OptForm_Cmb_PkgSwTabsPosBottom=OptForm_Cmb_PkgSwTabsPosBottom
|
||||||
|
OptForm_Cmb_PkgSwTabsPosLeft=OptForm_Cmb_PkgSwTabsPosLeft
|
||||||
|
OptForm_Cmb_PkgSwTabsPosRight=OptForm_Cmb_PkgSwTabsPosRight
|
||||||
|
|
||||||
|
;"Packages" tab
|
||||||
|
OptForm_Grp_PkgSoft=OptForm_Grp_PkgSoft
|
||||||
|
OptForm_Grp_PkgTools=OptForm_Grp_PkgTools
|
||||||
|
OptForm_Btn_BrowseUserSoftPkg=OptForm_Btn_BrowseUserSoftPkg
|
||||||
|
OptForm_Btn_BrowseUserSoftPkgHint=OptForm_Btn_BrowseUserSoftPkgHint
|
||||||
|
OptForm_Btn_ClearUserSoftPkgHint=OptForm_Btn_ClearUserSoftPkgHint
|
||||||
|
OptForm_Btn_OpenIniDir=OptForm_Btn_OpenIniDir
|
||||||
|
OptForm_Btn_OpenIniDirHint=OptForm_Btn_OpenIniDirHint
|
||||||
|
OptForm_Grp_PkgInfo=OptForm_Grp_PkgInfo
|
||||||
|
OptForm_Lab_PkgNameIs=OptForm_Lab_PkgNameIs
|
||||||
|
OptForm_Lab_PkgDescIs=OptForm_Lab_PkgDescIs
|
||||||
|
|
||||||
|
;"About" tab
|
||||||
|
OptForm_Lab_ABToolBuildIs=OptForm_Lab_ABToolBuildIs
|
||||||
|
OptForm_Lab_WhatsNew=OptForm_Lab_WhatsNew
|
||||||
|
OptForm_Url_ReportBug=OptForm_Url_ReportBug
|
||||||
|
OptForm_Url_Help=OptForm_Url_Help
|
||||||
|
OptForm_Btn_CheckUpdates=OptForm_Btn_CheckUpdates
|
||||||
|
OptForm_Btn_CheckingUpdates=OptForm_Btn_CheckingUpdates
|
||||||
|
|
||||||
|
;Other strings in this window
|
||||||
|
OptForm_Caption=OptForm_Caption
|
||||||
|
OptForm_Btn_ResetOptions=OptForm_Btn_ResetOptions
|
||||||
|
OptForm_Btn_SaveOptions=OptForm_Btn_SaveOptions
|
||||||
|
OptForm_Btn_Close=OptForm_Btn_Close
|
||||||
|
|
||||||
|
[ProgressForm]
|
||||||
|
;
|
||||||
|
; Installation progress form
|
||||||
|
;
|
||||||
|
[ChoosePkgForm]
|
||||||
|
;
|
||||||
|
; Form to choose package
|
||||||
|
;
|
||||||
|
[Messages]
|
||||||
|
;
|
||||||
|
; Messages to show
|
||||||
|
;
|
||||||
|
[Log]
|
||||||
|
;
|
||||||
|
; Log messages
|
||||||
|
;
|
||||||
@@ -0,0 +1,189 @@
|
|||||||
|
; Author: AnthonyAxenov, anthonysoprano.93@gmail.com, abtool.ru
|
||||||
|
; Date: 20:11 20.05.2015
|
||||||
|
[Info]
|
||||||
|
; Language name - required
|
||||||
|
Name=English
|
||||||
|
; ABTool version — required
|
||||||
|
ABToolVer=0.8.0
|
||||||
|
|
||||||
|
[Main]
|
||||||
|
; Bidirectional mode:
|
||||||
|
; = 1 - Left to right
|
||||||
|
; = 2 - Right to left with right alignment
|
||||||
|
; = 3 - Right to left with left alignment
|
||||||
|
; = 4 - Right to left with right alignment only for reading (not typing)
|
||||||
|
Bidi=1
|
||||||
|
|
||||||
|
[SplashForm]
|
||||||
|
;
|
||||||
|
; Splash form
|
||||||
|
;
|
||||||
|
SplashForm_Lab_Loading=Loading...
|
||||||
|
[MainForm]
|
||||||
|
;
|
||||||
|
; Main form
|
||||||
|
;
|
||||||
|
;Tabs
|
||||||
|
MainForm_Tab_Soft=Programms
|
||||||
|
MainForm_Tab_Tools=Utilities
|
||||||
|
MainForm_Tab_System=System
|
||||||
|
; Deprecated since v0.8.0.313 (19:01 19.05.2015)
|
||||||
|
;MainForm_Tab_SysInfo=Common info
|
||||||
|
; Deprecated since v0.8.0.313 (19:01 19.05.2015)
|
||||||
|
;MainForm_Tab_SysCare=Maintenance
|
||||||
|
MainForm_Tab_Log=Log
|
||||||
|
|
||||||
|
;Common buttons on toolbars
|
||||||
|
MainForm_Btn_List=List
|
||||||
|
MainForm_Mnb_ExpandAll=Expand all
|
||||||
|
MainForm_Mnb_CollapseAll=Collapse all
|
||||||
|
MainForm_Btn_Search=Search
|
||||||
|
MainForm_Mnb_PackDefault=Default
|
||||||
|
MainForm_Mnb_PacksEdit=Package management...
|
||||||
|
|
||||||
|
;"Programms" tab
|
||||||
|
MainForm_Btn_SoftCheck=Choose
|
||||||
|
MainForm_Mnb_SoftCheckAll=Choose all
|
||||||
|
MainForm_Mnb_SoftCheckNone=Choose none
|
||||||
|
MainForm_Btn_SoftPackages=Programm packages
|
||||||
|
MainForm_Btn_SoftStart=<<< Start installation >>>
|
||||||
|
|
||||||
|
;"Utilities" tab
|
||||||
|
MainForm_Btn_ToolsPackages=Utility packages
|
||||||
|
|
||||||
|
;"System" tab
|
||||||
|
MainForm_Lab_System=System
|
||||||
|
MainForm_SInfo_RowOSVer=OS version
|
||||||
|
MainForm_SInfo_RowPCName=PC name
|
||||||
|
MainForm_SInfo_RowUserName=User name
|
||||||
|
MainForm_Lab_UserVars=Environment variables for
|
||||||
|
MainForm_Vars_Col1=Variable
|
||||||
|
MainForm_Vars_Col2=Value
|
||||||
|
MainForm_Lab_SysVars=System environment variables
|
||||||
|
MainForm_Btn_SysInfoRefresh=Refresh
|
||||||
|
MainForm_Btn_VarsEdit=Edit variables...
|
||||||
|
MainForm_Mnb_CopyVarValue=Copy value to clipboard
|
||||||
|
MainForm_Mnb_CopyVarLine=Copy variable with value
|
||||||
|
MainForm_Mnb_CopyVarAll=Copy all
|
||||||
|
MainForm_Grp_Power=Power management
|
||||||
|
MainForm_Btn_PowerOff=Power off
|
||||||
|
MainForm_Btn_Reboot=Reboot
|
||||||
|
|
||||||
|
;"Log" tab
|
||||||
|
MainForm_Btn_LogClear=Clear log
|
||||||
|
MainForm_Btn_LogSave=Save log to file...
|
||||||
|
|
||||||
|
;Other strings in this window
|
||||||
|
;MainForm_Caption=ABTool in English!
|
||||||
|
MainForm_Btn_Options=Options
|
||||||
|
|
||||||
|
[OptionsForm]
|
||||||
|
;
|
||||||
|
; Options form
|
||||||
|
;
|
||||||
|
;Tabs
|
||||||
|
OptForm_Tab_Common=Common
|
||||||
|
OptForm_Tab_Interface=Interface
|
||||||
|
OptForm_Tab_Packages=Packages
|
||||||
|
OptForm_Tab_About=About
|
||||||
|
|
||||||
|
;"Common" tab
|
||||||
|
; "OptForm_Grp_Lang / Language"
|
||||||
|
OptForm_Grp_Lang=
|
||||||
|
OptForm_Lab_LangFileIs=Filename:
|
||||||
|
OptForm_Lab_LangNameIs=Language:
|
||||||
|
OptForm_Lab_LangVerIs=Version:
|
||||||
|
OptForm_Grp_Soft=«Software» tab
|
||||||
|
OptForm_Chb_ChkExitCodes=Immediately report if the return code <> 0
|
||||||
|
OptForm_Chb_ChkExitCodesHint=When the installer is finished with a code other than zero, you will be asked to terminate the installation process
|
||||||
|
OptForm_Chb_DntUnChkItems=Leave the check box checked with the return code <> 0
|
||||||
|
OptForm_Chb_DntUnChkItemsHint=Later, you can try to install only those programs, the installation of which was not completed correctly
|
||||||
|
OptForm_Chb_ColorSoftTree=Color software tree list after installing
|
||||||
|
OptForm_Chb_ColorSoftTreeHint=When the installation process is complete, a list of programs to be is colored as follows: Failed to start — red, return code <> 0 — blue
|
||||||
|
OptForm_Chb_ShowProgress=Show the overall process of software installation
|
||||||
|
OptForm_Chb_ShowProgressHint=During installation, the main window will disappear and there will be another, displaying the overall progress of the installation. Otherwise - the main window will not disappear, but will be blocked
|
||||||
|
OptForm_Chb_ExpandSoft=Expand software tree when package is loaded
|
||||||
|
OptForm_Chb_ExpandSoftHint=
|
||||||
|
OptForm_Chb_QuietREG=Silent import from REG-files
|
||||||
|
OptForm_Chb_QuietREGHint=REGEDIT will not ask for confirmation
|
||||||
|
OptForm_Grp_Tools=«Utilities» tab
|
||||||
|
OptForm_Chb_HideOnTool=Hide ABTool when utility is launched
|
||||||
|
OptForm_Chb_HideOnToolHint=When utility is launched, ABTool will not disturb
|
||||||
|
OptForm_Chb_ExpandTools=Expand utilities tree when package is loaded
|
||||||
|
OptForm_Chb_ExpandToolsHint=
|
||||||
|
; "OptForm_Url_DownloadLangs / Download other languages"
|
||||||
|
;OptForm_Url_DownloadLangs=
|
||||||
|
|
||||||
|
;"Interface" tab
|
||||||
|
OptForm_Chb_ShowLog=Show log tab
|
||||||
|
OptForm_Chb_ShowLogHint=The log appears on the an additional tab and contains complete protocol of events
|
||||||
|
OptForm_Chb_DrawOutlines=Draw lists outlines
|
||||||
|
OptForm_Chb_DrawOutlinesHint=It applies both to the Software and Utilities tabs
|
||||||
|
OptForm_Chb_ScreenSnap=Snap ABTool to the screen borders when moving
|
||||||
|
OptForm_Chb_ScreenSnapHint=
|
||||||
|
OptForm_Chb_OnTop=Keep ABTool on top
|
||||||
|
OptForm_Chb_OnTopHint=
|
||||||
|
OptForm_Chb_ShowPkgDesc=Show package descriptions
|
||||||
|
OptForm_Chb_ShowPkgDescHint=It applies both to the Software and Utilities tabs
|
||||||
|
OptForm_Chb_SrchVisible=Search bar is always shown
|
||||||
|
OptForm_Chb_SrchVisibleHint=It applies both to the Software and Utilities tabs
|
||||||
|
OptForm_Chb_ScrollLog=Always scroll log to the end
|
||||||
|
OptForm_Chb_ScrollLogHint=
|
||||||
|
OptForm_Grp_PkgSwitchMethod=Package switching method
|
||||||
|
OptForm_Rdb_PkgSwByMenu=Let me choose via package menu
|
||||||
|
OptForm_Rdb_PkgSwByMenuHint=It applies both to the Software and Utilities tabs
|
||||||
|
OptForm_Rdb_PkgSwByTabs=Show packages as tabs:
|
||||||
|
OptForm_Rdb_PkgSwByTabsHint=It applies both to the Software and Utilities tabs
|
||||||
|
OptForm_Chb_PkgSwShrinkTabs=Fit all names (long names will be trimmed)
|
||||||
|
OptForm_Chb_PkgSwShrinkTabsHint=If disabled, all packages' names may not fit on this panel
|
||||||
|
OptForm_Cmb_PkgSwTabsPosHint=Choose package tabs position
|
||||||
|
OptForm_Cmb_PkgSwTabsPosTop=Top
|
||||||
|
OptForm_Cmb_PkgSwTabsPosBottom=Bottom
|
||||||
|
OptForm_Cmb_PkgSwTabsPosLeft=Left
|
||||||
|
OptForm_Cmb_PkgSwTabsPosRight=Right
|
||||||
|
|
||||||
|
;"Packages" tab
|
||||||
|
OptForm_Grp_PkgSoft=Software
|
||||||
|
OptForm_Grp_PkgTools=Utilities
|
||||||
|
OptForm_Btn_BrowseUserSoftPkg=Choose
|
||||||
|
OptForm_Btn_BrowseUserSoftPkgHint=Choose your package in special window
|
||||||
|
OptForm_Btn_ClearUserSoftPkgHint=Clear field
|
||||||
|
OptForm_Btn_OpenIniDir=Open ABTool_ini directory
|
||||||
|
OptForm_Btn_OpenIniDirHint=
|
||||||
|
OptForm_Grp_PkgInfo=Package info
|
||||||
|
OptForm_Lab_PkgNameIs=Name:
|
||||||
|
OptForm_Lab_PkgDescIs=Description:
|
||||||
|
|
||||||
|
;"About" tab
|
||||||
|
OptForm_Lab_ABToolBuildIs=build
|
||||||
|
OptForm_Lab_WhatsNew=What's new in this version:
|
||||||
|
OptForm_Url_ReportBug=Report bug
|
||||||
|
OptForm_Url_Help=Get help
|
||||||
|
OptForm_Btn_CheckUpdates=Check updates
|
||||||
|
OptForm_Btn_CheckingUpdates=Checking updates...
|
||||||
|
|
||||||
|
;Other strings in this window
|
||||||
|
OptForm_Caption=ABTool options
|
||||||
|
OptForm_Btn_ResetOptions=Reset
|
||||||
|
OptForm_Btn_SaveOptions=Save
|
||||||
|
OptForm_Btn_Close=Close
|
||||||
|
|
||||||
|
[ProgressForm]
|
||||||
|
;
|
||||||
|
; Installation progress form
|
||||||
|
;
|
||||||
|
|
||||||
|
[ChoosePkgForm]
|
||||||
|
;
|
||||||
|
; Form to choose package
|
||||||
|
;
|
||||||
|
|
||||||
|
[Messages]
|
||||||
|
;
|
||||||
|
; Messages to show
|
||||||
|
;
|
||||||
|
|
||||||
|
[Log]
|
||||||
|
;
|
||||||
|
; Log messages
|
||||||
|
;
|
||||||
@@ -0,0 +1,185 @@
|
|||||||
|
; Author: AnthonyAxenov, anthonysoprano.93@gmail.com, abtool.ru
|
||||||
|
; Date: 20:11 20.05.2015
|
||||||
|
[Info]
|
||||||
|
; Language name - required
|
||||||
|
Name=Русский
|
||||||
|
; ABTool version — required
|
||||||
|
ABToolVer=0.8.0
|
||||||
|
|
||||||
|
[Main]
|
||||||
|
; Bidirectional mode:
|
||||||
|
; = 1 - Left to right
|
||||||
|
; = 2 - Right to left with right alignment
|
||||||
|
; = 3 - Right to left with left alignment
|
||||||
|
; = 4 - Right to left with right alignment only for reading (not typing)
|
||||||
|
Bidi=2
|
||||||
|
|
||||||
|
[SplashForm]
|
||||||
|
;
|
||||||
|
; Splash form
|
||||||
|
;
|
||||||
|
SplashForm_Lab_Loading=Загрузка...
|
||||||
|
[MainForm]
|
||||||
|
;
|
||||||
|
; Main form
|
||||||
|
;
|
||||||
|
;Tabs
|
||||||
|
MainForm_Tab_Soft=Программы
|
||||||
|
MainForm_Tab_Tools=Утилиты
|
||||||
|
MainForm_Tab_System=Система
|
||||||
|
; Deprecated since v0.8.0.313 (19:01 19.05.2015)
|
||||||
|
;MainForm_Tab_SysInfo=Общая информация
|
||||||
|
; Deprecated since v0.8.0.313 (19:01 19.05.2015)
|
||||||
|
;MainForm_Tab_SysCare=Обслуживание
|
||||||
|
MainForm_Tab_Log=Лог
|
||||||
|
|
||||||
|
;Common buttons on toolbars
|
||||||
|
MainForm_Btn_List=Список
|
||||||
|
MainForm_Mnb_ExpandAll=Развернуть все
|
||||||
|
MainForm_Mnb_CollapseAll=Свернуть все
|
||||||
|
MainForm_Btn_Search=Поиск
|
||||||
|
MainForm_Mnb_PackDefault=По умолчанию
|
||||||
|
MainForm_Mnb_PacksEdit=Управление пакетами...
|
||||||
|
|
||||||
|
;"Programms" tab
|
||||||
|
MainForm_Btn_SoftCheck=Выбор
|
||||||
|
MainForm_Mnb_SoftCheckAll=Выбрать все
|
||||||
|
MainForm_Mnb_SoftCheckNone=Снять выбор
|
||||||
|
MainForm_Btn_SoftPackages=Пакеты программ
|
||||||
|
MainForm_Btn_SoftStart=<<< Приступить к установке >>>
|
||||||
|
|
||||||
|
;"Utilities" tab
|
||||||
|
MainForm_Btn_ToolsPackages=Пакеты утилит
|
||||||
|
|
||||||
|
;"System" tab
|
||||||
|
MainForm_Lab_System=Система
|
||||||
|
MainForm_SInfo_RowOSVer=Версия ОС
|
||||||
|
MainForm_SInfo_RowPCName=Имя ПК
|
||||||
|
MainForm_SInfo_RowUserName=Имя пользователя
|
||||||
|
MainForm_Lab_UserVars=Переменные среды для
|
||||||
|
MainForm_Vars_Col1=Переменная
|
||||||
|
MainForm_Vars_Col2=Значение
|
||||||
|
MainForm_Lab_SysVars=Системные переменные среды
|
||||||
|
MainForm_Btn_SysInfoRefresh=Обновить
|
||||||
|
MainForm_Btn_VarsEdit=Редактирование...
|
||||||
|
MainForm_Mnb_CopyVarValue=Копировать значение
|
||||||
|
MainForm_Mnb_CopyVarLine=Копировать строку
|
||||||
|
MainForm_Mnb_CopyVarAll=Копировать все
|
||||||
|
MainForm_Grp_Power=Питание компьютера
|
||||||
|
MainForm_Btn_PowerOff=Выключение
|
||||||
|
MainForm_Btn_Reboot=Перезагрузка
|
||||||
|
|
||||||
|
;"Log" tab
|
||||||
|
MainForm_Btn_LogClear=Очистить лог
|
||||||
|
MainForm_Btn_LogSave=Сохранить...
|
||||||
|
|
||||||
|
;Other strings in this window
|
||||||
|
MainForm_Btn_Options=Настройки
|
||||||
|
|
||||||
|
[OptionsForm]
|
||||||
|
;
|
||||||
|
; Options form
|
||||||
|
;
|
||||||
|
;Tabs
|
||||||
|
OptForm_Tab_Common=Общие
|
||||||
|
OptForm_Tab_Interface=Интерфейс
|
||||||
|
OptForm_Tab_Packages=Пакеты
|
||||||
|
OptForm_Tab_About=О программе
|
||||||
|
|
||||||
|
;"Common" tab
|
||||||
|
; "OptForm_Grp_Lang / Language"
|
||||||
|
OptForm_Grp_Lang=Язык
|
||||||
|
OptForm_Lab_LangFileIs=Файл:
|
||||||
|
OptForm_Lab_LangNameIs=Язык:
|
||||||
|
OptForm_Lab_LangVerIs=Версия:
|
||||||
|
OptForm_Grp_Soft=Вкладка «Программы»
|
||||||
|
OptForm_Chb_ChkExitCodes=Немедленно сообщать о коде возврата <> 0
|
||||||
|
OptForm_Chb_ChkExitCodesHint=В случае завершения инсталлятора с кодом, отличным от нуля, вам предлагается прервать процесс установки программ
|
||||||
|
OptForm_Chb_DntUnChkItems=Не снимать отметку с чекбокса при коде возврата <> 0
|
||||||
|
OptForm_Chb_DntUnChkItemsHint=В последующем вы можете попробовать установить только те программы, установка которых не была завершена корректно
|
||||||
|
OptForm_Chb_ColorSoftTree=Раскрашивать список программ после установки
|
||||||
|
OptForm_Chb_ColorSoftTreeHint=После завершения процесса установки список программ будет раскрашен так: ошибка запуска — красный, код возврата <> 0 — синий
|
||||||
|
OptForm_Chb_ShowProgress=Отображать общий ход установки программ
|
||||||
|
OptForm_Chb_ShowProgressHint=Во время установки главное окно скроется и появится другое, с отображением общего хода установки. Иначе — главное окно не исчезнет, но заблокируется
|
||||||
|
OptForm_Chb_ExpandSoft=Раскрывать список программ после загрузки пакета
|
||||||
|
OptForm_Chb_ExpandSoftHint=
|
||||||
|
OptForm_Chb_QuietREG=Тихий импорт REG-файлов
|
||||||
|
OptForm_Chb_QuietREGHint=Когда до него дойдёт очередь, данные будут внесены без подтверждений
|
||||||
|
OptForm_Grp_Tools=Вкладка «Утилиты»
|
||||||
|
OptForm_Chb_HideOnTool=Скрыть главное окно ABTool при запуске утилиты
|
||||||
|
OptForm_Chb_HideOnToolHint=После запуска утилиты окно ABTool не будет мешать
|
||||||
|
OptForm_Chb_ExpandTools=Раскрывать список утилит после загрузки пакета
|
||||||
|
OptForm_Chb_ExpandToolsHint=
|
||||||
|
; "OptForm_Url_DownloadLangs / Download other languages"
|
||||||
|
OptForm_Url_DownloadLangs=Скачать другие языки
|
||||||
|
|
||||||
|
;"Interface" tab
|
||||||
|
OptForm_Chb_ShowLog=Показывать лог событий
|
||||||
|
OptForm_Chb_ShowLogHint=Лог выводится на дополнительную вкладку и содержит полный протокол событий
|
||||||
|
OptForm_Chb_DrawOutlines=Показывать линии при отрисовке списков
|
||||||
|
OptForm_Chb_DrawOutlinesHint=
|
||||||
|
OptForm_Chb_ScreenSnap=Прилипание окон к краям экрана
|
||||||
|
OptForm_Chb_ScreenSnapHint=
|
||||||
|
OptForm_Chb_OnTop=Поверх всех окон
|
||||||
|
OptForm_Chb_OnTopHint=
|
||||||
|
OptForm_Chb_ShowPkgDesc=Показывать описания пакетов
|
||||||
|
OptForm_Chb_ShowPkgDescHint=Действует как на вкладке установки, так и на вкладке утилит
|
||||||
|
OptForm_Chb_SrchVisible=Строка поиска всегда видна
|
||||||
|
OptForm_Chb_SrchVisibleHint=Действует как на вкладке установки, так и на вкладке утилит
|
||||||
|
OptForm_Chb_ScrollLog=Всегда прокручивать лог до конца
|
||||||
|
OptForm_Chb_ScrollLogHint=
|
||||||
|
OptForm_Grp_PkgSwitchMethod=Переключение между пакетами
|
||||||
|
OptForm_Rdb_PkgSwByMenu=Через меню над списками
|
||||||
|
OptForm_Rdb_PkgSwByMenuHint=Действует как на вкладке установки, так и на вкладке утилит
|
||||||
|
OptForm_Rdb_PkgSwByTabs=Отображать в виде закладок:
|
||||||
|
OptForm_Rdb_PkgSwByTabsHint=Действует как на вкладке установки, так и на вкладке утилит
|
||||||
|
OptForm_Chb_PkgSwShrinkTabs=Вмещать все (длинные названия будут укорочены)
|
||||||
|
OptForm_Chb_PkgSwShrinkTabsHint=Если выключено, все названия могут не поместиться в ширину панели закладок
|
||||||
|
OptForm_Cmb_PkgSwTabsPosHint=Выберите положение панели закладок
|
||||||
|
OptForm_Cmb_PkgSwTabsPosTop=Сверху
|
||||||
|
OptForm_Cmb_PkgSwTabsPosBottom=Снизу
|
||||||
|
OptForm_Cmb_PkgSwTabsPosLeft=Слева
|
||||||
|
OptForm_Cmb_PkgSwTabsPosRight=Справа
|
||||||
|
|
||||||
|
;"Packages" tab
|
||||||
|
OptForm_Grp_PkgSoft=Программы
|
||||||
|
OptForm_Grp_PkgTools=Утилиты
|
||||||
|
OptForm_Btn_BrowseUserSoftPkg=Выбор
|
||||||
|
OptForm_Btn_BrowseUserSoftPkgHint=Выбрать пользовательский пакет в отдельном окне
|
||||||
|
OptForm_Btn_ClearUserSoftPkgHint=Очистить поле
|
||||||
|
OptForm_Btn_OpenIniDir=Открыть папку ABTool_ini
|
||||||
|
OptForm_Btn_OpenIniDirHint=
|
||||||
|
OptForm_Grp_PkgInfo=Информация о пакете
|
||||||
|
OptForm_Lab_PkgNameIs=Название:
|
||||||
|
OptForm_Lab_PkgDescIs=Описание:
|
||||||
|
|
||||||
|
;"About" tab
|
||||||
|
OptForm_Lab_ABToolBuildIs=сборка
|
||||||
|
OptForm_Lab_WhatsNew=Что нового в этой версии:
|
||||||
|
OptForm_Url_ReportBug=Сообщить об ошибке
|
||||||
|
OptForm_Url_Help=Помощь
|
||||||
|
OptForm_Btn_CheckUpdates=Проверить обновления
|
||||||
|
OptForm_Btn_CheckingUpdates=ПОлучение информации...
|
||||||
|
|
||||||
|
;Other strings in this window
|
||||||
|
OptForm_Caption=Настройки ABTool
|
||||||
|
OptForm_Btn_ResetOptions=Сброс
|
||||||
|
OptForm_Btn_SaveOptions=Сохранить
|
||||||
|
OptForm_Btn_Close=Закрыть
|
||||||
|
|
||||||
|
[ProgressForm]
|
||||||
|
;
|
||||||
|
; Installation progress form
|
||||||
|
;
|
||||||
|
[ChoosePkgForm]
|
||||||
|
;
|
||||||
|
; Form to choose package
|
||||||
|
;
|
||||||
|
[Messages]
|
||||||
|
;
|
||||||
|
; Messages to show
|
||||||
|
;
|
||||||
|
[Log]
|
||||||
|
;
|
||||||
|
; Log messages
|
||||||
|
;
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
#
|
||||||
|
# ABTool v0.7.0
|
||||||
|
# Пакет программ для установки
|
||||||
|
#
|
||||||
|
# Секция [PackageInfo] содержит общую информацию о данном пакете:
|
||||||
|
# Name - Название пакета
|
||||||
|
# Description - Краткое описание пакета
|
||||||
|
#
|
||||||
|
# В квадратных скобках указывается название группы (например, антивирусы,
|
||||||
|
# проигрыватели и т.д.).
|
||||||
|
# Далее без кавычек указывается:
|
||||||
|
# "Название программы"="путь к файлу".
|
||||||
|
# Путь может начинаться с \ (если путь абсолютный; без буквы диска)
|
||||||
|
# или с \\ (если путь относителен ABTool.exe).
|
||||||
|
# Нельзя под один пункт указывать несколько команд.
|
||||||
|
# Можно указывать дополнительные ключи запуска.
|
||||||
|
# Во всех параметрах не должно быть разрывов строк.
|
||||||
|
#
|
||||||
|
#============================================================================
|
||||||
|
[PackageInfo]
|
||||||
|
Name=Пакет программ 1
|
||||||
|
Description=Пакет программ 1, используемый по умолчанию
|
||||||
|
[Группа 1]
|
||||||
|
Имя1=\\setup1.exe /ключ1 /ключ2
|
||||||
|
Имя2=\\папка_рядом_с_abtool.exe\setup2.exe
|
||||||
|
Имя3=\папка_в_корне_диска\setup3.exe
|
||||||
|
Имя4=\\setup1.exe /ключ1 /ключ2
|
||||||
|
Имя5=\\папка_рядом_с_abtool.exe\setup2.exe
|
||||||
|
Имя6=\папка_в_корне_диска\setup3.exe
|
||||||
|
[Группа 2]
|
||||||
|
Имя4=\\setup4.exe /ключ1
|
||||||
|
[Группа 3]
|
||||||
|
Имя5=\\setup5.exe
|
||||||
|
Имя6=\\setup6.exe /ключ1
|
||||||
|
[Группа 4]
|
||||||
|
Имя1=\\setup1.exe /ключ1 /ключ2
|
||||||
|
Имя2=\\папка_рядом_с_abtool.exe\setup2.exe
|
||||||
|
Имя3=\папка_в_корне_диска\setup3.exe
|
||||||
|
Имя4=\\setup1.exe /ключ1 /ключ2
|
||||||
|
Имя5=\\папка_рядом_с_abtool.exe\setup2.exe
|
||||||
|
Имя6=\папка_в_корне_диска\setup3.exe
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
#
|
||||||
|
# ABTool v0.7.0
|
||||||
|
# Пакет программ для установки
|
||||||
|
#
|
||||||
|
# Секция [PackageInfo] содержит общую информацию о данном пакете:
|
||||||
|
# Name - Название пакета
|
||||||
|
# Description - Краткое описание пакета
|
||||||
|
#
|
||||||
|
# В квадратных скобках указывается название группы (например, антивирусы,
|
||||||
|
# проигрыватели и т.д.).
|
||||||
|
# Далее без кавычек указывается:
|
||||||
|
# "Название программы"="путь к файлу".
|
||||||
|
# Путь может начинаться с \ (если путь абсолютный; без буквы диска)
|
||||||
|
# или с \\ (если путь относителен ABTool.exe).
|
||||||
|
# Нельзя под один пункт указывать несколько команд.
|
||||||
|
# Можно указывать дополнительные ключи запуска.
|
||||||
|
# Во всех параметрах не должно быть разрывов строк.
|
||||||
|
#
|
||||||
|
#============================================================================
|
||||||
|
[PackageInfo]
|
||||||
|
Name=Пакет программ 2
|
||||||
|
Description=Пакет программ 2, используемый по умолчанию
|
||||||
|
[Группа 1]
|
||||||
|
Имя1=\\setup1.exe /ключ1 /ключ2
|
||||||
|
Имя2=\\папка_рядом_с_abtool.exe\setup2.exe
|
||||||
|
Имя3=\папка_в_корне_диска\setup3.exe
|
||||||
|
Имя4=\\setup1.exe /ключ1 /ключ2
|
||||||
|
Имя5=\\папка_рядом_с_abtool.exe\setup2.exe
|
||||||
|
Имя6=\папка_в_корне_диска\setup3.exe
|
||||||
|
[Группа 2]
|
||||||
|
Имя4=\\setup4.exe /ключ1
|
||||||
|
[Группа 3]
|
||||||
|
Имя5=\\setup5.exe
|
||||||
|
Имя6=\\setup6.exe /ключ1
|
||||||
|
[Группа 4]
|
||||||
|
Имя1=\\setup1.exe /ключ1 /ключ2
|
||||||
|
Имя2=\\папка_рядом_с_abtool.exe\setup2.exe
|
||||||
|
Имя3=\папка_в_корне_диска\setup3.exe
|
||||||
|
Имя4=\\setup1.exe /ключ1 /ключ2
|
||||||
|
Имя5=\\папка_рядом_с_abtool.exe\setup2.exe
|
||||||
|
Имя6=\папка_в_корне_диска\setup3.exe
|
||||||
|
[Группа 5]
|
||||||
|
Имя4=\\setup4.exe /ключ1
|
||||||
|
[Группа 6]
|
||||||
|
Имя5=\\setup5.exe
|
||||||
|
Имя6=\\setup6.exe /ключ1
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
#
|
||||||
|
# ABTool v0.7.0
|
||||||
|
# Пакет программ для установки
|
||||||
|
#
|
||||||
|
# Секция [PackageInfo] содержит общую информацию о данном пакете:
|
||||||
|
# Name - Название пакета
|
||||||
|
# Description - Краткое описание пакета
|
||||||
|
#
|
||||||
|
# В квадратных скобках указывается название группы (например, антивирусы,
|
||||||
|
# проигрыватели и т.д.).
|
||||||
|
# Далее без кавычек указывается:
|
||||||
|
# "Название программы"="путь к файлу".
|
||||||
|
# Путь может начинаться с \ (если путь абсолютный; без буквы диска)
|
||||||
|
# или с \\ (если путь относителен ABTool.exe).
|
||||||
|
# Нельзя под один пункт указывать несколько команд.
|
||||||
|
# Можно указывать дополнительные ключи запуска.
|
||||||
|
# Во всех параметрах не должно быть разрывов строк.
|
||||||
|
#
|
||||||
|
#============================================================================
|
||||||
|
[PackageInfo]
|
||||||
|
Name=Пакет программ 3
|
||||||
|
Description=Пакет программ 3, используемый по умолчанию
|
||||||
|
[Группа 1]
|
||||||
|
Имя1=\\setup1.exe /ключ1 /ключ2
|
||||||
|
Имя2=\\папка_рядом_с_abtool.exe\setup2.exe
|
||||||
|
Имя3=\папка_в_корне_диска\setup3.exe
|
||||||
|
[Группа 2]
|
||||||
|
Имя4=\\setup4.exe /ключ1
|
||||||
|
[Группа 3]
|
||||||
|
Имя5=\\setup5.exe
|
||||||
|
Имя6=\\setup6.exe /ключ1
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
#
|
||||||
|
# ABTool v0.7.0
|
||||||
|
# Пакет программ для установки
|
||||||
|
#
|
||||||
|
# Секция [PackageInfo] содержит общую информацию о данном пакете:
|
||||||
|
# Name - Название пакета
|
||||||
|
# Description - Краткое описание пакета
|
||||||
|
#
|
||||||
|
# В квадратных скобках указывается название группы (например, антивирусы,
|
||||||
|
# проигрыватели и т.д.).
|
||||||
|
# Далее без кавычек указывается:
|
||||||
|
# "Название программы"="путь к файлу".
|
||||||
|
# Путь может начинаться с \ (если путь абсолютный; без буквы диска)
|
||||||
|
# или с \\ (если путь относителен ABTool.exe).
|
||||||
|
# Нельзя под один пункт указывать несколько команд.
|
||||||
|
# Можно указывать дополнительные ключи запуска.
|
||||||
|
# Во всех параметрах не должно быть разрывов строк.
|
||||||
|
#
|
||||||
|
#============================================================================
|
||||||
|
[PackageInfo]
|
||||||
|
Name=Пакет программ 4
|
||||||
|
Description=Пакет программ 4, используемый по умолчанию
|
||||||
|
[Группа 1]
|
||||||
|
Имя1=\\setup1.exe /ключ1 /ключ2
|
||||||
|
Имя2=\\папка_рядом_с_abtool.exe\setup2.exe
|
||||||
|
Имя3=\папка_в_корне_диска\setup3.exe
|
||||||
|
[Группа 2]
|
||||||
|
Имя4=\\setup4.exe /ключ1
|
||||||
|
[Группа 3]
|
||||||
|
Имя5=\\setup5.exe
|
||||||
|
Имя6=\\setup6.exe /ключ1
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
;
|
|
||||||
; ABTool v0.6.4
|
|
||||||
; Конфигурация пакетов программ для установки
|
|
||||||
;
|
|
||||||
; Секция [PackageInfo] содержит общую информацию о данном пакете.
|
|
||||||
;
|
|
||||||
; Name — Название пакета.
|
|
||||||
;
|
|
||||||
; Description — Краткое описание пакета. Здесь вы
|
|
||||||
; можете указать для чего этот пакет собран, в каких
|
|
||||||
; случаях его использовать и т.д. Только для вашего
|
|
||||||
; удобства и по вашему усмотрению.
|
|
||||||
; Не должно быть разрывов строк.
|
|
||||||
;
|
|
||||||
; Добавление программ в пакет
|
|
||||||
;
|
|
||||||
; В квадратных скобках указывается название группы (например, антивирусы,
|
|
||||||
; проигрыватели и т.д.). Далее без кавычек указывается:
|
|
||||||
; "Название программы"=\"путь к файлу".
|
|
||||||
; Путь может начинаться с \ (если путь абсолютный; без буквы диска)
|
|
||||||
; или с \\ (если путь относителен ABTool.exe).
|
|
||||||
; Нельзя под один чекбокс указывать несколько команд.
|
|
||||||
; Можно указывать дополнительные ключи запуска.
|
|
||||||
;
|
|
||||||
;============================================================================
|
|
||||||
[PackageInfo]
|
|
||||||
Name=Пакет по умолчанию
|
|
||||||
Description=Пакет программ, используемый по умолчанию
|
|
||||||
[Группа 1]
|
|
||||||
Имя1=\\setup1.exe /ключ1 /ключ2
|
|
||||||
Имя2=\\папка_рядом_с_abtool.exe\setup2.exe
|
|
||||||
Имя3=\папка_в_корне_диска\setup3.exe
|
|
||||||
[Группа 2]
|
|
||||||
Имя4=\\setup4.exe /ключ1
|
|
||||||
[Группа 3]
|
|
||||||
Имя5=\\setup5.exe
|
|
||||||
Имя6=\\setup6.exe /ключ1
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
;
|
|
||||||
; ABTool v0.6.4
|
|
||||||
; Конфигурация пакетов программ для установки
|
|
||||||
;
|
|
||||||
; Секция [PackageInfo] содержит общую информацию о данном пакете.
|
|
||||||
;
|
|
||||||
; Name — Название пакета.
|
|
||||||
;
|
|
||||||
; Description — Краткое описание пакета. Здесь вы
|
|
||||||
; можете указать для чего этот пакет собран, в каких
|
|
||||||
; случаях его использовать и т.д. Только для вашего
|
|
||||||
; удобства и по вашему усмотрению.
|
|
||||||
; Не должно быть разрывов строк.
|
|
||||||
;
|
|
||||||
; Добавление программ в пакет
|
|
||||||
;
|
|
||||||
; В квадратных скобках указывается название группы (например, антивирусы,
|
|
||||||
; проигрыватели и т.д.). Далее без кавычек указывается:
|
|
||||||
; "Название программы"=\"путь к файлу".
|
|
||||||
; Путь может начинаться с \ (если путь абсолютный; без буквы диска)
|
|
||||||
; или с \\ (если путь относителен ABTool.exe).
|
|
||||||
; Нельзя под один чекбокс указывать несколько команд.
|
|
||||||
; Можно указывать дополнительные ключи запуска.
|
|
||||||
;
|
|
||||||
;============================================================================
|
|
||||||
[PackageInfo]
|
|
||||||
Name=Пакет по умолчанию
|
|
||||||
Description=Пакет программ, используемый по умолчанию
|
|
||||||
[Группа 1]
|
|
||||||
Имя1=\\setup1.exe /ключ1 /ключ2
|
|
||||||
Имя2=\\папка_рядом_с_abtool.exe\setup2.exe
|
|
||||||
Имя3=\папка_в_корне_диска\setup3.exe
|
|
||||||
[Группа 2]
|
|
||||||
Имя4=\\setup4.exe /ключ1
|
|
||||||
[Группа 3]
|
|
||||||
Имя5=\\setup5.exe
|
|
||||||
Имя6=\\setup6.exe /ключ1
|
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
#
|
||||||
|
# ABTool v0.7.0
|
||||||
|
# Пакет утилит для запуска
|
||||||
|
#
|
||||||
|
# Секция [PackageInfo] содержит общую информацию о данном пакете:
|
||||||
|
# Name - Название пакета
|
||||||
|
# Description - Краткое описание пакета
|
||||||
|
#
|
||||||
|
# В квадратных скобках указывается название группы (например, антивирусы,
|
||||||
|
# проигрыватели и т.д.).
|
||||||
|
# Далее без кавычек указывается:
|
||||||
|
# "Название утилиты"="путь к файлу".
|
||||||
|
# Путь может начинаться с \ (если путь абсолютный; без буквы диска)
|
||||||
|
# или с \\ (если путь относителен ABTool.exe).
|
||||||
|
# Нельзя под один пункт указывать несколько команд.
|
||||||
|
# Можно указывать дополнительные ключи запуска.
|
||||||
|
# Во всех параметрах не должно быть разрывов строк.
|
||||||
|
#
|
||||||
|
#============================================================================
|
||||||
|
[PackageInfo]
|
||||||
|
Name=Пакет утилит 1
|
||||||
|
Description=Пакет утилит 1, используемый по умолчанию
|
||||||
|
[Группа 1]
|
||||||
|
Утилита 1=\\утилита1.exe /ключ1 /ключ2
|
||||||
|
Утилита 2=\\папка_рядом_с_abtool.exe\утилита2.exe
|
||||||
|
Утилита 3=\папка_в_корне_диска\утилита3.exe
|
||||||
|
Утилита 4=\\утилита4.exe /ключ1
|
||||||
|
[Группа 2]
|
||||||
|
Утилита 5=\\утилита5.exe
|
||||||
|
Утилита 6=\\утилита6.exe
|
||||||
|
[Группа 3]
|
||||||
|
Утилита 7=\\утилита7.exe /ключ1
|
||||||
|
Утилита 8=\\утилита8.exe
|
||||||
|
Утилита 9=\\утилита9.exe
|
||||||
|
Утилита 10=\\утилита10.exe /ключ1 /ключ2
|
||||||
|
Утилита 11=\\утилита11.exe
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
#
|
||||||
|
# ABTool v0.7.0
|
||||||
|
# Пакет утилит для запуска
|
||||||
|
#
|
||||||
|
# Секция [PackageInfo] содержит общую информацию о данном пакете:
|
||||||
|
# Name - Название пакета
|
||||||
|
# Description - Краткое описание пакета
|
||||||
|
#
|
||||||
|
# В квадратных скобках указывается название группы (например, антивирусы,
|
||||||
|
# проигрыватели и т.д.).
|
||||||
|
# Далее без кавычек указывается:
|
||||||
|
# "Название утилиты"="путь к файлу".
|
||||||
|
# Путь может начинаться с \ (если путь абсолютный; без буквы диска)
|
||||||
|
# или с \\ (если путь относителен ABTool.exe).
|
||||||
|
# Нельзя под один пункт указывать несколько команд.
|
||||||
|
# Можно указывать дополнительные ключи запуска.
|
||||||
|
# Во всех параметрах не должно быть разрывов строк.
|
||||||
|
#
|
||||||
|
#============================================================================
|
||||||
|
[PackageInfo]
|
||||||
|
Name=Пакет утилит 2
|
||||||
|
Description=Пакет утилит 2, используемый по умолчанию
|
||||||
|
[Группа 1]
|
||||||
|
Утилита 1=\\утилита1.exe /ключ1 /ключ2
|
||||||
|
Утилита 2=\\папка_рядом_с_abtool.exe\утилита2.exe
|
||||||
|
Утилита 3=\папка_в_корне_диска\утилита3.exe
|
||||||
|
Утилита 4=\\утилита4.exe /ключ1
|
||||||
|
[Группа 2]
|
||||||
|
Утилита 5=\\утилита5.exe
|
||||||
|
Утилита 6=\\утилита6.exe
|
||||||
|
[Группа 3]
|
||||||
|
Утилита 7=\\утилита7.exe /ключ1
|
||||||
|
Утилита 8=\\утилита8.exe
|
||||||
|
Утилита 9=\\утилита9.exe
|
||||||
|
Утилита 10=\\утилита10.exe /ключ1 /ключ2
|
||||||
|
Утилита 11=\\утилита11.exe
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
#
|
||||||
|
# ABTool v0.7.0
|
||||||
|
# Пакет утилит для запуска
|
||||||
|
#
|
||||||
|
# Секция [PackageInfo] содержит общую информацию о данном пакете:
|
||||||
|
# Name - Название пакета
|
||||||
|
# Description - Краткое описание пакета
|
||||||
|
#
|
||||||
|
# В квадратных скобках указывается название группы (например, антивирусы,
|
||||||
|
# проигрыватели и т.д.).
|
||||||
|
# Далее без кавычек указывается:
|
||||||
|
# "Название утилиты"="путь к файлу".
|
||||||
|
# Путь может начинаться с \ (если путь абсолютный; без буквы диска)
|
||||||
|
# или с \\ (если путь относителен ABTool.exe).
|
||||||
|
# Нельзя под один пункт указывать несколько команд.
|
||||||
|
# Можно указывать дополнительные ключи запуска.
|
||||||
|
# Во всех параметрах не должно быть разрывов строк.
|
||||||
|
#
|
||||||
|
#============================================================================
|
||||||
|
[PackageInfo]
|
||||||
|
Name=Пакет утилит 3
|
||||||
|
Description=Пакет утилит 3, используемый по умолчанию
|
||||||
|
[Группа 1]
|
||||||
|
Утилита 1=\\утилита1.exe /ключ1 /ключ2
|
||||||
|
Утилита 2=\\папка_рядом_с_abtool.exe\утилита2.exe
|
||||||
|
Утилита 3=\папка_в_корне_диска\утилита3.exe
|
||||||
|
Утилита 4=\\утилита4.exe /ключ1
|
||||||
|
[Группа 2]
|
||||||
|
Утилита 5=\\утилита5.exe
|
||||||
|
Утилита 6=\\утилита6.exe
|
||||||
|
[Группа 3]
|
||||||
|
Утилита 7=\\утилита7.exe /ключ1
|
||||||
|
Утилита 8=\\утилита8.exe
|
||||||
|
Утилита 9=\\утилита9.exe
|
||||||
|
Утилита 10=\\утилита10.exe /ключ1 /ключ2
|
||||||
|
Утилита 11=\\утилита11.exe
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
#
|
||||||
|
# ABTool v0.7.0
|
||||||
|
# Пакет утилит для запуска
|
||||||
|
#
|
||||||
|
# Секция [PackageInfo] содержит общую информацию о данном пакете:
|
||||||
|
# Name - Название пакета
|
||||||
|
# Description - Краткое описание пакета
|
||||||
|
#
|
||||||
|
# В квадратных скобках указывается название группы (например, антивирусы,
|
||||||
|
# проигрыватели и т.д.).
|
||||||
|
# Далее без кавычек указывается:
|
||||||
|
# "Название утилиты"="путь к файлу".
|
||||||
|
# Путь может начинаться с \ (если путь абсолютный; без буквы диска)
|
||||||
|
# или с \\ (если путь относителен ABTool.exe).
|
||||||
|
# Нельзя под один пункт указывать несколько команд.
|
||||||
|
# Можно указывать дополнительные ключи запуска.
|
||||||
|
# Во всех параметрах не должно быть разрывов строк.
|
||||||
|
#
|
||||||
|
#============================================================================
|
||||||
|
[PackageInfo]
|
||||||
|
Name=Пакет утилит 4
|
||||||
|
Description=Пакет утилит 4, используемый по умолчанию
|
||||||
|
[Группа 1]
|
||||||
|
Утилита 1=\\утилита1.exe /ключ1 /ключ2
|
||||||
|
Утилита 2=\\папка_рядом_с_abtool.exe\утилита2.exe
|
||||||
|
Утилита 3=\папка_в_корне_диска\утилита3.exe
|
||||||
|
Утилита 4=\\утилита4.exe /ключ1
|
||||||
|
[Группа 2]
|
||||||
|
Утилита 5=\\утилита5.exe
|
||||||
|
Утилита 6=\\утилита6.exe
|
||||||
|
[Группа 3]
|
||||||
|
Утилита 7=\\утилита7.exe /ключ1
|
||||||
|
Утилита 8=\\утилита8.exe
|
||||||
|
Утилита 9=\\утилита9.exe
|
||||||
|
Утилита 10=\\утилита10.exe /ключ1 /ключ2
|
||||||
|
Утилита 11=\\утилита11.exe
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
;
|
|
||||||
; ABTool v0.6.4
|
|
||||||
; Конфигурация пакетов утилит для запуска
|
|
||||||
;
|
|
||||||
; Секция [PackageInfo] содержит общую информацию о данном пакете.
|
|
||||||
;
|
|
||||||
; Name — Название пакета.
|
|
||||||
;
|
|
||||||
; Description — Краткое описание пакета. Здесь вы
|
|
||||||
; можете указать для чего этот пакет собран, в каких
|
|
||||||
; случаях его использовать и т.д. Только для вашего
|
|
||||||
; удобства и по вашему усмотрению.
|
|
||||||
; Не должно быть разрывов строк.
|
|
||||||
;
|
|
||||||
; Добавление утилит в пакет
|
|
||||||
;
|
|
||||||
; В квадратных скобках указывается название группы (например, антивирусы,
|
|
||||||
; проигрыватели и т.д.). Далее без кавычек указывается:
|
|
||||||
; "Название утилиты"="путь к файлу".
|
|
||||||
; Путь может начинаться с \ (если путь абсолютный; без буквы диска)
|
|
||||||
; или с \\ (если путь относителен ABTool.exe).
|
|
||||||
; Нельзя под один пункт указывать несколько команд.
|
|
||||||
; Можно указывать дополнительные ключи запуска.
|
|
||||||
;
|
|
||||||
;============================================================================
|
|
||||||
[PackageInfo]
|
|
||||||
Name=Пакет по умолчанию
|
|
||||||
Description=Пакет программ, используемый по умолчанию
|
|
||||||
[Группа 1]
|
|
||||||
Утилита 1=\\утилита1.exe /ключ1 /ключ2
|
|
||||||
Утилита 2=\\папка_рядом_с_abtool.exe\утилита2.exe
|
|
||||||
Утилита 3=\папка_в_корне_диска\утилита3.exe
|
|
||||||
Утилита 4=\\утилита4.exe /ключ1
|
|
||||||
[Группа 2]
|
|
||||||
Утилита 5=\\утилита5.exe
|
|
||||||
Утилита 6=\\утилита6.exe
|
|
||||||
[Группа 3]
|
|
||||||
Утилита 7=\\утилита7.exe /ключ1
|
|
||||||
Утилита 8=\\утилита8.exe
|
|
||||||
Утилита 9=\\утилита9.exe
|
|
||||||
Утилита 10=\\утилита10.exe /ключ1 /ключ2
|
|
||||||
Утилита 11=\\утилита11.exe
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
;
|
|
||||||
; ABTool v0.6.4
|
|
||||||
; Конфигурация пакетов утилит для запуска
|
|
||||||
;
|
|
||||||
; Секция [PackageInfo] содержит общую информацию о данном пакете.
|
|
||||||
;
|
|
||||||
; Name — Название пакета.
|
|
||||||
;
|
|
||||||
; Description — Краткое описание пакета. Здесь вы
|
|
||||||
; можете указать для чего этот пакет собран, в каких
|
|
||||||
; случаях его использовать и т.д. Только для вашего
|
|
||||||
; удобства и по вашему усмотрению.
|
|
||||||
; Не должно быть разрывов строк.
|
|
||||||
;
|
|
||||||
; Добавление утилит в пакет
|
|
||||||
;
|
|
||||||
; В квадратных скобках указывается название группы (например, антивирусы,
|
|
||||||
; проигрыватели и т.д.). Далее без кавычек указывается:
|
|
||||||
; "Название утилиты"="путь к файлу".
|
|
||||||
; Путь может начинаться с \ (если путь абсолютный; без буквы диска)
|
|
||||||
; или с \\ (если путь относителен ABTool.exe).
|
|
||||||
; Нельзя под один пункт указывать несколько команд.
|
|
||||||
; Можно указывать дополнительные ключи запуска.
|
|
||||||
;
|
|
||||||
;============================================================================
|
|
||||||
[PackageInfo]
|
|
||||||
Name=Пакет по умолчанию
|
|
||||||
Description=Пакет программ, используемый по умолчанию
|
|
||||||
[Группа 1]
|
|
||||||
Утилита 1=\\утилита1.exe /ключ1 /ключ2
|
|
||||||
Утилита 2=\\папка_рядом_с_abtool.exe\утилита2.exe
|
|
||||||
Утилита 3=\папка_в_корне_диска\утилита3.exe
|
|
||||||
Утилита 4=\\утилита4.exe /ключ1
|
|
||||||
[Группа 2]
|
|
||||||
Утилита 5=\\утилита5.exe
|
|
||||||
Утилита 6=\\утилита6.exe
|
|
||||||
[Группа 3]
|
|
||||||
Утилита 7=\\утилита7.exe /ключ1
|
|
||||||
Утилита 8=\\утилита8.exe
|
|
||||||
Утилита 9=\\утилита9.exe
|
|
||||||
Утилита 10=\\утилита10.exe /ключ1 /ключ2
|
|
||||||
Утилита 11=\\утилита11.exe
|
|
||||||
+14
-17
@@ -1,25 +1,22 @@
|
|||||||
[Options]
|
[Options]
|
||||||
|
Locale=
|
||||||
|
|
||||||
|
ScreenSnap=1
|
||||||
|
ShowPkgDesc=1
|
||||||
|
DrawOutlines=1
|
||||||
|
OnTop=0
|
||||||
|
|
||||||
ChkExitCodes=0
|
ChkExitCodes=0
|
||||||
DntUnChkItems=1
|
DntUnChkItems=1
|
||||||
ColorSoftTree=1
|
ColorSoftTree=1
|
||||||
ShowProgress=1
|
ShowProgress=1
|
||||||
ExpandSoft=1
|
|
||||||
QuietREG=0
|
QuietREG=0
|
||||||
|
ExpandSoft=1
|
||||||
|
|
||||||
HideOnTool=0
|
HideOnTool=0
|
||||||
ExpandTools=1
|
ExpandTools=1
|
||||||
ShowLog=1
|
|
||||||
DrawOutlines=1
|
Left=
|
||||||
ScreenSnap=1
|
Top=
|
||||||
OnTop=0
|
Width=
|
||||||
ShowPkgDesc=1
|
Height=
|
||||||
SrchVisible=0
|
|
||||||
[UserSoftPackages]
|
|
||||||
UserSoftPkg1=
|
|
||||||
UserSoftPkg2=
|
|
||||||
UserSoftPkg3=
|
|
||||||
LastUserSoftPkg=0
|
|
||||||
[UserToolPackages]
|
|
||||||
UserToolPkg1=
|
|
||||||
UserToolPkg2=
|
|
||||||
UserToolPkg3=
|
|
||||||
LastUserToolPkg=0
|
|
||||||
@@ -10,7 +10,7 @@ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR I
|
|||||||
|
|
||||||
Лицензия MIT
|
Лицензия MIT
|
||||||
|
|
||||||
Copyright (C) 2019 Аксенов Антон
|
Copyright (c) 2019 Аксенов Антон
|
||||||
|
|
||||||
Данная лицензия разрешает лицам, получившим копию данного программного обеспечения и сопутствующей документации (в дальнейшем именуемыми «Программное Обеспечение»), безвозмездно использовать Программное Обеспечение без ограничений, включая неограниченное право на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного Обеспечения, а также лицам, которым предоставляется данное Программное Обеспечение, при соблюдении следующих условий:
|
Данная лицензия разрешает лицам, получившим копию данного программного обеспечения и сопутствующей документации (в дальнейшем именуемыми «Программное Обеспечение»), безвозмездно использовать Программное Обеспечение без ограничений, включая неограниченное право на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного Обеспечения, а также лицам, которым предоставляется данное Программное Обеспечение, при соблюдении следующих условий:
|
||||||
|
|
||||||
|
|||||||
@@ -10,9 +10,18 @@ Homepage: [abtool.ru](http://abtool.ru/)
|
|||||||
|
|
||||||
Online help (only Russian for now, sorry): [abtool.ru/onlinehelp](http://abtool.ru/onlinehelp/)
|
Online help (only Russian for now, sorry): [abtool.ru/onlinehelp](http://abtool.ru/onlinehelp/)
|
||||||
|
|
||||||
|
## Requirements for development environment
|
||||||
|
|
||||||
|
* Windows OS (because ABTool is windows-only software)
|
||||||
|
* [Lazarus 1.8.4](https://www.lazarus-ide.org/) and newer
|
||||||
|
* [LCLextensions 0.6.1](/dependencies/lclextensions-0.6.1.zip) and newer
|
||||||
|
* [VirtualTreeView 5.5.3-R1](/dependencies/virtualtreeview-5.5.3-R1.zip) and newer
|
||||||
|
|
||||||
|
Porting to Delphi is welcome. You can create your fork of this repository for these purposes.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
This software is licensed under **The MIT License** (read [LICENSE](LICENSE) file).
|
This software is licensed under **[The MIT License](LICENSE)**.
|
||||||
|
|
||||||
This means that you can use, distribute, sell and change the program as you want, under the following conditions:
|
This means that you can use, distribute, sell and change the program as you want, under the following conditions:
|
||||||
* explicit indication of my authorship of the original project;
|
* explicit indication of my authorship of the original project;
|
||||||
@@ -43,6 +52,15 @@ So, I'd like to thank everybody listed and not listed here who made or keeps mak
|
|||||||
|
|
||||||
Онлайн справка: [abtool.ru/onlinehelp](http://abtool.ru/onlinehelp/)
|
Онлайн справка: [abtool.ru/onlinehelp](http://abtool.ru/onlinehelp/)
|
||||||
|
|
||||||
|
## Требования к среде разработки
|
||||||
|
|
||||||
|
* Windows OS (потому что ABTool предназначена только для Windows)
|
||||||
|
* [Lazarus 1.8.4](https://www.lazarus-ide.org/) и новее
|
||||||
|
* [LCLextensions 0.6.1](/dependencies/lclextensions-0.6.1.zip) и новее
|
||||||
|
* [VirtualTreeView 5.5.3-R1](/dependencies/virtualtreeview-5.5.3-R1.zip) и новее
|
||||||
|
|
||||||
|
Приветствуется портирование под Delphi. Можете создать свой форк этого репозитория для этих целей.
|
||||||
|
|
||||||
## Лицензия
|
## Лицензия
|
||||||
|
|
||||||
Эта программа распространяется под **[Лицензией MIT](LICENSE)**.
|
Эта программа распространяется под **[Лицензией MIT](LICENSE)**.
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
object MainDM: TMainDM
|
object dmMain: TdmMain
|
||||||
|
OnCreate = DataModuleCreate
|
||||||
OldCreateOrder = False
|
OldCreateOrder = False
|
||||||
Height = 84
|
Height = 84
|
||||||
HorizontalOffset = 313
|
HorizontalOffset = 301
|
||||||
VerticalOffset = 612
|
VerticalOffset = 612
|
||||||
Width = 717
|
Width = 810
|
||||||
PPI = 96
|
PPI = 96
|
||||||
object imgIcons: TImageList
|
object imgIcons: TImageList
|
||||||
left = 32
|
left = 32
|
||||||
@@ -3627,6 +3628,8 @@ object MainDM: TMainDM
|
|||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
}
|
}
|
||||||
ImageIndex = 21
|
ImageIndex = 21
|
||||||
|
ShortCut = 24614
|
||||||
|
OnClick = mbCollapseTreeClick
|
||||||
end
|
end
|
||||||
object mbExpandTree: TMenuItem
|
object mbExpandTree: TMenuItem
|
||||||
Caption = 'Развернуть'
|
Caption = 'Развернуть'
|
||||||
@@ -3667,6 +3670,53 @@ object MainDM: TMainDM
|
|||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
}
|
}
|
||||||
ImageIndex = 22
|
ImageIndex = 22
|
||||||
|
ShortCut = 24616
|
||||||
|
OnClick = mbExpandTreeClick
|
||||||
|
end
|
||||||
|
object MenuItem1: TMenuItem
|
||||||
|
Caption = '-'
|
||||||
|
end
|
||||||
|
object mbRefresh: TMenuItem
|
||||||
|
Caption = 'Обновить'
|
||||||
|
Bitmap.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00994E
|
||||||
|
0399994E035C9B500400994E031A984D026C984D02A6984D02CC984D02C1984D
|
||||||
|
028C984D024D994E03109C510500A2570A00A65B0D00FFFFFF00FFFFFF009C51
|
||||||
|
05CC9C5105CC9C510585A35806BFC8841AE3EAA71FF5FCB920FFFCB920F1EAA6
|
||||||
|
1FCFC78219A6A35909789D520622A2570A00A65B0D00FFFFFF00FFFFFF00A257
|
||||||
|
0ACCF9BF40FFA2570ACCF7B52AFFF6B01CFFF7B11EFFF8B527FFF8B527F1F7B1
|
||||||
|
1ED6F6B01CB4F8BA3490AB62105FA3580B19A65B0D00FFFFFF00FFFFFF00A85D
|
||||||
|
0ECCF2B339FFF3B844FFEEA824FFF2B339FFC37E23DCA85D0ECCA85D0EC1C27E
|
||||||
|
22BAE7A937B2EFAB2A90F3B8436DAD631243A95E0F06FFFFFF00FFFFFF00AF64
|
||||||
|
14CCECB149FFE6A334FFEEB752FFAF6414CCAF641494AD621200AA5F0F00AE63
|
||||||
|
134AAF641488E4A74491E8A83B6DCA88314EAF641419FFFFFF00FFFFFF00B66B
|
||||||
|
19CCEBB861FFE7B057FFE7B057FFEEBF6AFFB66B19CCB76C1A5CB56A1800AF64
|
||||||
|
1400B56A1932C7843178E3A84E6CDCA24C54B66B1925FFFFFF00FFFFFF00BD72
|
||||||
|
1E99BE731FCCBE731FCCBE731FCCBE731FCCBE731FCCBD721E99C0752000C378
|
||||||
|
2300BD721E00BE731F33E5B06140E7B4663FBD721E20FFFFFF00FFFFFF00C67B
|
||||||
|
2620E8B86F3FE6B46C40C57A2533C2782200BF752000C1762100C67B2699C57A
|
||||||
|
25CCC57A25CCC57A25CCC57A25CCC57A25CCC67B2699FFFFFF00FFFFFF00CD82
|
||||||
|
2A25E6B16654E8B5706CD8984478CE832B32CF842C00CB802800CC81295CCD82
|
||||||
|
2ACCF3CD84FFECBD77FFECBD77FFF0C57EFFCD822ACCFFFFFF00FFFFFF00D489
|
||||||
|
3019E2A7554EEDBC766DEEBE7491D4893088D58A314AD98E3300D3882F00D489
|
||||||
|
3094D48930CCF4CD84FFEAB772FFF1C67EFFD48930CCFFFFFF00FFFFFF00DA8F
|
||||||
|
3406DD943A43F8D2896DF4C57D90F4C77AB2E5A852BADB9034C1DB9034CCE5A8
|
||||||
|
52DCF7CD85FFF2C27AFFF8D389FFF7CD85FFDB9034CCFFFFFF00FFFFFF00DC91
|
||||||
|
3500E0953919E49E435FFCD88D90FACF85B4FBD086D6FCD489F1FCD489FFFBD0
|
||||||
|
86FFFACF85FFFBD389FFE19639CCFEDD92FFE19639CCFFFFFF00FFFFFF00DC91
|
||||||
|
3500E1963900E59A3D22E79F4378F1B964A6FACF80CFFEDA8EF1FEDA8EFFFACF
|
||||||
|
81F5F1BB65E3E79E42BFE59A3D85E59A3DCCE59A3DCCFFFFFF00FFFFFF00DC91
|
||||||
|
3500E1963900E59A3D00E89D3F10E99E404DE99E408CE99E40C1E99E40CCE99E
|
||||||
|
40A6E99E406CE89D3F1AE69B3D00E99E405CE99E4099FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
|
}
|
||||||
|
ImageIndex = 16
|
||||||
|
ShortCut = 16466
|
||||||
|
OnClick = mbRefreshClick
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object mbCheck: TMenuItem
|
object mbCheck: TMenuItem
|
||||||
@@ -3710,6 +3760,8 @@ object MainDM: TMainDM
|
|||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
}
|
}
|
||||||
ImageIndex = 95
|
ImageIndex = 95
|
||||||
|
ShortCut = 16449
|
||||||
|
OnClick = mbCheckAllClick
|
||||||
end
|
end
|
||||||
object mbCheckInvert: TMenuItem
|
object mbCheckInvert: TMenuItem
|
||||||
Caption = 'Инвертировать'
|
Caption = 'Инвертировать'
|
||||||
@@ -3790,11 +3842,13 @@ object MainDM: TMainDM
|
|||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
}
|
}
|
||||||
ImageIndex = 96
|
ImageIndex = 96
|
||||||
|
ShortCut = 24641
|
||||||
|
OnClick = mbCheckNoneClick
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object mbOptions: TMenuItem
|
object mbOptions: TMenuItem
|
||||||
Caption = 'Настройки'
|
Caption = 'Настройки'
|
||||||
object mbOptonsMain: TMenuItem
|
object mbOptionsMain: TMenuItem
|
||||||
Caption = 'Основные...'
|
Caption = 'Основные...'
|
||||||
Bitmap.Data = {
|
Bitmap.Data = {
|
||||||
36040000424D3604000000000000360000002800000010000000100000000100
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
@@ -3833,6 +3887,7 @@ object MainDM: TMainDM
|
|||||||
BF63FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
BF63FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
}
|
}
|
||||||
ImageIndex = 4
|
ImageIndex = 4
|
||||||
|
OnClick = mbOptionsMainClick
|
||||||
end
|
end
|
||||||
object mbOptionsPkg: TMenuItem
|
object mbOptionsPkg: TMenuItem
|
||||||
Caption = 'Управление пакетами...'
|
Caption = 'Управление пакетами...'
|
||||||
@@ -3873,6 +3928,7 @@ object MainDM: TMainDM
|
|||||||
D631FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
D631FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
}
|
}
|
||||||
ImageIndex = 103
|
ImageIndex = 103
|
||||||
|
OnClick = mbOptionsPkgClick
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object mbHelp: TMenuItem
|
object mbHelp: TMenuItem
|
||||||
@@ -3917,6 +3973,7 @@ object MainDM: TMainDM
|
|||||||
}
|
}
|
||||||
Hint = 'Откроется в браузере по умолчанию'
|
Hint = 'Откроется в браузере по умолчанию'
|
||||||
ImageIndex = 61
|
ImageIndex = 61
|
||||||
|
ShortCut = 112
|
||||||
end
|
end
|
||||||
object mbAbout: TMenuItem
|
object mbAbout: TMenuItem
|
||||||
Caption = 'О программе...'
|
Caption = 'О программе...'
|
||||||
@@ -3957,6 +4014,7 @@ object MainDM: TMainDM
|
|||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
}
|
}
|
||||||
ImageIndex = 56
|
ImageIndex = 56
|
||||||
|
OnClick = mbAboutClick
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -5,14 +5,17 @@ unit dMain;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, FileUtil, Controls, Menus;
|
Classes, SysUtils, FileUtil, Controls, Menus, Forms, PopupNotifier, Dialogs,
|
||||||
|
VirtualTrees, uPackage, uPackageList, fOptions, uOptions;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
{ TMainDM }
|
{ TdmMain }
|
||||||
|
|
||||||
TMainDM = class(TDataModule)
|
TdmMain = class(TDataModule)
|
||||||
imgIcons: TImageList;
|
imgIcons: TImageList;
|
||||||
|
mbRefresh: TMenuItem;
|
||||||
|
MenuItem1: TMenuItem;
|
||||||
mmMain: TMainMenu;
|
mmMain: TMainMenu;
|
||||||
mbInstallCheckAll: TMenuItem;
|
mbInstallCheckAll: TMenuItem;
|
||||||
mbInstallExpandTree: TMenuItem;
|
mbInstallExpandTree: TMenuItem;
|
||||||
@@ -30,25 +33,243 @@ type
|
|||||||
mbHelp: TMenuItem;
|
mbHelp: TMenuItem;
|
||||||
mbOnlineHelp: TMenuItem;
|
mbOnlineHelp: TMenuItem;
|
||||||
mbAbout: TMenuItem;
|
mbAbout: TMenuItem;
|
||||||
mbOptonsMain: TMenuItem;
|
mbOptionsMain: TMenuItem;
|
||||||
mbOptionsPkg: TMenuItem;
|
mbOptionsPkg: TMenuItem;
|
||||||
pmInstallTree: TPopupMenu;
|
pmInstallTree: TPopupMenu;
|
||||||
pmInstallCheck: TPopupMenu;
|
pmInstallCheck: TPopupMenu;
|
||||||
|
procedure DataModuleCreate(Sender: TObject);
|
||||||
|
procedure mbAboutClick(Sender: TObject);
|
||||||
|
procedure mbCheckAllClick(Sender: TObject);
|
||||||
|
procedure mbCheckNoneClick(Sender: TObject);
|
||||||
|
procedure mbCollapseTreeClick(Sender: TObject);
|
||||||
|
procedure mbExpandTreeClick(Sender: TObject);
|
||||||
|
procedure mbOptionsMainClick(Sender: TObject);
|
||||||
|
procedure mbOptionsPkgClick(Sender: TObject);
|
||||||
|
procedure mbRefreshClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
|
// Форма настроек
|
||||||
|
fmOptions: TfmOptions;
|
||||||
|
// Подготовка директорий
|
||||||
|
procedure PrepareDirs();
|
||||||
|
// Подготовка списков пакетов
|
||||||
|
procedure PreparePackageLists();
|
||||||
public
|
public
|
||||||
|
// путь к файлу ABTool.exe
|
||||||
|
ABToolExePath: String;
|
||||||
|
// путь к директории ABTool
|
||||||
|
ABToolDataPath: String;
|
||||||
|
// путь к директории ABTool\Packages
|
||||||
|
ABToolPkgPath: String;
|
||||||
|
// путь к директории ABTool\Languages
|
||||||
|
ABToolLangPath: String;
|
||||||
|
// путь к директории ABTool\Logs
|
||||||
|
ABToolLogPath: String;
|
||||||
|
// Список объектов пакетов программ для установки
|
||||||
|
SoftPackages: TPackageList;
|
||||||
|
// Список объектов пакетов утилит для запуска
|
||||||
|
ToolsPackages: TPackageList;
|
||||||
|
// Установка состояния отметки для всех корневых нод указанного дерева
|
||||||
|
procedure SetVSTCheckState(AVST: TBaseVirtualTree; AState: boolean);
|
||||||
|
// Показ формы настроек на указанной странице и возврат модального результата
|
||||||
|
function CallOptionsForm(APageIndex: byte = 0): TModalResult;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
MainDM: TMainDM;
|
dmMain: TdmMain;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
uses fMain;
|
||||||
|
|
||||||
{$R *.lfm}
|
{$R *.lfm}
|
||||||
|
|
||||||
{ TMainDM }
|
{ TdmMain }
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Конструктор: TdmMain.Create()
|
||||||
|
Назначение: Создание датамодуля, подготовка путей и списков пакетов
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TdmMain.DataModuleCreate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
PrepareDirs();
|
||||||
|
PreparePackageLists();
|
||||||
|
TOptions.Create(dmMain.ABToolDataPath + '\abtool.ini');
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Конструктор: TdmMain.SetVSTCheckState()
|
||||||
|
Назначение: Установка состояния отметки для всех корневых нод указанного дерева
|
||||||
|
Вх. параметры:
|
||||||
|
AVST: TBaseVirtualTree - дерево
|
||||||
|
AState: boolean - состояние отметок: TRUE выбрать все, FALSE снять выбор со всех
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TdmMain.SetVSTCheckState(AVST: TBaseVirtualTree; AState: boolean);
|
||||||
|
var
|
||||||
|
Node: PVirtualNode;
|
||||||
|
|
||||||
|
// Установка состояния отметки ноды-родителя дочерним нодам
|
||||||
|
procedure CheckChildNodes(ANode: PVirtualNode);
|
||||||
|
var
|
||||||
|
ChildNode: PVirtualNode;
|
||||||
|
begin
|
||||||
|
ChildNode := AVST.GetFirstChild(ANode);
|
||||||
|
while Assigned(ChildNode) do
|
||||||
|
begin
|
||||||
|
CheckChildNodes(ChildNode);
|
||||||
|
ChildNode^.CheckState := ChildNode^.Parent^.CheckState;
|
||||||
|
ChildNode := AVST.GetNextSibling(ChildNode);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
begin
|
||||||
|
AVST.BeginUpdate;
|
||||||
|
try
|
||||||
|
Node := AVST.GetFirst;
|
||||||
|
while Assigned(Node) do
|
||||||
|
begin
|
||||||
|
if AState = true then
|
||||||
|
Node^.CheckState := csCheckedNormal
|
||||||
|
else
|
||||||
|
Node^.CheckState := csUncheckedNormal;
|
||||||
|
CheckChildNodes(Node);
|
||||||
|
Node := AVST.GetNextSibling(Node);
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
AVST.EndUpdate;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Конструктор: TdmMain.mbCheckAllClick()
|
||||||
|
Назначение: Обработка клика п. меню "Выбрать всё"
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TdmMain.mbCheckAllClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
SetVSTCheckState(fmMain.vstSoftPkgContents, true);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Конструктор: TdmMain.mbCheckNoneClick()
|
||||||
|
Назначение: Обработка клика п. меню "Снять выбор"
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TdmMain.mbCheckNoneClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
SetVSTCheckState(fmMain.vstSoftPkgContents, false);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TdmMain.mbCollapseTreeClick()
|
||||||
|
Назначение: Сворачивание дерева на активной вкладке главного окна
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TdmMain.mbCollapseTreeClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
case (fmMain.PageControl.ActivePageIndex) of
|
||||||
|
0: fmMain.vstSoftPkgContents.FullCollapse();
|
||||||
|
1: fmMain.vstToolsPkgContents.FullCollapse();
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TdmMain.mbCollapseTreeClick()
|
||||||
|
Назначение: Разворачивание дерева на активной вкладке главного окна
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TdmMain.mbExpandTreeClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
case (fmMain.PageControl.ActivePageIndex) of
|
||||||
|
0: fmMain.vstSoftPkgContents.FullExpand();
|
||||||
|
1: fmMain.vstToolsPkgContents.FullExpand();
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TdmMain.mbRefreshClick()
|
||||||
|
Назначение: Обновление списка пакетов и дерева на активной вкладке главного окна
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TdmMain.mbRefreshClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
case (fmMain.PageControl.ActivePageIndex) of
|
||||||
|
0: fmMain.btnSoftPkgReload.Click;
|
||||||
|
1: fmMain.btnToolsPkgReload.Click;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TdmMain.PrepareDirs()
|
||||||
|
Назначение: Подготовка директорий
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TdmMain.PrepareDirs();
|
||||||
|
begin
|
||||||
|
ABToolExePath := ExtractFilePath(ParamStr(0));
|
||||||
|
ABToolDataPath := ABToolExePath + 'ABTool\';
|
||||||
|
ABToolPkgPath := ABToolDataPath + 'Packages\';
|
||||||
|
ABToolLangPath := ABToolDataPath + 'Languages\';
|
||||||
|
ABToolLogPath := ABToolDataPath + 'Logs\';
|
||||||
|
if not DirectoryExists(ABToolPkgPath) then
|
||||||
|
ForceDirectories(ABToolPkgPath);
|
||||||
|
if not DirectoryExists(ABToolLangPath) then
|
||||||
|
ForceDirectories(ABToolLangPath);
|
||||||
|
if not DirectoryExists(ABToolLogPath) then
|
||||||
|
ForceDirectories(ABToolLogPath);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TdmMain.PreparePackageLists()
|
||||||
|
Назначение: Подготовка списков пакетов
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TdmMain.PreparePackageLists();
|
||||||
|
begin
|
||||||
|
SoftPackages := TPackageList.Create;
|
||||||
|
SoftPackages.Load(ptSoft);
|
||||||
|
ToolsPackages := TPackageList.Create;
|
||||||
|
ToolsPackages.Load(ptTools);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Функция: TdmMain.CallOptionsForm()
|
||||||
|
Назначение: Показ формы настроек на указанной странице и возврат модального
|
||||||
|
результата
|
||||||
|
Возвращает: TModalResult
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function TdmMain.CallOptionsForm(APageIndex: byte = 0): TModalResult;
|
||||||
|
begin
|
||||||
|
if fmOptions = nil then
|
||||||
|
fmOptions := TfmOptions.Create(fmMain);
|
||||||
|
fmOptions.PageControl.ActivePageIndex := APageIndex;
|
||||||
|
Result := fmOptions.ShowModal;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TdmMain.mbOptionsMainClick()
|
||||||
|
Назначение: Обработка клика п. меню "Настройки - Основные..."
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TdmMain.mbOptionsMainClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
CallOptionsForm;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TdmMain.mbOptionsPkgClick()
|
||||||
|
Назначение: Обработка клика п. меню "Настройки - Управление пакетами..."
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TdmMain.mbOptionsPkgClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
case CallOptionsForm(1) of
|
||||||
|
mrOK: ;//ShowMessage('mrOK');
|
||||||
|
mrClose: ;//ShowMessage('mrClose');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TdmMain.mbAboutClick()
|
||||||
|
Назначение: Обработка клика п. меню "Помощь - О программе..."
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TdmMain.mbAboutClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
case CallOptionsForm(2) of
|
||||||
|
mrOK: ;//ShowMessage('mrOK');
|
||||||
|
mrClose: ;//ShowMessage('mrClose');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
object fmMain: TfmMain
|
object fmMain: TfmMain
|
||||||
Left = 309
|
Left = 1513
|
||||||
Height = 450
|
Height = 450
|
||||||
Top = 88
|
Top = 182
|
||||||
Width = 350
|
Width = 350
|
||||||
BorderStyle = bsSingle
|
BorderIcons = [biSystemMenu, biMinimize]
|
||||||
Caption = 'ABTool'
|
Caption = 'ABTool'
|
||||||
ClientHeight = 430
|
ClientHeight = 430
|
||||||
ClientWidth = 350
|
ClientWidth = 350
|
||||||
Constraints.MaxHeight = 450
|
Constraints.MaxHeight = 500
|
||||||
Constraints.MaxWidth = 350
|
Constraints.MaxWidth = 400
|
||||||
Constraints.MinHeight = 450
|
Constraints.MinHeight = 450
|
||||||
Constraints.MinWidth = 350
|
Constraints.MinWidth = 350
|
||||||
Font.CharSet = RUSSIAN_CHARSET
|
Font.CharSet = RUSSIAN_CHARSET
|
||||||
Font.Height = -11
|
Font.Height = -11
|
||||||
Font.Name = 'Microsoft Sans Serif'
|
Font.Name = 'Tahoma'
|
||||||
Font.Pitch = fpVariable
|
Font.Pitch = fpVariable
|
||||||
Font.Quality = fqDraft
|
Font.Quality = fqDraft
|
||||||
Icon.Data = {
|
Icon.Data = {
|
||||||
@@ -3210,7 +3210,7 @@ object fmMain: TfmMain
|
|||||||
71FE000F5EFF000773FE000387FE800176FD80002DC38001693C0003D1190007
|
71FE000F5EFF000773FE000387FE800176FD80002DC38001693C0003D1190007
|
||||||
36A3800F57F7800F8AFFC00F76FFC01F8BFFE03FBEFFF47FBDFF
|
36A3800F57F7800F8AFFC00F76FFC01F8BFFE03FBEFFF47FBDFF
|
||||||
}
|
}
|
||||||
Menu = MainDM.mmMain
|
Menu = dmMain.mmMain
|
||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
Position = poScreenCenter
|
Position = poScreenCenter
|
||||||
ShowHint = True
|
ShowHint = True
|
||||||
@@ -3222,45 +3222,50 @@ object fmMain: TfmMain
|
|||||||
Width = 350
|
Width = 350
|
||||||
ActivePage = tabSoft
|
ActivePage = tabSoft
|
||||||
Align = alClient
|
Align = alClient
|
||||||
Images = MainDM.imgIcons
|
|
||||||
TabHeight = 20
|
|
||||||
TabIndex = 0
|
TabIndex = 0
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
|
TabWidth = 86
|
||||||
|
OnChange = PageControlChange
|
||||||
object tabSoft: TTabSheet
|
object tabSoft: TTabSheet
|
||||||
Caption = 'Установка'
|
Caption = 'Установка'
|
||||||
ClientHeight = 402
|
ClientHeight = 404
|
||||||
ClientWidth = 342
|
ClientWidth = 342
|
||||||
ImageIndex = 104
|
ImageIndex = 104
|
||||||
object vstSoftPkgContents: TVirtualStringTree
|
object vstSoftPkgContents: TVirtualStringTree
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 297
|
Height = 301
|
||||||
Top = 64
|
Top = 62
|
||||||
Width = 342
|
Width = 342
|
||||||
Align = alClient
|
Align = alClient
|
||||||
BorderSpacing.Bottom = 3
|
BorderSpacing.Bottom = 3
|
||||||
BorderStyle = bsNone
|
BorderStyle = bsNone
|
||||||
CheckImageKind = ckDarkCheck
|
DefaultText = 'Программа'
|
||||||
DefaultText = 'Node'
|
DragOperations = []
|
||||||
Header.AutoSizeIndex = 0
|
Header.AutoSizeIndex = -1
|
||||||
Header.Columns = <>
|
Header.Columns = <>
|
||||||
Header.MainColumn = -1
|
Header.MainColumn = -1
|
||||||
|
IncrementalSearch = isVisibleOnly
|
||||||
|
IncrementalSearchStart = ssAlwaysStartOver
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
|
TreeOptions.AutoOptions = [toAutoDropExpand, toAutoExpand, toAutoScrollOnExpand, toAutoSort, toAutoTristateTracking, toAutoDeleteMovedNodes, toAutoChangeScale]
|
||||||
TreeOptions.MiscOptions = [toAcceptOLEDrop, toCheckSupport, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning, toEditOnClick]
|
TreeOptions.MiscOptions = [toAcceptOLEDrop, toCheckSupport, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning, toEditOnClick]
|
||||||
|
OnGetText = vstSoftPkgContentsGetText
|
||||||
|
OnInitNode = vstSoftPkgContentsInitNode
|
||||||
end
|
end
|
||||||
object pnSoftTop: TPanel
|
object pnSoftTop: TPanel
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 25
|
Height = 23
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 342
|
Width = 342
|
||||||
Align = alTop
|
Align = alTop
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
ClientHeight = 25
|
ClientHeight = 23
|
||||||
ClientWidth = 342
|
ClientWidth = 342
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
object cmbSoftPkgSelect: TComboBox
|
object cmbSoftPkgSelect: TComboBox
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 23
|
Height = 21
|
||||||
Top = 2
|
Top = 2
|
||||||
Width = 289
|
Width = 289
|
||||||
Align = alClient
|
Align = alClient
|
||||||
@@ -3268,12 +3273,13 @@ object fmMain: TfmMain
|
|||||||
BorderSpacing.Top = 2
|
BorderSpacing.Top = 2
|
||||||
BorderSpacing.Right = 1
|
BorderSpacing.Right = 1
|
||||||
ItemHeight = 13
|
ItemHeight = 13
|
||||||
|
OnChange = cmbSoftPkgSelectChange
|
||||||
Style = csDropDownList
|
Style = csDropDownList
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
end
|
end
|
||||||
object btnSoftPkgEdit: TSpeedButton
|
object btnSoftPkgEdit: TSpeedButton
|
||||||
Left = 316
|
Left = 316
|
||||||
Height = 25
|
Height = 23
|
||||||
Hint = 'Редактировать пакет'
|
Hint = 'Редактировать пакет'
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 26
|
Width = 26
|
||||||
@@ -3319,7 +3325,7 @@ object fmMain: TfmMain
|
|||||||
end
|
end
|
||||||
object btnSoftPkgReload: TSpeedButton
|
object btnSoftPkgReload: TSpeedButton
|
||||||
Left = 290
|
Left = 290
|
||||||
Height = 25
|
Height = 23
|
||||||
Hint = 'Перезагрузить пакет'
|
Hint = 'Перезагрузить пакет'
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 26
|
Width = 26
|
||||||
@@ -3366,7 +3372,7 @@ object fmMain: TfmMain
|
|||||||
object labSoftPkgDescription: TLabel
|
object labSoftPkgDescription: TLabel
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 13
|
Height = 13
|
||||||
Top = 48
|
Top = 46
|
||||||
Width = 342
|
Width = 342
|
||||||
Align = alTop
|
Align = alTop
|
||||||
BorderSpacing.Bottom = 3
|
BorderSpacing.Bottom = 3
|
||||||
@@ -3377,7 +3383,7 @@ object fmMain: TfmMain
|
|||||||
object edSoftSearch: TEdit
|
object edSoftSearch: TEdit
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 13
|
Height = 13
|
||||||
Top = 30
|
Top = 28
|
||||||
Width = 342
|
Width = 342
|
||||||
Align = alTop
|
Align = alTop
|
||||||
BorderSpacing.Top = 5
|
BorderSpacing.Top = 5
|
||||||
@@ -3389,13 +3395,13 @@ object fmMain: TfmMain
|
|||||||
object btnSoftStart: TButton
|
object btnSoftStart: TButton
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 38
|
Height = 38
|
||||||
Top = 364
|
Top = 366
|
||||||
Width = 342
|
Width = 342
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
Caption = 'Приступить к установке'
|
Caption = 'Приступить к установке'
|
||||||
Font.CharSet = RUSSIAN_CHARSET
|
Font.CharSet = RUSSIAN_CHARSET
|
||||||
Font.Height = -16
|
Font.Height = -16
|
||||||
Font.Name = 'Microsoft Sans Serif'
|
Font.Name = 'Tahoma'
|
||||||
Font.Pitch = fpVariable
|
Font.Pitch = fpVariable
|
||||||
Font.Quality = fqDraft
|
Font.Quality = fqDraft
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
@@ -3404,7 +3410,7 @@ object fmMain: TfmMain
|
|||||||
end
|
end
|
||||||
object tabTools: TTabSheet
|
object tabTools: TTabSheet
|
||||||
Caption = 'Утилиты'
|
Caption = 'Утилиты'
|
||||||
ClientHeight = 402
|
ClientHeight = 400
|
||||||
ClientWidth = 342
|
ClientWidth = 342
|
||||||
ImageIndex = 62
|
ImageIndex = 62
|
||||||
object edToolsSearch: TEdit
|
object edToolsSearch: TEdit
|
||||||
@@ -3432,7 +3438,7 @@ object fmMain: TfmMain
|
|||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
object cmbToolsPkgSelect: TComboBox
|
object cmbToolsPkgSelect: TComboBox
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 23
|
Height = 21
|
||||||
Top = 2
|
Top = 2
|
||||||
Width = 289
|
Width = 289
|
||||||
Align = alClient
|
Align = alClient
|
||||||
@@ -3440,6 +3446,7 @@ object fmMain: TfmMain
|
|||||||
BorderSpacing.Top = 2
|
BorderSpacing.Top = 2
|
||||||
BorderSpacing.Right = 1
|
BorderSpacing.Right = 1
|
||||||
ItemHeight = 13
|
ItemHeight = 13
|
||||||
|
OnChange = cmbToolsPkgSelectChange
|
||||||
Style = csDropDownList
|
Style = csDropDownList
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
end
|
end
|
||||||
@@ -3532,23 +3539,9 @@ object fmMain: TfmMain
|
|||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
}
|
}
|
||||||
|
OnClick = btnToolsPkgReloadClick
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object btnToolsRun: TButton
|
|
||||||
Left = 0
|
|
||||||
Height = 32
|
|
||||||
Top = 370
|
|
||||||
Width = 342
|
|
||||||
Align = alBottom
|
|
||||||
Caption = 'Запустить'
|
|
||||||
Font.CharSet = RUSSIAN_CHARSET
|
|
||||||
Font.Height = -16
|
|
||||||
Font.Name = 'Microsoft Sans Serif'
|
|
||||||
Font.Pitch = fpVariable
|
|
||||||
Font.Quality = fqDraft
|
|
||||||
ParentFont = False
|
|
||||||
TabOrder = 2
|
|
||||||
end
|
|
||||||
object labToolsPkgDescription: TLabel
|
object labToolsPkgDescription: TLabel
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 13
|
Height = 13
|
||||||
@@ -3563,20 +3556,21 @@ object fmMain: TfmMain
|
|||||||
end
|
end
|
||||||
object vstToolsPkgContents: TVirtualStringTree
|
object vstToolsPkgContents: TVirtualStringTree
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 308
|
Height = 338
|
||||||
Top = 62
|
Top = 62
|
||||||
Width = 342
|
Width = 342
|
||||||
Align = alClient
|
Align = alClient
|
||||||
BorderStyle = bsNone
|
BorderStyle = bsNone
|
||||||
CheckImageKind = ckDarkCheck
|
DefaultText = 'Утилита'
|
||||||
DefaultText = 'Node'
|
|
||||||
DragOperations = []
|
DragOperations = []
|
||||||
Header.AutoSizeIndex = 0
|
Header.AutoSizeIndex = -1
|
||||||
Header.Columns = <>
|
Header.Columns = <>
|
||||||
Header.MainColumn = -1
|
Header.MainColumn = -1
|
||||||
TabOrder = 3
|
IncrementalSearch = isVisibleOnly
|
||||||
TreeOptions.MiscOptions = [toAcceptOLEDrop, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning, toReadOnly, toEditOnClick]
|
IncrementalSearchStart = ssAlwaysStartOver
|
||||||
TreeOptions.SelectionOptions = [toAlwaysSelectNode]
|
TabOrder = 2
|
||||||
|
TreeOptions.AutoOptions = [toAutoDropExpand, toAutoExpand, toAutoScrollOnExpand, toAutoSort, toAutoTristateTracking, toAutoDeleteMovedNodes, toAutoChangeScale]
|
||||||
|
OnGetText = vstToolsPkgContentsGetText
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object tabSystem: TTabSheet
|
object tabSystem: TTabSheet
|
||||||
|
|||||||
@@ -6,18 +6,32 @@ interface
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
|
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
|
||||||
StdCtrls, ExtCtrls, Buttons, ActnList, EditBtn, Menus, VirtualTrees, Types,
|
StdCtrls, ExtCtrls, Buttons, ActnList, EditBtn, Menus, virtualtreeview_package,
|
||||||
uFileUtils, uPackage, uPackageUtils;
|
VirtualTrees, dMain, uPackage, uPackageList;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
|
// Указатель на тип данных TRootNodeData
|
||||||
|
PRootNodeData = ^TRootNodeData;
|
||||||
|
// Тип данных для работы с корневыми нодами
|
||||||
|
TRootNodeData = record
|
||||||
|
FName: String;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Указатель на тип данных TChildNodeData
|
||||||
|
PChildNodeData = ^TChildNodeData;
|
||||||
|
// Тип данных для работы с дочерними нодами
|
||||||
|
TChildNodeData = record
|
||||||
|
FName: String;
|
||||||
|
FPath: String;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TfmMain }
|
{ TfmMain }
|
||||||
|
|
||||||
TfmMain = class(TForm)
|
TfmMain = class(TForm)
|
||||||
btnSoftStart: TButton;
|
btnSoftStart: TButton;
|
||||||
btnToolsPkgEdit: TSpeedButton;
|
btnToolsPkgEdit: TSpeedButton;
|
||||||
btnToolsPkgReload: TSpeedButton;
|
btnToolsPkgReload: TSpeedButton;
|
||||||
btnToolsRun: TButton;
|
|
||||||
cmbSoftPkgSelect: TComboBox;
|
cmbSoftPkgSelect: TComboBox;
|
||||||
cmbToolsPkgSelect: TComboBox;
|
cmbToolsPkgSelect: TComboBox;
|
||||||
edSoftSearch: TEdit;
|
edSoftSearch: TEdit;
|
||||||
@@ -35,12 +49,43 @@ type
|
|||||||
tabTools: TTabSheet;
|
tabTools: TTabSheet;
|
||||||
vstSoftPkgContents: TVirtualStringTree;
|
vstSoftPkgContents: TVirtualStringTree;
|
||||||
vstToolsPkgContents: TVirtualStringTree;
|
vstToolsPkgContents: TVirtualStringTree;
|
||||||
procedure btnSoftPkgReloadClick(Sender: TObject);
|
// Создание формы и обновление выпадающих меню пакетов программ и утилит
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
|
// Смена пакета программ через выпадающий список
|
||||||
|
procedure cmbSoftPkgSelectChange(Sender: TObject);
|
||||||
|
// Смена пакета утилит через выпадающий список
|
||||||
|
procedure cmbToolsPkgSelectChange(Sender: TObject);
|
||||||
|
// Обрабока клика по кнопке обновления выпадающего меню пакетов программ
|
||||||
|
procedure btnSoftPkgReloadClick(Sender: TObject);
|
||||||
|
// Обрабока клика по кнопке обновления выпадающего меню пакетов утилит
|
||||||
|
procedure btnToolsPkgReloadClick(Sender: TObject);
|
||||||
|
procedure PageControlChange(Sender: TObject);
|
||||||
|
// Отображение отметок в нодах дерева программ
|
||||||
|
procedure vstSoftPkgContentsInitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode;
|
||||||
|
var InitialStates: TVirtualNodeInitStates);
|
||||||
|
// Отображение имён утилит в нодах дерева программ
|
||||||
|
procedure vstSoftPkgContentsGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
||||||
|
Column: TColumnIndex; TextType: TVSTTextType; var CellText: String);
|
||||||
|
// Отображение имён утилит в нодах дерева утилит
|
||||||
|
procedure vstToolsPkgContentsGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
||||||
|
Column: TColumnIndex; TextType: TVSTTextType; var CellText: String);
|
||||||
private
|
private
|
||||||
procedure ReloadSoftPackagesList();
|
// Создание ноды в указанном дереве с указанными параметрами
|
||||||
|
function AddNode(AVST: TVirtualStringTree; ARootNode: PVirtualNode; AName: String;
|
||||||
|
APath: String = ''): PVirtualNode;
|
||||||
|
// Создание ноды в указанном дереве с указанными параметрами
|
||||||
|
//function AddNode(AVST: TVirtualStringTree; ARootNode: PVirtualNode; AName: String;
|
||||||
|
// APath: String = ''): PVirtualNode;
|
||||||
|
// Отображение имён программ в нодах деревьев при инициализации деревьев
|
||||||
|
procedure SetNodeText(AVST: TVirtualStringTree; Node: PVirtualNode; Column: TColumnIndex;
|
||||||
|
TextType: TVSTTextType; var CellText: String);
|
||||||
|
// Заполнение дерева содержимым пакета
|
||||||
|
procedure PackageFillVST(AVST: TVirtualStringTree; APackage: TPackage);
|
||||||
public
|
public
|
||||||
|
// Выбор пакета. Заполняется дерево и отображается описание пакета.
|
||||||
|
procedure SetActivePackage(AType: TPackageType; APackageIndex: Integer);
|
||||||
|
// Перезагрузка дерева пакетов и выпадающих списков пакетов по указанному типу
|
||||||
|
procedure ReloadPackagesList(APackageType: TPackageType);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
@@ -52,22 +97,243 @@ implementation
|
|||||||
|
|
||||||
{ TfmMain }
|
{ TfmMain }
|
||||||
|
|
||||||
procedure TfmMain.btnSoftPkgReloadClick(Sender: TObject);
|
{------------------------------------------------------------------------------
|
||||||
|
Функция: TPackage.AddNode()
|
||||||
|
Назначение: Создание дочерней ноды в указанном дереве с указанными параметрами
|
||||||
|
Вх. параметры:
|
||||||
|
AVST: TVirtualStringTree - компонент дерева, в котором нужно создать ноду
|
||||||
|
ARootNode: PVirtualNode - указатель на ноду-родителя (для создания ноды, вложенной в неё)
|
||||||
|
AName: String - название ноды (для отображения имени программы или утилиты)
|
||||||
|
APath: String = '' - путь к программе или утилите (не заполняется для корневых нод)
|
||||||
|
Возвращает: PVirtualNode - указатель на созданную ноду списка
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function TfmMain.AddNode(AVST: TVirtualStringTree; ARootNode: PVirtualNode; AName: String;
|
||||||
|
APath: String = ''): PVirtualNode;
|
||||||
|
var
|
||||||
|
ptrData: PChildNodeData;
|
||||||
begin
|
begin
|
||||||
ReloadSoftPackagesList;
|
Result := AVST.AddChild(ARootNode);
|
||||||
|
AVST.ValidateNode(Result, False);
|
||||||
|
ptrData := AVST.GetNodeData(Result);
|
||||||
|
ptrData^.FName := AName;
|
||||||
|
//if Assigned(APath) then
|
||||||
|
ptrData^.FPath := APath;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TfmMain.SetNodeText()
|
||||||
|
Назначение: Отображение имён программ в нодах деревьев при инициализации деревьев
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TfmMain.SetNodeText(AVST: TVirtualStringTree; Node: PVirtualNode; Column: TColumnIndex;
|
||||||
|
TextType: TVSTTextType; var CellText: String);
|
||||||
|
var
|
||||||
|
PData: PRootNodeData;
|
||||||
|
begin
|
||||||
|
PData := AVST.GetNodeData(Node);
|
||||||
|
CellText := PData^.FName;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TfmMain.SetActivePackage()
|
||||||
|
Назначение: Выбор пакета. Заполняется дерево и отображается описание пакета.
|
||||||
|
Вх. параметры:
|
||||||
|
AType: TPackageType - тип пакета
|
||||||
|
APackageIndex: integer - номер пакета в списке (а равно в соотв. ComboBox)
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TfmMain.SetActivePackage(AType: TPackageType; APackageIndex: Integer);
|
||||||
|
var
|
||||||
|
Package: TPackage;
|
||||||
|
begin
|
||||||
|
case (AType) of
|
||||||
|
ptSoft:
|
||||||
|
begin
|
||||||
|
Package := dmMain.SoftPackages[APackageIndex];
|
||||||
|
PackageFillVST(vstSoftPkgContents, Package);
|
||||||
|
labSoftPkgDescription.Caption := Package.Description;
|
||||||
|
end;
|
||||||
|
ptTools:
|
||||||
|
begin
|
||||||
|
Package := dmMain.ToolsPackages[APackageIndex];
|
||||||
|
PackageFillVST(vstToolsPkgContents, Package);
|
||||||
|
labToolsPkgDescription.Caption := Package.Description;
|
||||||
|
end;
|
||||||
|
else
|
||||||
|
raise Exception.Create('TfmMain.SetActivePackage(): передан неизвестный тип пакета');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TfmMain.PackageFillVST()
|
||||||
|
Назначение: Заполнение дерева содержимым пакета
|
||||||
|
Вх. параметры:
|
||||||
|
AVST: TVirtualStringTree - компонент дерева, которое необходимо заполнить
|
||||||
|
APackage: TPackage - объект пакета
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TfmMain.PackageFillVST(AVST: TVirtualStringTree; APackage: TPackage);
|
||||||
|
var
|
||||||
|
Sections: TStringList;
|
||||||
|
SectionItems: TStringList;
|
||||||
|
keySection: Integer;
|
||||||
|
keyItem: Integer;
|
||||||
|
Path: String;
|
||||||
|
ptrRootNode: PVirtualNode;
|
||||||
|
ptrChildNode: PVirtualNode;
|
||||||
|
begin
|
||||||
|
AVST.Clear;
|
||||||
|
Sections := TStringList.Create;
|
||||||
|
SectionItems := TStringList.Create;
|
||||||
|
APackage.ReadSections(Sections);
|
||||||
|
for keySection := 0 to Sections.Count - 1 do
|
||||||
|
begin
|
||||||
|
if Sections[keySection] = 'PackageInfo' then
|
||||||
|
continue;
|
||||||
|
ptrRootNode := AddNode(AVST, nil, Sections[keySection]);
|
||||||
|
APackage.ReadSection(Sections[keySection], SectionItems);
|
||||||
|
if SectionItems.Count > 0 then
|
||||||
|
begin
|
||||||
|
for keyItem := 0 to SectionItems.Count - 1 do
|
||||||
|
begin
|
||||||
|
Path := APackage.ReadString(Sections[keySection], SectionItems[keyItem], '');
|
||||||
|
AddNode(AVST, ptrRootNode, SectionItems[keyItem], Path);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TfmMain.ReloadPackagesList()
|
||||||
|
Назначение: Обновление выпадающих меню пакетов при создании окна
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
procedure TfmMain.FormCreate(Sender: TObject);
|
procedure TfmMain.FormCreate(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
ReloadSoftPackagesList;
|
ReloadPackagesList(ptSoft);
|
||||||
|
ReloadPackagesList(ptTools);
|
||||||
|
PageControl.ActivePageIndex := 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
procedure TfmMain.ReloadSoftPackagesList();
|
Процедура: TfmMain.btnSoftPkgReloadClick()
|
||||||
|
Назначение: Обрабока клика по кнопке обновления выпадающего списка пакетов программ
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TfmMain.btnSoftPkgReloadClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
cmbSoftPkgSelect.Items.AddStrings(GetPackagesIniFileList(ptSoft, False), True);
|
ReloadPackagesList(ptSoft);
|
||||||
cmbSoftPkgSelect.ItemIndex := 0;
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TfmMain.btnToolsPkgReloadClick()
|
||||||
|
Назначение: Обрабока клика по кнопке обновления выпадающего списка пакетов утилит
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TfmMain.btnToolsPkgReloadClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
ReloadPackagesList(ptTools);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TfmMain.PageControlChange()
|
||||||
|
Назначение: Обрабока переключения вкладок
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TfmMain.PageControlChange(Sender: TObject);
|
||||||
|
begin
|
||||||
|
// меню выбора должно быть активно только на вкладке "Установка"
|
||||||
|
dmMain.mbCheck.Enabled := PageControl.ActivePageIndex = 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TfmMain.vstSoftPkgContentsGetText()
|
||||||
|
Назначение: Отображение имён программ в нодах дерева программ
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TfmMain.vstSoftPkgContentsGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
||||||
|
Column: TColumnIndex; TextType: TVSTTextType; var CellText: String);
|
||||||
|
begin
|
||||||
|
SetNodeText(vstSoftPkgContents, Node, Column, TextType, CellText);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TfmMain.vstSoftPkgContentsGetText()
|
||||||
|
Назначение: Отображение имён утилит в нодах дерева утилит
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TfmMain.vstToolsPkgContentsGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
||||||
|
Column: TColumnIndex; TextType: TVSTTextType; var CellText: String);
|
||||||
|
begin
|
||||||
|
SetNodeText(vstToolsPkgContents, Node, Column, TextType, CellText);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TfmMain.vstSoftPkgContentsInitNode()
|
||||||
|
Назначение: Отображение отметок в нодах дерева программ
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TfmMain.vstSoftPkgContentsInitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode;
|
||||||
|
var InitialStates: TVirtualNodeInitStates);
|
||||||
|
begin
|
||||||
|
//Sender.CheckType[Node] := ctTriStateCheckBox;
|
||||||
|
case (Sender.GetNodeLevel(Node)) of
|
||||||
|
0: Node^.CheckType := ctTriStateCheckBox;
|
||||||
|
1: Node^.CheckType := ctCheckBox;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TfmMain.ReloadPackagesList()
|
||||||
|
Назначение: Перезагрузка пакетов и заполнение выпадающих списков пакетов
|
||||||
|
Вх. параметры: APackageType: TPackageType - тип списка пакета
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TfmMain.ReloadPackagesList(APackageType: TPackageType);
|
||||||
|
var
|
||||||
|
LastIndex: Integer;
|
||||||
|
Key: Integer;
|
||||||
|
PackageList: TPackageList;
|
||||||
|
Package: TPackage;
|
||||||
|
Combo: TComboBox;
|
||||||
|
begin
|
||||||
|
case (APackageType) of
|
||||||
|
ptSoft:
|
||||||
|
begin
|
||||||
|
Combo := cmbSoftPkgSelect;
|
||||||
|
PackageList := dmMain.SoftPackages;
|
||||||
|
end;
|
||||||
|
ptTools:
|
||||||
|
begin
|
||||||
|
Combo := cmbToolsPkgSelect;
|
||||||
|
PackageList := dmMain.ToolsPackages;
|
||||||
|
end;
|
||||||
|
else raise Exception.Create('TfmMain.ReloadPackagesList(): передан неизвестный тип пакета');
|
||||||
|
end;
|
||||||
|
LastIndex := Combo.ItemIndex;
|
||||||
|
if LastIndex < 0 then
|
||||||
|
LastIndex := 0;
|
||||||
|
Combo.Clear;
|
||||||
|
PackageList.Reload();
|
||||||
|
if PackageList.Count > 0 then
|
||||||
|
begin
|
||||||
|
for Key := 0 to PackageList.Count - 1 do
|
||||||
|
begin
|
||||||
|
Package := PackageList[Key];
|
||||||
|
Combo.Items.Add(Package.Name + ' (' + ExtractFileName(Package.FileName) + ')');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
if Combo.Items.Count <= LastIndex then
|
||||||
|
LastIndex := Combo.Items.Count - 1;
|
||||||
|
Combo.ItemIndex := LastIndex;
|
||||||
|
SetActivePackage(APackageType, LastIndex);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TfmMain.cmbSoftPkgSelectChange()
|
||||||
|
Назначение: Смена пакета программ через выпадающий список
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TfmMain.cmbSoftPkgSelectChange(Sender: TObject);
|
||||||
|
begin
|
||||||
|
SetActivePackage(ptSoft, cmbSoftPkgSelect.ItemIndex);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TfmMain.cmbSoftPkgSelectChange()
|
||||||
|
Назначение: Смена пакета утилит через выпадающий список
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TfmMain.cmbToolsPkgSelectChange(Sender: TObject);
|
||||||
|
begin
|
||||||
|
SetActivePackage(ptTools, cmbToolsPkgSelect.ItemIndex);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|||||||
+3823
File diff suppressed because it is too large
Load Diff
+132
@@ -0,0 +1,132 @@
|
|||||||
|
unit fOptions;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
|
||||||
|
ComCtrls, ExtCtrls, StdCtrls, Menus, Buttons, uOptions;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TfmOptions }
|
||||||
|
|
||||||
|
TfmOptions = class(TForm)
|
||||||
|
btnSave: TButton;
|
||||||
|
btnClose: TButton;
|
||||||
|
btnCheckUpdates: TButton;
|
||||||
|
btnChangelog: TButton;
|
||||||
|
btnBugReport: TButton;
|
||||||
|
btnOnlineHelp: TButton;
|
||||||
|
btnLicense: TButton;
|
||||||
|
cbChkExitCodes: TCheckBox;
|
||||||
|
cbDntUnChkItems: TCheckBox;
|
||||||
|
cbExpandSoft: TCheckBox;
|
||||||
|
cbExpandTools: TCheckBox;
|
||||||
|
cbShowProgress: TCheckBox;
|
||||||
|
cbColorSoftTree: TCheckBox;
|
||||||
|
cbOnTop: TCheckBox;
|
||||||
|
cbShowPkgDesc: TCheckBox;
|
||||||
|
cbQuietREG: TCheckBox;
|
||||||
|
cbHideOnTool: TCheckBox;
|
||||||
|
cbDrawOutlines: TCheckBox;
|
||||||
|
cbScreenSnap: TCheckBox;
|
||||||
|
cmbLanguage: TComboBox;
|
||||||
|
grpOptMainform: TGroupBox;
|
||||||
|
grpOptInstall: TGroupBox;
|
||||||
|
grpOptTools: TGroupBox;
|
||||||
|
imgLogo: TImage;
|
||||||
|
labAboutTitle: TLabel;
|
||||||
|
labCopyright: TLabel;
|
||||||
|
labDescription: TLabel;
|
||||||
|
Label1: TLabel;
|
||||||
|
mmLicenseText: TMemo;
|
||||||
|
PageControl: TPageControl;
|
||||||
|
pnLanguage: TPanel;
|
||||||
|
btnSetDefault: TSpeedButton;
|
||||||
|
tabCommon: TTabSheet;
|
||||||
|
tabPackages: TTabSheet;
|
||||||
|
tabAbout: TTabSheet;
|
||||||
|
tabLicense: TTabSheet;
|
||||||
|
procedure btnSaveClick(Sender: TObject);
|
||||||
|
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
|
procedure FormShow(Sender: TObject);
|
||||||
|
private
|
||||||
|
procedure ResetControlls;
|
||||||
|
public
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
fmOptions: TfmOptions;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$R *.lfm}
|
||||||
|
|
||||||
|
{ TfmOptions }
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TfmOptions.btnSaveClick()
|
||||||
|
Назначение: Закрытие формы настроек и возврат модального результата при клике
|
||||||
|
по кнопке "Сохранить"
|
||||||
|
Описание: Закрытие формы происходит автоматически благодаря свойству
|
||||||
|
ModalResult = mrOK, заданному кнопке в инспекторе объектов.
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TfmOptions.btnSaveClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
//TODO сохранение настроек
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TfmOptions.FormClose()
|
||||||
|
Назначение: Закрытие формы при её закрытии через кнопку в заголовке и возврат
|
||||||
|
модального результата
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TfmOptions.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
|
begin
|
||||||
|
ModalResult := mrClose;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TfmOptions.FormShow()
|
||||||
|
Назначение: Показ окна настроек
|
||||||
|
Описание: Форма настроек создаётся однажды при её первом вызове. При закрытии
|
||||||
|
она не уничтожается. Она может быть закрыта без сохранения настроек. При
|
||||||
|
повторном открытии окна контроллы должны принять состояние, соответствущее
|
||||||
|
текущим (при запуске или прошлом сохранении) настройкам. В противном случае,
|
||||||
|
повторное открытие окна отобразит прошлые несохранённые изменения - это
|
||||||
|
введёт пользователя в заблуждение и он примет эти настройки как текущие.
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TfmOptions.FormShow(Sender: TObject);
|
||||||
|
begin
|
||||||
|
ResetControlls;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TfmOptions.ResetControlls()
|
||||||
|
Назначение: Сброс состояния контроллов в сооответствии с текущими настройками
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TfmOptions.ResetControlls;
|
||||||
|
begin
|
||||||
|
cmbLanguage.Items := GlobalOptions.ReadAvailableLocales(false);
|
||||||
|
|
||||||
|
cbScreenSnap.Checked := GlobalOptions.ScreenSnap;
|
||||||
|
cbShowPkgDesc.Checked := GlobalOptions.ShowPkgDesc;
|
||||||
|
cbDrawOutlines.Checked := GlobalOptions.DrawOutlines;
|
||||||
|
cbOnTop.Checked := GlobalOptions.OnTop;
|
||||||
|
|
||||||
|
cbChkExitCodes.Checked := GlobalOptions.ChkExitCodes;
|
||||||
|
cbDntUnChkItems.Checked := GlobalOptions.DntUnChkItems;
|
||||||
|
cbColorSoftTree.Checked := GlobalOptions.ColorSoftTree;
|
||||||
|
cbShowProgress.Checked := GlobalOptions.ShowProgress;
|
||||||
|
cbQuietREG.Checked := GlobalOptions.QuietREG;
|
||||||
|
cbExpandSoft.Checked := GlobalOptions.ExpandSoft;
|
||||||
|
|
||||||
|
cbHideOnTool.Checked := GlobalOptions.HideOnTool;
|
||||||
|
cbExpandTools.Checked := GlobalOptions.ExpandTools;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
||||||
+52
-37
@@ -5,41 +5,47 @@ unit uFileUtils;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, FileUtil, Types, uPackage;
|
Classes, SysUtils, FileUtil, uPackage;
|
||||||
|
|
||||||
function GetFileList(Path, FileMask: String; FullPaths: Boolean = True): TStringList;
|
// Получение списка файлов в директории
|
||||||
function GetABToolFileList(SubDir, FileMask: String;
|
function GetFileList(APath, AFileMask: String; AFullPaths: Boolean = True): TStringList;
|
||||||
FullPaths: Boolean = True): TStringList;
|
|
||||||
function GetPackagesIniFileList(PackageType: TPackageType;
|
// Получение списка всех файлов внутри директории ABTool
|
||||||
FullPaths: Boolean = True): TStringList;
|
function GetABToolFileList(ASubDir, AFileMask: String; AFullPaths: Boolean = True): TStringList;
|
||||||
|
|
||||||
|
// Получение списка всех файлов пакетов
|
||||||
|
function GetPackagesIniFileList(APackageType: TPackageType; AFullPaths: Boolean = True): TStringList;
|
||||||
|
|
||||||
|
// Получение списка всех файлов локализаций
|
||||||
|
function GetLocalesIniFileList(AFullPaths: Boolean = True): TStringList;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Функция: GetFileList
|
Функция: GetFileList
|
||||||
Назначение: Получает список файлов в директории
|
Назначение: Получение списка файлов в директории
|
||||||
Вх. параметры:
|
Вх. параметры:
|
||||||
Path: string - путь к директории, список файлов которой нужно получить
|
APath: string - путь к директории, список файлов которой нужно получить
|
||||||
FileMask: string - маска файлов, по которой нужно отфильтровать список файлов
|
AFileMask: string - маска файлов, по которой нужно отфильтровать список файлов
|
||||||
FullPaths: boolean - возвращать полные пути (true) или только имена
|
AFullPaths: boolean - возвращать полные пути (true) или только имена
|
||||||
файлов (false). По умолчанию true.
|
файлов (false). По умолчанию true.
|
||||||
Возвращает:
|
Возвращает:
|
||||||
TStringList - список строк с полными путями или только с именами файлов
|
TStringList - список строк с полными путями или только с именами файлов
|
||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
function GetFileList(Path, FileMask: String; FullPaths: Boolean = True): TStringList;
|
function GetFileList(APath, AFileMask: String; AFullPaths: Boolean = True): TStringList;
|
||||||
var
|
var
|
||||||
SearchRec: TSearchRec;
|
SearchRec: TSearchRec;
|
||||||
ResultLines: TStringList;
|
ResultLines: TStringList;
|
||||||
begin
|
begin
|
||||||
ResultLines := TStringList.Create;
|
ResultLines := TStringList.Create;
|
||||||
Path := IncludeTrailingPathDelimiter(Path);
|
APath := IncludeTrailingPathDelimiter(APath);
|
||||||
if FindFirst(Path + FileMask, faNormal, SearchRec) = 0 then
|
if FindFirst(APath + AFileMask, faNormal, SearchRec) = 0 then
|
||||||
begin
|
begin
|
||||||
repeat
|
repeat
|
||||||
if (SearchRec.Attr <> faDirectory) then
|
if (SearchRec.Attr <> faDirectory) then
|
||||||
begin
|
begin
|
||||||
if FullPaths then
|
if AFullPaths then
|
||||||
ResultLines.Add(Path + SearchRec.Name)
|
ResultLines.Add(APath + SearchRec.Name)
|
||||||
else
|
else
|
||||||
ResultLines.Add(SearchRec.Name);
|
ResultLines.Add(SearchRec.Name);
|
||||||
end;
|
end;
|
||||||
@@ -51,46 +57,55 @@ end;
|
|||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Функция: GetABToolFileList
|
Функция: GetABToolFileList
|
||||||
Назначение: Получает список всех файлов внутри директории ABTool\
|
Назначение: Получение списка всех файлов внутри директории ABTool\
|
||||||
Вх. параметры:
|
Вх. параметры:
|
||||||
SubDir: string - имя директории внутри ABTool\
|
ASubDir: string - имя директории внутри ABTool\
|
||||||
FileMask: string - маска файлов, по которой нужно отфильтровать список файлов
|
AFileMask: string - маска файлов, по которой нужно отфильтровать список файлов
|
||||||
FullPaths: boolean - возвращать полные пути (true) или только имена
|
AFullPaths: boolean - возвращать полные пути (true) или только имена
|
||||||
файлов (false). По умолчанию true.
|
файлов (false). По умолчанию true.
|
||||||
Возвращает:
|
Возвращает:
|
||||||
TStringList - список строк с полными путями или только с именами файлов пакетов
|
TStringList - список строк с полными путями или только с именами файлов пакетов
|
||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
function GetABToolFileList(SubDir, FileMask: String;
|
function GetABToolFileList(ASubDir, AFileMask: String; AFullPaths: Boolean = True): TStringList;
|
||||||
FullPaths: Boolean = True): TStringList;
|
|
||||||
begin
|
begin
|
||||||
Result := GetFileList(ExtractFilePath(ParamStr(0)) + 'ABTool\' +
|
Result := GetFileList(ExtractFilePath(ParamStr(0)) + 'ABTool\' + ASubDir, AFileMask, AFullPaths);
|
||||||
SubDir, FileMask, FullPaths);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Функция: GetPackagesIniFileList
|
Функция: GetPackagesIniFileList
|
||||||
Назначение: Получает список всех пакетов
|
Назначение: Получение списка всех файлов пакетов
|
||||||
Вх. параметры:
|
Вх. параметры:
|
||||||
PackageType: TPackageType - тип пакета: ptSoft либо ptTools
|
APackageType: TPackageType - тип пакета: ptSoft либо ptTools
|
||||||
FullPaths: boolean - возвращать полные пути (true) или только имена
|
AFullPaths: boolean - возвращать полные пути (true) или только имена
|
||||||
|
файлов (false). По умолчанию true.
|
||||||
|
Возвращает:
|
||||||
|
TStringList - список строк с полными путями или только с именами файлов пакетов
|
||||||
|
Исключения:
|
||||||
|
TException - при попытке передать любой другой тип пакета
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function GetPackagesIniFileList(APackageType: TPackageType; AFullPaths: Boolean = True): TStringList;
|
||||||
|
begin
|
||||||
|
case (APackageType) of
|
||||||
|
ptSoft: Result := GetABToolFileList('Packages', 'soft.*.ini', AFullPaths);
|
||||||
|
ptTools: Result := GetABToolFileList('Packages', 'tools.*.ini', AFullPaths);
|
||||||
|
else raise Exception.Create('GetPackagesIniFileList(): передан неверный тип пакета');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Функция: GetPackagesIniFileList
|
||||||
|
Назначение: Получение списка всех файлов локализаций
|
||||||
|
Вх. параметры:
|
||||||
|
AFullPaths: boolean - возвращать полные пути (true) или только имена
|
||||||
файлов (false). По умолчанию true.
|
файлов (false). По умолчанию true.
|
||||||
Возвращает:
|
Возвращает:
|
||||||
TStringList - список строк с полными путями или только с именами файлов пакетов
|
TStringList - список строк с полными путями или только с именами файлов пакетов
|
||||||
Исключения:
|
Исключения:
|
||||||
TException - при попытке передать ptUnknown
|
TException - при попытке передать ptUnknown
|
||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
function GetPackagesIniFileList(PackageType: TPackageType;
|
function GetLocalesIniFileList(AFullPaths: Boolean = True): TStringList;
|
||||||
FullPaths: Boolean = True): TStringList;
|
|
||||||
begin
|
begin
|
||||||
case (PackageType) of
|
Result := GetABToolFileList('Languages', '*.lng', AFullPaths);
|
||||||
ptSoft: Result := GetABToolFileList('Packages', 'soft.*.ini', FullPaths);
|
|
||||||
ptTools: Result := GetABToolFileList('Packages', 'tools.*.ini', FullPaths);
|
|
||||||
ptUnknown: raise Exception.Create(
|
|
||||||
'GetPackagesIniFileList(): передан ptUnknown');
|
|
||||||
end;
|
end;
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|||||||
+373
@@ -0,0 +1,373 @@
|
|||||||
|
unit uOptions;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, Forms, IniFiles, uFileUtils;
|
||||||
|
|
||||||
|
type
|
||||||
|
// Класс настроек
|
||||||
|
|
||||||
|
{ TOptions }
|
||||||
|
|
||||||
|
TOptions = class(TIniFile)
|
||||||
|
strict private
|
||||||
|
// Файл локализации
|
||||||
|
FLocale: string;
|
||||||
|
|
||||||
|
// Прилипание к краям экрана
|
||||||
|
FScreenSnap: Boolean;
|
||||||
|
// Показывать описания пакетов
|
||||||
|
FShowPkgDesc: Boolean;
|
||||||
|
// Рисовать в деревьях линии уровней вложенности
|
||||||
|
FDrawOutlines: Boolean;
|
||||||
|
// Поверх всех окон
|
||||||
|
FOnTop: Boolean;
|
||||||
|
|
||||||
|
// Немедленно сообщать о коде возврата <> 0
|
||||||
|
FChkExitCodes: Boolean;
|
||||||
|
// Не снимать отметку с чекбокса при коде возврата <> 0
|
||||||
|
FDntUnChkItems: Boolean;
|
||||||
|
// Раскрашивать список программ после установки
|
||||||
|
FColorSoftTree: Boolean;
|
||||||
|
// Отображать общий ход установки программ
|
||||||
|
FShowProgress: Boolean;
|
||||||
|
// Тихий импорт REG-файлов
|
||||||
|
FQuietREG: Boolean;
|
||||||
|
// Раскрывать дерево после загрузки пакета
|
||||||
|
FExpandSoft: Boolean;
|
||||||
|
|
||||||
|
// Скрывать главное окно при запуске утилит
|
||||||
|
FHideOnTool: Boolean;
|
||||||
|
// Раскрывать дерево после загрузки пакета
|
||||||
|
FExpandTools: Boolean;
|
||||||
|
|
||||||
|
// Последняя позиция по горизонтали от левого края экрана
|
||||||
|
FLeft: Integer;
|
||||||
|
// Последняя позиция по вертикали от верхнего края экрана
|
||||||
|
FTop: Integer;
|
||||||
|
// Последняя ширина
|
||||||
|
FWidth: Integer;
|
||||||
|
// Последняя высота
|
||||||
|
FHeight: Integer;
|
||||||
|
|
||||||
|
// Параметры, с которыми запушена ABTool
|
||||||
|
FCLParams: TStringList;
|
||||||
|
private
|
||||||
|
// Установка параметра локализации
|
||||||
|
procedure SetLocale(ALngFilename: string);
|
||||||
|
public
|
||||||
|
// Файл локализации
|
||||||
|
property Locale: string read FLocale write SetLocale;
|
||||||
|
|
||||||
|
// Прилипание к краям экрана
|
||||||
|
property ScreenSnap: Boolean read FScreenSnap write FScreenSnap default True;
|
||||||
|
// Показывать описания пакетов
|
||||||
|
property ShowPkgDesc: Boolean read FShowPkgDesc write FShowPkgDesc default True;
|
||||||
|
// Рисовать в деревьях линии уровней вложенности
|
||||||
|
property DrawOutlines: Boolean read FDrawOutlines write FDrawOutlines default True;
|
||||||
|
// Поверх всех окон
|
||||||
|
property OnTop: Boolean read FOnTop write FOnTop default False;
|
||||||
|
|
||||||
|
// Немедленно сообщать о коде возврата <> 0
|
||||||
|
property ChkExitCodes: Boolean read FChkExitCodes write FChkExitCodes default True;
|
||||||
|
// Не снимать отметку с чекбокса при коде возврата <> 0
|
||||||
|
property DntUnChkItems: Boolean read FDntUnChkItems write FDntUnChkItems default True;
|
||||||
|
// Раскрашивать список программ после установки
|
||||||
|
property ColorSoftTree: Boolean read FColorSoftTree write FColorSoftTree default True;
|
||||||
|
// Отображать общий ход установки программ
|
||||||
|
property ShowProgress: Boolean read FShowProgress write FShowProgress default True;
|
||||||
|
// Тихий импорт REG-файлов
|
||||||
|
property QuietREG: Boolean read FQuietREG write FQuietREG default True;
|
||||||
|
// Раскрывать дерево после загрузки пакета
|
||||||
|
property ExpandSoft: Boolean read FExpandSoft write FExpandSoft default True;
|
||||||
|
|
||||||
|
// Скрывать главное окно при запуске утилит
|
||||||
|
property HideOnTool: Boolean read FExpandSoft write FExpandSoft default False;
|
||||||
|
// Раскрывать дерево после загрузки пакета
|
||||||
|
property ExpandTools: Boolean read FExpandSoft write FExpandSoft default True;
|
||||||
|
|
||||||
|
// Последняя позиция по горизонтали от левого края экрана
|
||||||
|
property Left: Integer read FLeft write FLeft;
|
||||||
|
// Последняя позиция по вертикали от верхнего края экрана
|
||||||
|
property Top: Integer read FTop write FTop;
|
||||||
|
// Последняя ширина
|
||||||
|
property Width: Integer read FWidth write FWidth default 350;
|
||||||
|
// Последняя высота
|
||||||
|
property Height: Integer read FHeight write FHeight default 450;
|
||||||
|
|
||||||
|
// Параметры, с которыми запушена ABTool
|
||||||
|
property CLParams: TStringList read FCLParams;
|
||||||
|
// Пути ко всем доступным файлам локализаций
|
||||||
|
function ReadAvailableLocales(AFullPaths: Boolean = True): TStringList;
|
||||||
|
|
||||||
|
// Создание объекта настроек и установка настроек
|
||||||
|
constructor Create(AIniFilename: string); overload;
|
||||||
|
// Деструктор объекта настроек
|
||||||
|
destructor Destroy(); override;
|
||||||
|
// Определение наличия доп. ключей запуска
|
||||||
|
function HasCLParams: Boolean;
|
||||||
|
// Установка параметров командной строки, с которыми запущен ABTool
|
||||||
|
procedure ReadCLParams;
|
||||||
|
// Поиск ключа запуска среди всех, с которыми запущен ABTool
|
||||||
|
function FindCLParam(AParamName: string): Boolean;
|
||||||
|
// Чтение настроек
|
||||||
|
procedure Load;
|
||||||
|
|
||||||
|
end; // TOptions
|
||||||
|
|
||||||
|
var
|
||||||
|
// Настройки - глобальный объект, доступный всем модулям, сославшимся на этот
|
||||||
|
GlobalOptions: TOptions;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{ TOptions }
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Конструктор: TOptions.Create()
|
||||||
|
Назначение: Создание объекта настроек и установка настроек
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
constructor TOptions.Create(AIniFilename: string);
|
||||||
|
begin
|
||||||
|
if HasCLParams then
|
||||||
|
ReadCLParams;
|
||||||
|
//ReadAvailableLocales;
|
||||||
|
inherited Create(AIniFilename, [ifoStripComments, ifoStripInvalid]);
|
||||||
|
Load;
|
||||||
|
GlobalOptions := Self;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Деструктор: TOptions.Destroy()
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
destructor TOptions.Destroy();
|
||||||
|
begin
|
||||||
|
inherited Destroy();
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Функция: TOptions.HasCLParams()
|
||||||
|
Назначение: Определение наличия доп. ключей запуска
|
||||||
|
Возвращает: boolean
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function TOptions.HasCLParams: Boolean;
|
||||||
|
begin
|
||||||
|
Result := ParamCount > 0;
|
||||||
|
//if FDebug then
|
||||||
|
// Log('DoesABToolHaveKeys(): '+BoolToStr(Result));
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TOptions.ReadCLParams()
|
||||||
|
Назначение: Установка параметров командной строки, с которыми запущен ABTool
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TOptions.ReadCLParams;
|
||||||
|
var
|
||||||
|
i: byte;
|
||||||
|
begin
|
||||||
|
if HasCLParams then
|
||||||
|
begin
|
||||||
|
FCLParams := TStringList.Create;
|
||||||
|
for i := 1 to ParamCount do
|
||||||
|
FCLParams.Add(Trim(LowerCase(ParamStr(i))));
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Функция: TOptions.FindCLParam()
|
||||||
|
Назначение: Поиск ключа запуска среди всех, с которыми запущен ABTool
|
||||||
|
Возвращает: boolean
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function TOptions.FindCLParam(AParamName: string): Boolean;
|
||||||
|
var
|
||||||
|
i: Smallint;
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
if HasCLParams then
|
||||||
|
begin
|
||||||
|
for i := 0 to FCLParams.Count - 1 do
|
||||||
|
if Pos(LowerCase(AParamName), FCLParams.Strings[i]) > 0 then
|
||||||
|
begin
|
||||||
|
Result := True;
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TOptions.Load()
|
||||||
|
Назначение: Чтение настроек
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TOptions.Load;
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
//TODO создание дефолтного файла настроек при отсутсвии такового
|
||||||
|
//TODO создание файла настроек по умолчанию
|
||||||
|
SetLocale(ReadString('Options', 'Locale', ''));
|
||||||
|
|
||||||
|
FScreenSnap := ReadBool('Options', 'ScreenSnap', True);
|
||||||
|
FShowPkgDesc := ReadBool('Options', 'ShowPkgDesc', True);
|
||||||
|
FDrawOutlines := ReadBool('Options', 'DrawOutlines', True);
|
||||||
|
FOnTop := ReadBool('Options', 'OnTop', False);
|
||||||
|
|
||||||
|
FChkExitCodes := ReadBool('Options', 'ChkExitCodes', False);
|
||||||
|
FDntUnChkItems := ReadBool('Options', 'DntUnChkItems', True);
|
||||||
|
FColorSoftTree := ReadBool('Options', 'ColorSoftTree', True);
|
||||||
|
FShowProgress := ReadBool('Options', 'ShowProgress', True);
|
||||||
|
FQuietREG := ReadBool('Options', 'QuietREG', False);
|
||||||
|
FExpandSoft := ReadBool('Options', 'ExpandSoft', True);
|
||||||
|
|
||||||
|
FHideOnTool := ReadBool('Options', 'HideOnTool', False);
|
||||||
|
FExpandTools := ReadBool('Options', 'ExpandTools', True);
|
||||||
|
|
||||||
|
FLeft := ReadInteger('Options', 'Left', (Screen.Width div 2) - 175);
|
||||||
|
FTop := ReadInteger('Options', 'Top', (Screen.Height div 2) - 225);
|
||||||
|
FWidth := ReadInteger('Options', 'Width', 350);
|
||||||
|
FHeight := ReadInteger('Options', 'Height', 450);
|
||||||
|
except // SysErrorMessage(GetLastError)
|
||||||
|
On E: Exception do
|
||||||
|
begin
|
||||||
|
raise Exception.Create('Не удалось прочитать настройки из файла abtool.ini.');
|
||||||
|
//+ #13#10 +
|
||||||
|
//'Сейчас он будет создан с параметрами по умолчанию.' + #13#10 +
|
||||||
|
//'Сообщение системы: ' + #13#10 + E.Message + '(' + IntToStr(GetLastError) + ') ');
|
||||||
|
//SaveOptions(true);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TOptions.SetLocale()
|
||||||
|
Назначение: Установка параметра локализации
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TOptions.SetLocale(ALngFilename: string);
|
||||||
|
begin
|
||||||
|
//TODO проверка существования файла локализации
|
||||||
|
FLocale := ALngFilename;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TOptions.ReadAvailableLocales()
|
||||||
|
Назначение: Получение списка всех доступных файлов локализаций
|
||||||
|
Вх. параметры:
|
||||||
|
FullPaths: boolean - возвращать полные пути (true) или только имена
|
||||||
|
файлов (false). По умолчанию true.
|
||||||
|
Возвращает: TStringList
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function TOptions.ReadAvailableLocales(AFullPaths: Boolean = True): TStringList;
|
||||||
|
begin
|
||||||
|
Result := GetLocalesIniFileList(AFullPaths);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{
|
||||||
|
// Чтение настроек
|
||||||
|
function LoadOptions: boolean;
|
||||||
|
begin
|
||||||
|
Result := false;
|
||||||
|
if Options.Debug then
|
||||||
|
Log('LoadOptions()');
|
||||||
|
Log('Загрузка настроек из abtool.ini...');
|
||||||
|
if not (FileExists(ABToolIniPath + 'abtool.ini')) then begin
|
||||||
|
Log('Файла настроек не существует. Сейчас он будет создан с параметрами по умолчанию...');
|
||||||
|
SaveOptions(true);
|
||||||
|
end // if FileExists
|
||||||
|
else begin
|
||||||
|
try
|
||||||
|
try
|
||||||
|
with Options do begin
|
||||||
|
ABToolIniFile := TInifile.Create(ABToolIniPath + 'abtool.ini');
|
||||||
|
ABToolKeys := TStringList.Create;
|
||||||
|
ABToolKeys := GetABToolKeys;
|
||||||
|
if Options.Debug then
|
||||||
|
Log('LoadOptions(): ABToolKeys='+GetABToolKeys.text);
|
||||||
|
// Непосредственно чтение настроек из INI в память
|
||||||
|
if FindCLParam('+lang') then begin
|
||||||
|
LangFile := ReadString('Options','LangFile','');
|
||||||
|
if Options.Debug then
|
||||||
|
Log('LoadOptions(): LangFile='+LangFile);
|
||||||
|
end; // if +lang
|
||||||
|
Left := ReadInteger('Options','Left', (Screen.Width div 2) - 180);
|
||||||
|
Top := ReadInteger('Options','Top', (Screen.Height div 2) - 292);
|
||||||
|
Width := ReadInteger('Options','Width', 360);
|
||||||
|
Height := ReadInteger('Options','Height', 485);
|
||||||
|
ChkExitCodes := ReadBool('Options','ChkExitCodes',false);
|
||||||
|
DntUnChkItems := ReadBool('Options','DntUnChkItems',true);
|
||||||
|
ColorSoftTree := ReadBool('Options','ColorSoftTree',true);
|
||||||
|
ShowProgress := ReadBool('Options','ShowProgress',true);
|
||||||
|
ExpandSoft := ReadBool('Options','ExpandSoft',true);
|
||||||
|
QuietREG := ReadBool('Options','QuietREG',false);
|
||||||
|
HideOnTool := ReadBool('Options','HideOnTool',false);
|
||||||
|
ExpandTools := ReadBool('Options','ExpandTools',true);
|
||||||
|
ShowLog := ReadBool('Options','ShowLog',true);
|
||||||
|
DrawOutlines := ReadBool('Options','DrawOutlines',true);
|
||||||
|
ScreenSnap := ReadBool('Options','ScreenSnap',true);
|
||||||
|
OnTop := ReadBool('Options','OnTop',false);
|
||||||
|
ShowPkgDesc := ReadBool('Options','ShowPkgDesc',true);
|
||||||
|
SrchVisible := ReadBool('Options','SrchVisible',false);
|
||||||
|
ScrollLog := ReadBool('Options','ScrollLog',true);
|
||||||
|
LastSoftPkg := ReadString('Options','LastSoftPkg', '');
|
||||||
|
LastToolPkg := ReadString('Options','LastToolPkg', '');
|
||||||
|
if Options.Debug then begin
|
||||||
|
Log('LoadOptions(): Left='+Left.ToString);
|
||||||
|
Log('LoadOptions(): Top='+Top.ToString);
|
||||||
|
Log('LoadOptions(): Width='+Width.ToString);
|
||||||
|
Log('LoadOptions(): Height='+Height.ToString);
|
||||||
|
Log('LoadOptions(): ChkExitCodes='+BoolToStr(ChkExitCodes));
|
||||||
|
Log('LoadOptions(): DntUnChkItems='+BoolToStr(DntUnChkItems));
|
||||||
|
Log('LoadOptions(): ColorSoftTree='+BoolToStr(ColorSoftTree));
|
||||||
|
Log('LoadOptions(): ShowProgress='+BoolToStr(ShowProgress));
|
||||||
|
Log('LoadOptions(): ExpandSoft='+BoolToStr(ExpandSoft));
|
||||||
|
Log('LoadOptions(): QuietREG='+BoolToStr(QuietREG));
|
||||||
|
Log('LoadOptions(): HideOnTool='+BoolToStr(HideOnTool));
|
||||||
|
Log('LoadOptions(): ExpandTools='+BoolToStr(ExpandTools));
|
||||||
|
Log('LoadOptions(): DrawOutlines='+BoolToStr(DrawOutlines));
|
||||||
|
Log('LoadOptions(): ScreenSnap='+BoolToStr(ScreenSnap));
|
||||||
|
Log('LoadOptions(): OnTop='+BoolToStr(OnTop));
|
||||||
|
Log('LoadOptions(): ShowPkgDesc='+BoolToStr(ShowPkgDesc));
|
||||||
|
Log('LoadOptions(): SrchVisible='+BoolToStr(SrchVisible));
|
||||||
|
Log('LoadOptions(): ScrollLog='+BoolToStr(ScrollLog));
|
||||||
|
Log('LoadOptions(): LastSoftPkg='+LastSoftPkg);
|
||||||
|
Log('LoadOptions(): ScrollLog='+LastToolPkg);
|
||||||
|
end;
|
||||||
|
end; // with Options
|
||||||
|
Result := true;
|
||||||
|
except // SysErrorMessage(GetLastError)
|
||||||
|
On E: Exception Do Begin
|
||||||
|
Raise Exception.Create('Не удалось прочитать настройки из файла abtool.ini.' + #13#10 +
|
||||||
|
'Сейчас он будет создан с параметрами по умолчанию.' + #13#10 +
|
||||||
|
'Сообщение системы: ' + #13#10 + E.Message + '(' + IntToStr(GetLastError) + ') ');
|
||||||
|
Log('Не удалось прочитать настройки из файла abtool.ini.' + #13#10 +
|
||||||
|
'Сейчас он будет создан с параметрами по умолчанию.' + #13#10 +
|
||||||
|
'Сообщение системы: ' + #13#10 + E.Message + '(' + IntToStr(GetLastError) + ') ');
|
||||||
|
if Options.Debug then
|
||||||
|
Log('LoadOptions() EXCEPTION Stack Trace:' + #13#10 + E.StackTrace);
|
||||||
|
SaveOptions(true);
|
||||||
|
End; // On E: Exception
|
||||||
|
end; // except
|
||||||
|
finally
|
||||||
|
// if Options.ABToolIniFile <> nil then
|
||||||
|
// Options.Free;
|
||||||
|
end; // finally
|
||||||
|
end; // if not FileExists
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
end.
|
||||||
+86
-27
@@ -10,47 +10,115 @@ uses
|
|||||||
type
|
type
|
||||||
{ TPackageType }
|
{ TPackageType }
|
||||||
|
|
||||||
TPackageType = (ptSoft, ptTools, ptUnknown);
|
// Перечисление типов пакета
|
||||||
|
TPackageType = (
|
||||||
|
// Пакет программ для установки
|
||||||
|
ptSoft,
|
||||||
|
// Пакет утилит
|
||||||
|
ptTools,
|
||||||
|
// Неизвестный пакет
|
||||||
|
ptUnknown
|
||||||
|
);
|
||||||
|
|
||||||
{ TPackage }
|
{ TPackage }
|
||||||
|
|
||||||
TPackage = class//(TCustomIniFile)
|
// Класс пакета
|
||||||
|
TPackage = class(TIniFile)
|
||||||
strict private
|
strict private
|
||||||
FName: String;
|
// Имя пакета: [PackageInfo] Name
|
||||||
FDescription: String;
|
FName: string;
|
||||||
|
// Описание пакета: [PackageInfo] Description
|
||||||
|
FDescription: string;
|
||||||
|
// Тип пакета
|
||||||
FType: TPackageType;
|
FType: TPackageType;
|
||||||
private
|
private
|
||||||
|
// Установка информации о пакете
|
||||||
|
procedure SetProperties();
|
||||||
|
// Определение типа пакета по имени его файла
|
||||||
|
function SetType(): TPackageType;
|
||||||
public
|
public
|
||||||
IniFile: TIniFile;
|
// Имя пакета: [PackageInfo] Name
|
||||||
Groups: TStringList;
|
property Name: string read FName;
|
||||||
//--------
|
// Описание пакета: [PackageInfo] Description
|
||||||
property Name: String read FName;
|
property Description: string read FDescription;
|
||||||
property Description: String read FDescription;
|
// Тип пакета
|
||||||
property PackageType: TPackageType read FType;
|
property PackageType: TPackageType read FType;
|
||||||
//--------
|
|
||||||
constructor Create(APkgFilename: String);
|
// Создание объекта пакета и установка информации о нём
|
||||||
|
constructor Create(AIniFilename: string); overload;
|
||||||
|
// Деструктор объекта пакета
|
||||||
destructor Destroy(); override;
|
destructor Destroy(); override;
|
||||||
function ExecuteItem(const AFileName, AParams: String;
|
|
||||||
AHideMainWindow: Boolean; Out AOutExitcode: Cardinal): Boolean;
|
// Запуск исполняемого файла и получение результатов запуска
|
||||||
|
function ExecuteItem(const AFileName, AParams: string; AHideMainWindow: Boolean;
|
||||||
|
Out AOutExitcode: Cardinal): Boolean;
|
||||||
end; // TPackage
|
end; // TPackage
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
{ TPackage }
|
{ TPackage }
|
||||||
|
|
||||||
constructor TPackage.Create(APkgFilename: String);
|
{------------------------------------------------------------------------------
|
||||||
|
Конструктор: TPackage.Create()
|
||||||
|
Назначение: Создание объекта пакета и установка информации о нём
|
||||||
|
Вх. параметры: AIniFilename: string - путь к ini-файлу
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
constructor TPackage.Create(AIniFilename: string);
|
||||||
begin
|
begin
|
||||||
|
inherited Create(AIniFilename, [ifoStripComments, ifoStripInvalid]);
|
||||||
|
SetProperties();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TPackage.SetType()
|
||||||
|
Назначение: Установка информации о пакете
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TPackage.SetProperties();
|
||||||
|
begin
|
||||||
|
FName := Readstring('PackageInfo', 'Name', '<без названия>');
|
||||||
|
FDescription := Readstring('PackageInfo', 'Description', '<без описания>');
|
||||||
|
FType := SetType();
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Функция: TPackage.SetType()
|
||||||
|
Назначение: Определение типа пакета по имени его файла
|
||||||
|
Возвращает: TPackageType - тип пакета
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function TPackage.SetType(): TPackageType;
|
||||||
|
var
|
||||||
|
SubStr: string;
|
||||||
|
begin
|
||||||
|
SubStr := Copy(ExtractFileName(FileName), 1, 4);
|
||||||
|
if (LowerCase(SubStr) = 'soft') then
|
||||||
|
Result := ptSoft
|
||||||
|
else if (LowerCase(SubStr) = 'tool') then
|
||||||
|
Result := ptTools
|
||||||
|
else
|
||||||
|
Result := ptUnknown;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Деструктор: TPackage.Destroy()
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
destructor TPackage.Destroy();
|
destructor TPackage.Destroy();
|
||||||
begin
|
begin
|
||||||
inherited Destroy();
|
inherited Destroy();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
function TPackage.ExecuteItem(const AFileName, AParams: String;
|
Функция: TPackage.ExecuteItem()
|
||||||
AHideMainWindow: Boolean; out AOutExitcode: Cardinal): Boolean;
|
Назначение: Запуск исполняемого файла и получение результатов запуска
|
||||||
|
Вх. параметры:
|
||||||
|
AFileName : string - путь к исполняемому файлу
|
||||||
|
AParams : string - дополнительные параметры запуска
|
||||||
|
AHideMainWindow : Boolean - скрывать главное окно ABTool (true) или нет (false)
|
||||||
|
Вых. параметры:
|
||||||
|
AOutExitcode : Cardinal - код завершения процесса
|
||||||
|
Возвращает: boolean - true при успешном запуске программы, false при неудаче
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function TPackage.ExecuteItem(const AFileName, AParams: string; AHideMainWindow: Boolean;
|
||||||
|
out AOutExitcode: Cardinal): Boolean;
|
||||||
begin
|
begin
|
||||||
|
|
||||||
end;
|
end;
|
||||||
@@ -62,12 +130,3 @@ end.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+80
-3
@@ -5,16 +5,93 @@ unit uPackageList;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, uPackage;
|
Classes, SysUtils, uFileUtils, uPackage;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
{ TPackageList }
|
{ TPackageList }
|
||||||
TPackageList = class(TList)
|
|
||||||
|
|
||||||
|
// Класс списка пакетов
|
||||||
|
TPackageList = class
|
||||||
|
private
|
||||||
|
// Тип списка пакетов
|
||||||
|
FType: TPackageType;
|
||||||
|
// Список пакетов
|
||||||
|
FPackages: array of TPackage;
|
||||||
|
// Получение пакета из списка по его номеру
|
||||||
|
function GetPackageByIndex(Index: integer): TPackage;
|
||||||
|
public
|
||||||
|
// Тип списка пакетов
|
||||||
|
property PackageType: TPackageType read FType;
|
||||||
|
// Список пакетов
|
||||||
|
property Packages[Index: Integer]: TPackage read GetPackageByIndex; default;
|
||||||
|
|
||||||
|
// Создание списка пакетов по указанному типу
|
||||||
|
procedure Load(APackageType: TPackageType);
|
||||||
|
// Заполнение списка пакетов объектами пакетов
|
||||||
|
procedure Reload();
|
||||||
|
// Получение количества пакетов в списке
|
||||||
|
function Count(): integer;
|
||||||
end; // TPackageList
|
end; // TPackageList
|
||||||
|
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
{ TPackageList }
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TPackageList.Load()
|
||||||
|
Назначение: Создание списка пакетов по указанному типу
|
||||||
|
Вх. параметры: APackageType: TPackageType - тип списка пакета
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TPackageList.Load(APackageType: TPackageType);
|
||||||
|
begin
|
||||||
|
FType := APackageType;
|
||||||
|
Reload();
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TPackageList.Reload()
|
||||||
|
Назначение: Заполнение списка пакетов объектами пакетов
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TPackageList.Reload();
|
||||||
|
var
|
||||||
|
FileList: TStringList;
|
||||||
|
FileMask: String;
|
||||||
|
Key: Integer;
|
||||||
|
begin
|
||||||
|
FPackages := nil;
|
||||||
|
case (FType) of
|
||||||
|
ptSoft: FileMask := 'soft.*.ini';
|
||||||
|
ptTools: FileMask := 'tools.*.ini';
|
||||||
|
ptUnknown: raise Exception.Create('TPackageList.Reload(): тип не может быть ptUnknown');
|
||||||
|
end;
|
||||||
|
FileList := GetABToolFileList('Packages', FileMask);
|
||||||
|
for Key := 0 to FileList.Count - 1 do
|
||||||
|
begin
|
||||||
|
SetLength(FPackages, Length(FPackages)+1);
|
||||||
|
FPackages[Key] := TPackage.Create(FileList[Key]);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Функция: TPackage.GetPackageByIndex()
|
||||||
|
Назначение: Получение пакета из списка по его номеру
|
||||||
|
Возвращает: TPackage - пакет
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function TPackageList.GetPackageByIndex(Index: integer): TPackage;
|
||||||
|
begin
|
||||||
|
Result := FPackages[Index];
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Функция: TPackage.Count()
|
||||||
|
Назначение: Получение количества пакетов в списке
|
||||||
|
Возвращает: integer - число пакетов в списке
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
function TPackageList.Count(): integer;
|
||||||
|
begin
|
||||||
|
Result := Length(FPackages);
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user