You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
2.2 KiB
117 lines
2.2 KiB
unit DataModule;
|
|
|
|
{$mode delphi}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, FileUtil, Dialogs, ActnList,
|
|
// Units needed for file info reading
|
|
fileinfo, winpeimagereader, elfreader, machoreader,
|
|
// App units
|
|
Options;
|
|
|
|
type
|
|
|
|
{ TModule }
|
|
|
|
TModule = class(TDataModule)
|
|
ActShowAdvOptions: TAction;
|
|
OpenDialogMulti: TOpenDialog;
|
|
OpenDialogSingle: TOpenDialog;
|
|
SelectDirectoryDialog: TSelectDirectoryDialog;
|
|
procedure ActShowAdvOptionsExecute(Sender: TObject);
|
|
procedure DataModuleCreate(Sender: TObject);
|
|
procedure DataModuleDestroy(Sender: TObject);
|
|
private
|
|
FOptionsFilePath: string;
|
|
|
|
procedure SaveOptions;
|
|
procedure LoadOptions;
|
|
procedure ReadVersionInfo;
|
|
public
|
|
Options: TOptions;
|
|
VersionString: string;
|
|
end;
|
|
|
|
var
|
|
Module: TModule;
|
|
|
|
implementation
|
|
|
|
uses
|
|
IniFiles, Forms, ImagingUtility, AdvOptionsForm, Utils, Config;
|
|
|
|
{$R *.lfm}
|
|
|
|
const
|
|
SOptionsFileName = 'deskewgui.ini';
|
|
|
|
{ TModule }
|
|
|
|
procedure TModule.DataModuleCreate(Sender: TObject);
|
|
begin
|
|
Application.Title := Config.ApplicationTitle;
|
|
|
|
ReadVersionInfo;
|
|
// Prefers "portable mode": config in the folder as exe if it is writable,
|
|
// standard OS location otherwise.
|
|
FOptionsFilePath := ConcatPaths([Utils.DetermineConfigFolder, SOptionsFileName]);
|
|
|
|
Options := TOptions.Create;
|
|
LoadOptions;
|
|
end;
|
|
|
|
procedure TModule.DataModuleDestroy(Sender: TObject);
|
|
begin
|
|
SaveOptions;
|
|
Options.Free;
|
|
end;
|
|
|
|
procedure TModule.LoadOptions;
|
|
var
|
|
Ini: TIniFile;
|
|
begin
|
|
Ini := TIniFile.Create(FOptionsFilePath, [ifoFormatSettingsActive]);
|
|
try
|
|
Options.LoadFromIni(Ini);
|
|
finally
|
|
Ini.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TModule.SaveOptions;
|
|
var
|
|
Ini: TIniFile;
|
|
begin
|
|
Ini := TIniFile.Create(FOptionsFilePath, [ifoFormatSettingsActive]);
|
|
try
|
|
Options.SaveToIni(Ini);
|
|
finally
|
|
Ini.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TModule.ReadVersionInfo;
|
|
var
|
|
FileVerInfo: TFileVersionInfo;
|
|
begin
|
|
FileVerInfo := TFileVersionInfo.Create(nil);
|
|
try
|
|
FileVerInfo.ReadFileInfo;
|
|
VersionString := FileVerInfo.VersionStrings.Values['FileVersion'];
|
|
VersionString := Copy(VersionString, 1, PosEx('.', VersionString, 3) - 1);
|
|
finally
|
|
FileVerInfo.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TModule.ActShowAdvOptionsExecute(Sender: TObject);
|
|
begin
|
|
FormAdvOptions.ShowModal;
|
|
end;
|
|
|
|
|
|
|
|
end.
|
|
|