Thema: Delphi TInifile

Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: TInifile

  Alt 7. Sep 2003, 15:44
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat