Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 685274a356 | |||
| e968856a55 | |||
| f20447a54d | |||
| d9a9332907 | |||
| c61b66b684 | |||
| 15d4e0bf31 | |||
| ddb1d7ca8f | |||
| 43d2f180fd | |||
| c473d722da | |||
| 63823b8e6e |
@@ -8,3 +8,4 @@
|
||||
*.ppu
|
||||
*.obj
|
||||
*.o
|
||||
*.lps
|
||||
|
||||
+20
-5
@@ -19,9 +19,9 @@
|
||||
<VersionInfo>
|
||||
<UseVersionInfo Value="True"/>
|
||||
<MinorVersionNr Value="7"/>
|
||||
<RevisionNr Value="1"/>
|
||||
<Language Value="0419"/>
|
||||
<Attributes pvaDebug="True" pvaPrivateBuild="True"/>
|
||||
<StringTable ProductVersion="0.7.1.0"/>
|
||||
</VersionInfo>
|
||||
<BuildModes Count="2">
|
||||
<Item1 Name="Debug" Default="True"/>
|
||||
@@ -75,7 +75,7 @@
|
||||
<PackageName Value="LCL"/>
|
||||
</Item2>
|
||||
</RequiredPackages>
|
||||
<Units Count="7">
|
||||
<Units Count="9">
|
||||
<Unit0>
|
||||
<Filename Value="ABTool.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
@@ -91,7 +91,7 @@
|
||||
<Unit2>
|
||||
<Filename Value="dmain.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="MainDM"/>
|
||||
<ComponentName Value="dmMain"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="DataModule"/>
|
||||
<UnitName Value="dMain"/>
|
||||
@@ -116,6 +116,19 @@
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="uPackageList"/>
|
||||
</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>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
@@ -148,7 +161,6 @@
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<DebugInfoType Value="dsDwarf2Set"/>
|
||||
<UseHeaptrc Value="True"/>
|
||||
<TrashVariables Value="True"/>
|
||||
<UseExternalDbgSyms Value="True"/>
|
||||
</Debugging>
|
||||
@@ -166,7 +178,7 @@
|
||||
</Other>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<Exceptions Count="3">
|
||||
<Exceptions Count="4">
|
||||
<Item1>
|
||||
<Name Value="EAbort"/>
|
||||
</Item1>
|
||||
@@ -176,6 +188,9 @@
|
||||
<Item3>
|
||||
<Name Value="EFOpenError"/>
|
||||
</Item3>
|
||||
<Item4>
|
||||
<Name Value="RunError(211)"/>
|
||||
</Item4>
|
||||
</Exceptions>
|
||||
</Debugging>
|
||||
</CONFIG>
|
||||
|
||||
+5
-35
@@ -12,47 +12,17 @@ uses {$IFDEF UNIX} {$IFDEF UseCThreads}
|
||||
uFileUtils,
|
||||
uPackage,
|
||||
uPackageUtils,
|
||||
uPackageList;
|
||||
uPackageList,
|
||||
fOptions,
|
||||
uOptions;
|
||||
|
||||
{$R *.res}
|
||||
|
||||
var
|
||||
// путь к файлу ABTool.exe
|
||||
ABToolExePath: String;
|
||||
|
||||
// путь к директории ABTool
|
||||
ABToolDataPath: String;
|
||||
|
||||
// путь к директории ABTool\Packages
|
||||
ABToolPkgPath: String;
|
||||
|
||||
// путь к директории ABTool\Languages
|
||||
ABToolLangPath: String;
|
||||
|
||||
// путь к директории ABTool\Logs
|
||||
ABToolLogPath: String;
|
||||
|
||||
begin
|
||||
RequireDerivedFormResource := True;
|
||||
Application.Initialize;
|
||||
|
||||
// настройка путей к директориям
|
||||
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.CreateForm(TdmMain, dmMain);
|
||||
Application.CreateForm(TfmMain, fmMain);
|
||||
Application.Run;
|
||||
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]
|
||||
Locale=
|
||||
|
||||
ScreenSnap=1
|
||||
ShowPkgDesc=1
|
||||
DrawOutlines=1
|
||||
OnTop=0
|
||||
|
||||
ChkExitCodes=0
|
||||
DntUnChkItems=1
|
||||
ColorSoftTree=1
|
||||
ShowProgress=1
|
||||
ExpandSoft=1
|
||||
QuietREG=0
|
||||
ExpandSoft=1
|
||||
|
||||
HideOnTool=0
|
||||
ExpandTools=1
|
||||
ShowLog=1
|
||||
DrawOutlines=1
|
||||
ScreenSnap=1
|
||||
OnTop=0
|
||||
ShowPkgDesc=1
|
||||
SrchVisible=0
|
||||
[UserSoftPackages]
|
||||
UserSoftPkg1=
|
||||
UserSoftPkg2=
|
||||
UserSoftPkg3=
|
||||
LastUserSoftPkg=0
|
||||
[UserToolPackages]
|
||||
UserToolPkg1=
|
||||
UserToolPkg2=
|
||||
UserToolPkg3=
|
||||
LastUserToolPkg=0
|
||||
|
||||
Left=
|
||||
Top=
|
||||
Width=
|
||||
Height=
|
||||
@@ -10,7 +10,7 @@ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR I
|
||||
|
||||
Лицензия 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/)
|
||||
|
||||
## 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
|
||||
|
||||
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:
|
||||
* 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/)
|
||||
|
||||
## Требования к среде разработки
|
||||
|
||||
* 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)**.
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
object MainDM: TMainDM
|
||||
object dmMain: TdmMain
|
||||
OnCreate = DataModuleCreate
|
||||
OldCreateOrder = False
|
||||
Height = 84
|
||||
HorizontalOffset = 313
|
||||
HorizontalOffset = 301
|
||||
VerticalOffset = 612
|
||||
Width = 717
|
||||
Width = 810
|
||||
PPI = 96
|
||||
object imgIcons: TImageList
|
||||
left = 32
|
||||
@@ -3627,6 +3628,8 @@ object MainDM: TMainDM
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||
}
|
||||
ImageIndex = 21
|
||||
ShortCut = 24614
|
||||
OnClick = mbCollapseTreeClick
|
||||
end
|
||||
object mbExpandTree: TMenuItem
|
||||
Caption = 'Развернуть'
|
||||
@@ -3667,6 +3670,53 @@ object MainDM: TMainDM
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||
}
|
||||
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
|
||||
object mbCheck: TMenuItem
|
||||
@@ -3710,6 +3760,8 @@ object MainDM: TMainDM
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||
}
|
||||
ImageIndex = 95
|
||||
ShortCut = 16449
|
||||
OnClick = mbCheckAllClick
|
||||
end
|
||||
object mbCheckInvert: TMenuItem
|
||||
Caption = 'Инвертировать'
|
||||
@@ -3790,11 +3842,13 @@ object MainDM: TMainDM
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||
}
|
||||
ImageIndex = 96
|
||||
ShortCut = 24641
|
||||
OnClick = mbCheckNoneClick
|
||||
end
|
||||
end
|
||||
object mbOptions: TMenuItem
|
||||
Caption = 'Настройки'
|
||||
object mbOptonsMain: TMenuItem
|
||||
object mbOptionsMain: TMenuItem
|
||||
Caption = 'Основные...'
|
||||
Bitmap.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
@@ -3833,6 +3887,7 @@ object MainDM: TMainDM
|
||||
BF63FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||
}
|
||||
ImageIndex = 4
|
||||
OnClick = mbOptionsMainClick
|
||||
end
|
||||
object mbOptionsPkg: TMenuItem
|
||||
Caption = 'Управление пакетами...'
|
||||
@@ -3873,6 +3928,7 @@ object MainDM: TMainDM
|
||||
D631FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||
}
|
||||
ImageIndex = 103
|
||||
OnClick = mbOptionsPkgClick
|
||||
end
|
||||
end
|
||||
object mbHelp: TMenuItem
|
||||
@@ -3917,6 +3973,7 @@ object MainDM: TMainDM
|
||||
}
|
||||
Hint = 'Откроется в браузере по умолчанию'
|
||||
ImageIndex = 61
|
||||
ShortCut = 112
|
||||
end
|
||||
object mbAbout: TMenuItem
|
||||
Caption = 'О программе...'
|
||||
@@ -3957,6 +4014,7 @@ object MainDM: TMainDM
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||
}
|
||||
ImageIndex = 56
|
||||
OnClick = mbAboutClick
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -5,14 +5,17 @@ unit dMain;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, Controls, Menus;
|
||||
Classes, SysUtils, FileUtil, Controls, Menus, Forms, PopupNotifier, Dialogs,
|
||||
VirtualTrees, uPackage, uPackageList, fOptions, uOptions;
|
||||
|
||||
type
|
||||
|
||||
{ TMainDM }
|
||||
{ TdmMain }
|
||||
|
||||
TMainDM = class(TDataModule)
|
||||
TdmMain = class(TDataModule)
|
||||
imgIcons: TImageList;
|
||||
mbRefresh: TMenuItem;
|
||||
MenuItem1: TMenuItem;
|
||||
mmMain: TMainMenu;
|
||||
mbInstallCheckAll: TMenuItem;
|
||||
mbInstallExpandTree: TMenuItem;
|
||||
@@ -30,25 +33,243 @@ type
|
||||
mbHelp: TMenuItem;
|
||||
mbOnlineHelp: TMenuItem;
|
||||
mbAbout: TMenuItem;
|
||||
mbOptonsMain: TMenuItem;
|
||||
mbOptionsMain: TMenuItem;
|
||||
mbOptionsPkg: TMenuItem;
|
||||
pmInstallTree: 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
|
||||
|
||||
// Форма настроек
|
||||
fmOptions: TfmOptions;
|
||||
// Подготовка директорий
|
||||
procedure PrepareDirs();
|
||||
// Подготовка списков пакетов
|
||||
procedure PreparePackageLists();
|
||||
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;
|
||||
|
||||
var
|
||||
MainDM: TMainDM;
|
||||
dmMain: TdmMain;
|
||||
|
||||
implementation
|
||||
|
||||
uses fMain;
|
||||
|
||||
{$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.
|
||||
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
object fmMain: TfmMain
|
||||
Left = 309
|
||||
Left = 1513
|
||||
Height = 450
|
||||
Top = 88
|
||||
Top = 182
|
||||
Width = 350
|
||||
BorderStyle = bsSingle
|
||||
BorderIcons = [biSystemMenu, biMinimize]
|
||||
Caption = 'ABTool'
|
||||
ClientHeight = 430
|
||||
ClientWidth = 350
|
||||
Constraints.MaxHeight = 450
|
||||
Constraints.MaxWidth = 350
|
||||
Constraints.MaxHeight = 500
|
||||
Constraints.MaxWidth = 400
|
||||
Constraints.MinHeight = 450
|
||||
Constraints.MinWidth = 350
|
||||
Font.CharSet = RUSSIAN_CHARSET
|
||||
Font.Height = -11
|
||||
Font.Name = 'Microsoft Sans Serif'
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Pitch = fpVariable
|
||||
Font.Quality = fqDraft
|
||||
Icon.Data = {
|
||||
@@ -3210,7 +3210,7 @@ object fmMain: TfmMain
|
||||
71FE000F5EFF000773FE000387FE800176FD80002DC38001693C0003D1190007
|
||||
36A3800F57F7800F8AFFC00F76FFC01F8BFFE03FBEFFF47FBDFF
|
||||
}
|
||||
Menu = MainDM.mmMain
|
||||
Menu = dmMain.mmMain
|
||||
OnCreate = FormCreate
|
||||
Position = poScreenCenter
|
||||
ShowHint = True
|
||||
@@ -3222,45 +3222,50 @@ object fmMain: TfmMain
|
||||
Width = 350
|
||||
ActivePage = tabSoft
|
||||
Align = alClient
|
||||
Images = MainDM.imgIcons
|
||||
TabHeight = 20
|
||||
TabIndex = 0
|
||||
TabOrder = 0
|
||||
TabWidth = 86
|
||||
OnChange = PageControlChange
|
||||
object tabSoft: TTabSheet
|
||||
Caption = 'Установка'
|
||||
ClientHeight = 402
|
||||
ClientHeight = 404
|
||||
ClientWidth = 342
|
||||
ImageIndex = 104
|
||||
object vstSoftPkgContents: TVirtualStringTree
|
||||
Left = 0
|
||||
Height = 297
|
||||
Top = 64
|
||||
Height = 301
|
||||
Top = 62
|
||||
Width = 342
|
||||
Align = alClient
|
||||
BorderSpacing.Bottom = 3
|
||||
BorderStyle = bsNone
|
||||
CheckImageKind = ckDarkCheck
|
||||
DefaultText = 'Node'
|
||||
Header.AutoSizeIndex = 0
|
||||
DefaultText = 'Программа'
|
||||
DragOperations = []
|
||||
Header.AutoSizeIndex = -1
|
||||
Header.Columns = <>
|
||||
Header.MainColumn = -1
|
||||
IncrementalSearch = isVisibleOnly
|
||||
IncrementalSearchStart = ssAlwaysStartOver
|
||||
TabOrder = 0
|
||||
TreeOptions.AutoOptions = [toAutoDropExpand, toAutoExpand, toAutoScrollOnExpand, toAutoSort, toAutoTristateTracking, toAutoDeleteMovedNodes, toAutoChangeScale]
|
||||
TreeOptions.MiscOptions = [toAcceptOLEDrop, toCheckSupport, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning, toEditOnClick]
|
||||
OnGetText = vstSoftPkgContentsGetText
|
||||
OnInitNode = vstSoftPkgContentsInitNode
|
||||
end
|
||||
object pnSoftTop: TPanel
|
||||
Left = 0
|
||||
Height = 25
|
||||
Height = 23
|
||||
Top = 0
|
||||
Width = 342
|
||||
Align = alTop
|
||||
AutoSize = True
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 25
|
||||
ClientHeight = 23
|
||||
ClientWidth = 342
|
||||
TabOrder = 1
|
||||
object cmbSoftPkgSelect: TComboBox
|
||||
Left = 0
|
||||
Height = 23
|
||||
Height = 21
|
||||
Top = 2
|
||||
Width = 289
|
||||
Align = alClient
|
||||
@@ -3268,12 +3273,13 @@ object fmMain: TfmMain
|
||||
BorderSpacing.Top = 2
|
||||
BorderSpacing.Right = 1
|
||||
ItemHeight = 13
|
||||
OnChange = cmbSoftPkgSelectChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 0
|
||||
end
|
||||
object btnSoftPkgEdit: TSpeedButton
|
||||
Left = 316
|
||||
Height = 25
|
||||
Height = 23
|
||||
Hint = 'Редактировать пакет'
|
||||
Top = 0
|
||||
Width = 26
|
||||
@@ -3319,7 +3325,7 @@ object fmMain: TfmMain
|
||||
end
|
||||
object btnSoftPkgReload: TSpeedButton
|
||||
Left = 290
|
||||
Height = 25
|
||||
Height = 23
|
||||
Hint = 'Перезагрузить пакет'
|
||||
Top = 0
|
||||
Width = 26
|
||||
@@ -3366,7 +3372,7 @@ object fmMain: TfmMain
|
||||
object labSoftPkgDescription: TLabel
|
||||
Left = 0
|
||||
Height = 13
|
||||
Top = 48
|
||||
Top = 46
|
||||
Width = 342
|
||||
Align = alTop
|
||||
BorderSpacing.Bottom = 3
|
||||
@@ -3377,7 +3383,7 @@ object fmMain: TfmMain
|
||||
object edSoftSearch: TEdit
|
||||
Left = 0
|
||||
Height = 13
|
||||
Top = 30
|
||||
Top = 28
|
||||
Width = 342
|
||||
Align = alTop
|
||||
BorderSpacing.Top = 5
|
||||
@@ -3389,13 +3395,13 @@ object fmMain: TfmMain
|
||||
object btnSoftStart: TButton
|
||||
Left = 0
|
||||
Height = 38
|
||||
Top = 364
|
||||
Top = 366
|
||||
Width = 342
|
||||
Align = alBottom
|
||||
Caption = 'Приступить к установке'
|
||||
Font.CharSet = RUSSIAN_CHARSET
|
||||
Font.Height = -16
|
||||
Font.Name = 'Microsoft Sans Serif'
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Pitch = fpVariable
|
||||
Font.Quality = fqDraft
|
||||
ParentFont = False
|
||||
@@ -3404,7 +3410,7 @@ object fmMain: TfmMain
|
||||
end
|
||||
object tabTools: TTabSheet
|
||||
Caption = 'Утилиты'
|
||||
ClientHeight = 402
|
||||
ClientHeight = 400
|
||||
ClientWidth = 342
|
||||
ImageIndex = 62
|
||||
object edToolsSearch: TEdit
|
||||
@@ -3432,7 +3438,7 @@ object fmMain: TfmMain
|
||||
TabOrder = 1
|
||||
object cmbToolsPkgSelect: TComboBox
|
||||
Left = 0
|
||||
Height = 23
|
||||
Height = 21
|
||||
Top = 2
|
||||
Width = 289
|
||||
Align = alClient
|
||||
@@ -3440,6 +3446,7 @@ object fmMain: TfmMain
|
||||
BorderSpacing.Top = 2
|
||||
BorderSpacing.Right = 1
|
||||
ItemHeight = 13
|
||||
OnChange = cmbToolsPkgSelectChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 0
|
||||
end
|
||||
@@ -3532,23 +3539,9 @@ object fmMain: TfmMain
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||
}
|
||||
OnClick = btnToolsPkgReloadClick
|
||||
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
|
||||
Left = 0
|
||||
Height = 13
|
||||
@@ -3563,20 +3556,21 @@ object fmMain: TfmMain
|
||||
end
|
||||
object vstToolsPkgContents: TVirtualStringTree
|
||||
Left = 0
|
||||
Height = 308
|
||||
Height = 338
|
||||
Top = 62
|
||||
Width = 342
|
||||
Align = alClient
|
||||
BorderStyle = bsNone
|
||||
CheckImageKind = ckDarkCheck
|
||||
DefaultText = 'Node'
|
||||
DefaultText = 'Утилита'
|
||||
DragOperations = []
|
||||
Header.AutoSizeIndex = 0
|
||||
Header.AutoSizeIndex = -1
|
||||
Header.Columns = <>
|
||||
Header.MainColumn = -1
|
||||
TabOrder = 3
|
||||
TreeOptions.MiscOptions = [toAcceptOLEDrop, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning, toReadOnly, toEditOnClick]
|
||||
TreeOptions.SelectionOptions = [toAlwaysSelectNode]
|
||||
IncrementalSearch = isVisibleOnly
|
||||
IncrementalSearchStart = ssAlwaysStartOver
|
||||
TabOrder = 2
|
||||
TreeOptions.AutoOptions = [toAutoDropExpand, toAutoExpand, toAutoScrollOnExpand, toAutoSort, toAutoTristateTracking, toAutoDeleteMovedNodes, toAutoChangeScale]
|
||||
OnGetText = vstToolsPkgContentsGetText
|
||||
end
|
||||
end
|
||||
object tabSystem: TTabSheet
|
||||
|
||||
@@ -6,18 +6,32 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
|
||||
StdCtrls, ExtCtrls, Buttons, ActnList, EditBtn, Menus, VirtualTrees, Types,
|
||||
uFileUtils, uPackage, uPackageUtils;
|
||||
StdCtrls, ExtCtrls, Buttons, ActnList, EditBtn, Menus, virtualtreeview_package,
|
||||
VirtualTrees, dMain, uPackage, uPackageList;
|
||||
|
||||
type
|
||||
|
||||
// Указатель на тип данных TRootNodeData
|
||||
PRootNodeData = ^TRootNodeData;
|
||||
// Тип данных для работы с корневыми нодами
|
||||
TRootNodeData = record
|
||||
FName: String;
|
||||
end;
|
||||
|
||||
// Указатель на тип данных TChildNodeData
|
||||
PChildNodeData = ^TChildNodeData;
|
||||
// Тип данных для работы с дочерними нодами
|
||||
TChildNodeData = record
|
||||
FName: String;
|
||||
FPath: String;
|
||||
end;
|
||||
|
||||
{ TfmMain }
|
||||
|
||||
TfmMain = class(TForm)
|
||||
btnSoftStart: TButton;
|
||||
btnToolsPkgEdit: TSpeedButton;
|
||||
btnToolsPkgReload: TSpeedButton;
|
||||
btnToolsRun: TButton;
|
||||
cmbSoftPkgSelect: TComboBox;
|
||||
cmbToolsPkgSelect: TComboBox;
|
||||
edSoftSearch: TEdit;
|
||||
@@ -35,12 +49,43 @@ type
|
||||
tabTools: TTabSheet;
|
||||
vstSoftPkgContents: TVirtualStringTree;
|
||||
vstToolsPkgContents: TVirtualStringTree;
|
||||
procedure btnSoftPkgReloadClick(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
|
||||
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
|
||||
|
||||
// Выбор пакета. Заполняется дерево и отображается описание пакета.
|
||||
procedure SetActivePackage(AType: TPackageType; APackageIndex: Integer);
|
||||
// Перезагрузка дерева пакетов и выпадающих списков пакетов по указанному типу
|
||||
procedure ReloadPackagesList(APackageType: TPackageType);
|
||||
end;
|
||||
|
||||
var
|
||||
@@ -52,22 +97,243 @@ implementation
|
||||
|
||||
{ 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
|
||||
ReloadSoftPackagesList;
|
||||
Result := AVST.AddChild(ARootNode);
|
||||
AVST.ValidateNode(Result, False);
|
||||
ptrData := AVST.GetNodeData(Result);
|
||||
ptrData^.FName := AName;
|
||||
//if Assigned(APath) then
|
||||
ptrData^.FPath := APath;
|
||||
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);
|
||||
begin
|
||||
ReloadSoftPackagesList;
|
||||
ReloadPackagesList(ptSoft);
|
||||
ReloadPackagesList(ptTools);
|
||||
PageControl.ActivePageIndex := 0;
|
||||
end;
|
||||
|
||||
|
||||
procedure TfmMain.ReloadSoftPackagesList();
|
||||
{------------------------------------------------------------------------------
|
||||
Процедура: TfmMain.btnSoftPkgReloadClick()
|
||||
Назначение: Обрабока клика по кнопке обновления выпадающего списка пакетов программ
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TfmMain.btnSoftPkgReloadClick(Sender: TObject);
|
||||
begin
|
||||
cmbSoftPkgSelect.Items.AddStrings(GetPackagesIniFileList(ptSoft, False), True);
|
||||
cmbSoftPkgSelect.ItemIndex := 0;
|
||||
ReloadPackagesList(ptSoft);
|
||||
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.
|
||||
|
||||
|
||||
+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
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, Types, uPackage;
|
||||
Classes, SysUtils, FileUtil, uPackage;
|
||||
|
||||
function GetFileList(Path, FileMask: String; FullPaths: Boolean = True): TStringList;
|
||||
function GetABToolFileList(SubDir, FileMask: String;
|
||||
FullPaths: Boolean = True): TStringList;
|
||||
function GetPackagesIniFileList(PackageType: TPackageType;
|
||||
FullPaths: Boolean = True): TStringList;
|
||||
// Получение списка файлов в директории
|
||||
function GetFileList(APath, AFileMask: String; AFullPaths: Boolean = True): TStringList;
|
||||
|
||||
// Получение списка всех файлов внутри директории ABTool
|
||||
function GetABToolFileList(ASubDir, AFileMask: String; AFullPaths: Boolean = True): TStringList;
|
||||
|
||||
// Получение списка всех файлов пакетов
|
||||
function GetPackagesIniFileList(APackageType: TPackageType; AFullPaths: Boolean = True): TStringList;
|
||||
|
||||
// Получение списка всех файлов локализаций
|
||||
function GetLocalesIniFileList(AFullPaths: Boolean = True): TStringList;
|
||||
|
||||
implementation
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Функция: GetFileList
|
||||
Назначение: Получает список файлов в директории
|
||||
Назначение: Получение списка файлов в директории
|
||||
Вх. параметры:
|
||||
Path: string - путь к директории, список файлов которой нужно получить
|
||||
FileMask: string - маска файлов, по которой нужно отфильтровать список файлов
|
||||
FullPaths: boolean - возвращать полные пути (true) или только имена
|
||||
APath: string - путь к директории, список файлов которой нужно получить
|
||||
AFileMask: string - маска файлов, по которой нужно отфильтровать список файлов
|
||||
AFullPaths: boolean - возвращать полные пути (true) или только имена
|
||||
файлов (false). По умолчанию true.
|
||||
Возвращает:
|
||||
TStringList - список строк с полными путями или только с именами файлов
|
||||
------------------------------------------------------------------------------}
|
||||
function GetFileList(Path, FileMask: String; FullPaths: Boolean = True): TStringList;
|
||||
function GetFileList(APath, AFileMask: String; AFullPaths: Boolean = True): TStringList;
|
||||
var
|
||||
SearchRec: TSearchRec;
|
||||
ResultLines: TStringList;
|
||||
begin
|
||||
ResultLines := TStringList.Create;
|
||||
Path := IncludeTrailingPathDelimiter(Path);
|
||||
if FindFirst(Path + FileMask, faNormal, SearchRec) = 0 then
|
||||
APath := IncludeTrailingPathDelimiter(APath);
|
||||
if FindFirst(APath + AFileMask, faNormal, SearchRec) = 0 then
|
||||
begin
|
||||
repeat
|
||||
if (SearchRec.Attr <> faDirectory) then
|
||||
begin
|
||||
if FullPaths then
|
||||
ResultLines.Add(Path + SearchRec.Name)
|
||||
if AFullPaths then
|
||||
ResultLines.Add(APath + SearchRec.Name)
|
||||
else
|
||||
ResultLines.Add(SearchRec.Name);
|
||||
end;
|
||||
@@ -51,46 +57,55 @@ end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Функция: GetABToolFileList
|
||||
Назначение: Получает список всех файлов внутри директории ABTool\
|
||||
Назначение: Получение списка всех файлов внутри директории ABTool\
|
||||
Вх. параметры:
|
||||
SubDir: string - имя директории внутри ABTool\
|
||||
FileMask: string - маска файлов, по которой нужно отфильтровать список файлов
|
||||
FullPaths: boolean - возвращать полные пути (true) или только имена
|
||||
ASubDir: string - имя директории внутри ABTool\
|
||||
AFileMask: string - маска файлов, по которой нужно отфильтровать список файлов
|
||||
AFullPaths: boolean - возвращать полные пути (true) или только имена
|
||||
файлов (false). По умолчанию true.
|
||||
Возвращает:
|
||||
TStringList - список строк с полными путями или только с именами файлов пакетов
|
||||
------------------------------------------------------------------------------}
|
||||
function GetABToolFileList(SubDir, FileMask: String;
|
||||
FullPaths: Boolean = True): TStringList;
|
||||
function GetABToolFileList(ASubDir, AFileMask: String; AFullPaths: Boolean = True): TStringList;
|
||||
begin
|
||||
Result := GetFileList(ExtractFilePath(ParamStr(0)) + 'ABTool\' +
|
||||
SubDir, FileMask, FullPaths);
|
||||
Result := GetFileList(ExtractFilePath(ParamStr(0)) + 'ABTool\' + ASubDir, AFileMask, AFullPaths);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Функция: GetPackagesIniFileList
|
||||
Назначение: Получает список всех пакетов
|
||||
Назначение: Получение списка всех файлов пакетов
|
||||
Вх. параметры:
|
||||
PackageType: TPackageType - тип пакета: ptSoft либо ptTools
|
||||
FullPaths: boolean - возвращать полные пути (true) или только имена
|
||||
APackageType: TPackageType - тип пакета: ptSoft либо ptTools
|
||||
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.
|
||||
Возвращает:
|
||||
TStringList - список строк с полными путями или только с именами файлов пакетов
|
||||
Исключения:
|
||||
TException - при попытке передать ptUnknown
|
||||
------------------------------------------------------------------------------}
|
||||
function GetPackagesIniFileList(PackageType: TPackageType;
|
||||
FullPaths: Boolean = True): TStringList;
|
||||
function GetLocalesIniFileList(AFullPaths: Boolean = True): TStringList;
|
||||
begin
|
||||
case (PackageType) of
|
||||
ptSoft: Result := GetABToolFileList('Packages', 'soft.*.ini', FullPaths);
|
||||
ptTools: Result := GetABToolFileList('Packages', 'tools.*.ini', FullPaths);
|
||||
ptUnknown: raise Exception.Create(
|
||||
'GetPackagesIniFileList(): передан ptUnknown');
|
||||
end;
|
||||
Result := GetABToolFileList('Languages', '*.lng', AFullPaths);
|
||||
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
|
||||
{ TPackageType }
|
||||
|
||||
TPackageType = (ptSoft, ptTools, ptUnknown);
|
||||
// Перечисление типов пакета
|
||||
TPackageType = (
|
||||
// Пакет программ для установки
|
||||
ptSoft,
|
||||
// Пакет утилит
|
||||
ptTools,
|
||||
// Неизвестный пакет
|
||||
ptUnknown
|
||||
);
|
||||
|
||||
{ TPackage }
|
||||
|
||||
TPackage = class//(TCustomIniFile)
|
||||
// Класс пакета
|
||||
TPackage = class(TIniFile)
|
||||
strict private
|
||||
FName: String;
|
||||
FDescription: String;
|
||||
// Имя пакета: [PackageInfo] Name
|
||||
FName: string;
|
||||
// Описание пакета: [PackageInfo] Description
|
||||
FDescription: string;
|
||||
// Тип пакета
|
||||
FType: TPackageType;
|
||||
private
|
||||
// Установка информации о пакете
|
||||
procedure SetProperties();
|
||||
// Определение типа пакета по имени его файла
|
||||
function SetType(): TPackageType;
|
||||
public
|
||||
IniFile: TIniFile;
|
||||
Groups: TStringList;
|
||||
//--------
|
||||
property Name: String read FName;
|
||||
property Description: String read FDescription;
|
||||
// Имя пакета: [PackageInfo] Name
|
||||
property Name: string read FName;
|
||||
// Описание пакета: [PackageInfo] Description
|
||||
property Description: string read FDescription;
|
||||
// Тип пакета
|
||||
property PackageType: TPackageType read FType;
|
||||
//--------
|
||||
constructor Create(APkgFilename: String);
|
||||
|
||||
// Создание объекта пакета и установка информации о нём
|
||||
constructor Create(AIniFilename: string); overload;
|
||||
// Деструктор объекта пакета
|
||||
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
|
||||
|
||||
implementation
|
||||
|
||||
{ TPackage }
|
||||
|
||||
constructor TPackage.Create(APkgFilename: String);
|
||||
{------------------------------------------------------------------------------
|
||||
Конструктор: TPackage.Create()
|
||||
Назначение: Создание объекта пакета и установка информации о нём
|
||||
Вх. параметры: AIniFilename: string - путь к ini-файлу
|
||||
------------------------------------------------------------------------------}
|
||||
constructor TPackage.Create(AIniFilename: string);
|
||||
begin
|
||||
|
||||
inherited Create(AIniFilename, [ifoStripComments, ifoStripInvalid]);
|
||||
SetProperties();
|
||||
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();
|
||||
begin
|
||||
inherited Destroy();
|
||||
end;
|
||||
|
||||
|
||||
function TPackage.ExecuteItem(const AFileName, AParams: String;
|
||||
AHideMainWindow: Boolean; out AOutExitcode: Cardinal): Boolean;
|
||||
{------------------------------------------------------------------------------
|
||||
Функция: TPackage.ExecuteItem()
|
||||
Назначение: Запуск исполняемого файла и получение результатов запуска
|
||||
Вх. параметры:
|
||||
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
|
||||
|
||||
end;
|
||||
@@ -62,12 +130,3 @@ end.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+80
-3
@@ -5,16 +5,93 @@ unit uPackageList;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, uPackage;
|
||||
Classes, SysUtils, uFileUtils, uPackage;
|
||||
|
||||
type
|
||||
|
||||
{ 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
|
||||
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user