Moin Carbögen,
hier mal ein einfaches Beispiel, was ich mit Objekt für die Optionen meinte. Statt, wie üblich, Felder im Objekt anzulegen, werden die Daten immer direkt in die Inidatei geschrieben, bzw. aus ihr gelesen.
Delphi-Quellcode:
unit MyOptions;
interface
uses inifiles;
TcsOptions =
class(TObject)
private
FiniFile : TIniFile;
procedure SetStringOption(Value:
string);
function GetStringOption :
string;
public
procedure Create(
const AsFilepath :
string);
override;
procedure Destroy;
property StringOption :
string read GetStringOption
write SetStringOption;
end;
//....
implementation
procedure TcsOptions.Create(
const AsFilepath :
string);
begin
inherited;
FiniFile := TIniFile.Create(AsFilePath);
end;
procedure TcsOptions.Destroy;
begin
FreeAndNil(FiniFile);
inherited;
end;
procedure TcsOptions.SetStringOption(Value:
string);
begin
FiniFile.WriteString('
Irgendeine Section','
StringOption',Value);
FiniFile.UpdateFile;
end;
function TcsOptions.GetStringOption :
string;
begin
Result := FiniFile.ReadString('
Irgendeine Section','
StringOption','
Standardwert wenn nichts in der Ini steht');
end;
end.
Wie jetzt die jeweiligen Getxxx und Setxxx Methoden ausgestaltet sind, bzw. sein müssen, hängt von den Daten ab. Hier hab' ich das mal mit einem Stringwert gemacht.
Das Beispiel ist ungetestet, ich hab's hier direkt reingeschrieben.
Jetzt kannst Du dir, z.B. in Deinem Hauptformular, eine Eigenschaft für die Optionen hinzufügen.
Delphi-Quellcode:
interface
uses MyOptions,inifiles;
TForm1 = class(TForm)
//...
private
FOptions : TcsOptions;
public
property Options : TcsOptions read FOptions;
end;
//...
implementation
procedure TForm1.Form1Create(...);
begin
FOptions := TInifile.Create(ExtractFilePath(paramstr(0))+'Options.ini');
end;
end;
procedure TForm1.Form1Destroy(...);
begin
FreeAndNil(FOptions);
end;
Jetzt hast Du Zugriff auf Deine Optionen, und brauchst Dich nicht mehr darum zu kümmern, wie die nun gespeichert bzw. gelesen werden, nachdem Du für jede Option die Lese- und Schreibroutinen einmal festgelegt hast.