НАСТРОЙКИ

Отображение формы настроек переделано. Теперь она создаётся только 1 раз при первом вызове.
Добавлен выпадающий списк для выбора локализаций. Кнопка сброса к дефолту изменена.
Чтение настроек из abtool.ini (кроме локализаций). Сброс контроллов к актуальным настройкам при каждом показе формы настроек.
Считанные настройки хранятся в глобальной переменной внутри uOptions. Таким образом:
- исключены циклические ссылки с участием dMain ради доступа к настройкам
- теперь можно только вызвать конструктор TOptions, а сам созданный объект нигде не сохранять: объект GlobalOptions уже будет доступен
Новая функция dMain.GetLocalesIniFileList для получения списка файлов локализаций.
Обновлены ini-файлы. Мелочи по оформлению кода.
This commit is contained in:
2019-01-26 01:37:22 +08:00
parent e968856a55
commit 685274a356
15 changed files with 1325 additions and 194 deletions

View File

@@ -26,9 +26,9 @@ type
TPackage = class(TIniFile)
strict private
// Имя пакета: [PackageInfo] Name
FName: String;
FName: string;
// Описание пакета: [PackageInfo] Description
FDescription: String;
FDescription: string;
// Тип пакета
FType: TPackageType;
private
@@ -38,19 +38,19 @@ type
function SetType(): TPackageType;
public
// Имя пакета: [PackageInfo] Name
property Name: String read FName;
property Name: string read FName;
// Описание пакета: [PackageInfo] Description
property Description: String read FDescription;
property Description: string read FDescription;
// Тип пакета
property PackageType: TPackageType read FType;
// Создание объекта пакета и установка информации о нём
constructor Create(APkgFilename: Ansistring); overload;
// Деструктор
constructor Create(AIniFilename: string); overload;
// Деструктор объекта пакета
destructor Destroy(); override;
// Запуск исполняемого файла и получение результатов запуска
function ExecuteItem(const AFileName, AParams: String; AHideMainWindow: Boolean;
function ExecuteItem(const AFileName, AParams: string; AHideMainWindow: Boolean;
Out AOutExitcode: Cardinal): Boolean;
end; // TPackage
@@ -61,33 +61,33 @@ implementation
{------------------------------------------------------------------------------
Конструктор: TPackage.Create()
Назначение: Создание объекта пакета и установка информации о нём
Вх. параметры: APkgFilename: Ansistring - путь к ini-файлу
Вх. параметры: AIniFilename: string - путь к ini-файлу
------------------------------------------------------------------------------}
constructor TPackage.Create(APkgFilename: Ansistring);
constructor TPackage.Create(AIniFilename: string);
begin
inherited Create(APkgFilename, [ifoStripComments, ifoStripInvalid]);
inherited Create(AIniFilename, [ifoStripComments, ifoStripInvalid]);
SetProperties();
end;
{------------------------------------------------------------------------------
Процедура: TPackage.SetType()
Назначение: Установка информации о пакете
Процедура: TPackage.SetType()
Назначение: Установка информации о пакете
------------------------------------------------------------------------------}
procedure TPackage.SetProperties();
begin
FName := ReadString('PackageInfo', 'Name', '<без названия>');
FDescription := ReadString('PackageInfo', 'Description', '<без описания>');
FName := Readstring('PackageInfo', 'Name', '<без названия>');
FDescription := Readstring('PackageInfo', 'Description', '<без описания>');
FType := SetType();
end;
{------------------------------------------------------------------------------
Функция: TPackage.SetType()
Назначение: Определение типа пакета по имени его файла
Возвращает: TPackageType - тип пакета
Функция: TPackage.SetType()
Назначение: Определение типа пакета по имени его файла
Возвращает: TPackageType - тип пакета
------------------------------------------------------------------------------}
function TPackage.SetType(): TPackageType;
var
SubStr: String;
SubStr: string;
begin
SubStr := Copy(ExtractFileName(FileName), 1, 4);
if (LowerCase(SubStr) = 'soft') then
@@ -99,7 +99,7 @@ begin
end;
{------------------------------------------------------------------------------
Деструктор: TPackage.Destroy()
Деструктор: TPackage.Destroy()
------------------------------------------------------------------------------}
destructor TPackage.Destroy();
begin
@@ -110,14 +110,14 @@ end;
Функция: TPackage.ExecuteItem()
Назначение: Запуск исполняемого файла и получение результатов запуска
Вх. параметры:
AFileName : String - путь к исполняемому файлу
AParams : String - дополнительные параметры запуска
AFileName : string - путь к исполняемому файлу
AParams : string - дополнительные параметры запуска
AHideMainWindow : Boolean - скрывать главное окно ABTool (true) или нет (false)
Вых. параметры:
AOutExitcode : Cardinal - код завершения процесса
Возвращает: boolean - true при успешном запуске программы, false при неудаче
------------------------------------------------------------------------------}
function TPackage.ExecuteItem(const AFileName, AParams: String; AHideMainWindow: Boolean;
function TPackage.ExecuteItem(const AFileName, AParams: string; AHideMainWindow: Boolean;
out AOutExitcode: Cardinal): Boolean;
begin