Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#18

Re: INI, Registry, ThaXML-Library was ist sinnvoll

  Alt 26. Feb 2008, 03:36
Nene, damit lockt mich keiner hinter dem Ofen hervor. Klar, dass die INIs "nur" eindimensional sind. Aber ich brauche doch keine Baumstruktur, um irgendwelche Fensterkoordinaten zu speichern, oder feste Werte. Um dann noch dafür zu sorgen, dass wirklich alles bei Deinstallation weg ist ? Nochmals : wo liegt der Vorteil ? Wann / Wo / Wofür ist es nötig, tatsächlich für einzelne Benutzer separate Einstellungen zu speichern ? Wie gesagt, ist das notwendig, dann lasse ich mir ja noch ein benutzereigenes User-Verzeichnis gefallen. So etwa kann schon Sinn machen. Die Registry niemals ! Und XML ist für den Zweck IMHO auch überdimensioniert.

Wie hat sich negaH letzens geäüßert ? Er sei verknöchert oder wie ? Tja, vielleicht trifft das auf mich ja auch zu. Ich lasse die INI selber werkeln (zumindest für Fensterkoordinaten usw.).

Delphi-Quellcode:
procedure Tfrm.FormShow(Sender: TObject);
var FensterIni : TIniFile;
begin
  inherited;
  FensterIni := TIniFile.Create(FensterDateiName);
  try
    Left := FensterIni.ReadInteger(Name,'Left',Left);
    Top := FensterIni.ReadInteger(Name,'Top',Top);
    Width := FensterIni.ReadInteger(Name,'Width',Width);
    Height := FensterIni.ReadInteger(Name,'Height',Height);
  finally
    FensterIni.Free;
  end;
end;

procedure Tfrm.FormClose(Sender: TObject; var Action: TCloseAction);
var FensterIni : TIniFile;
begin
  inherited;
  if not CDStart then begin
    FensterIni := TIniFile.Create(FensterDateiName);
    try
      FensterIni.WriteInteger(Name,'Left',Left);
      FensterIni.WriteInteger(Name,'Top',Top);
      FensterIni.WriteInteger(Name,'Width',Width);
      FensterIni.WriteInteger(Name,'Height',Height);
    finally
      FensterIni.Free;
    end;
  end;
  Action := caFree;
end;
Ausgeliefert wird das Programm mit einer Standardoberfläche. Werden an den Fensterkoordinaten Änderungen vorgenommen durch verschieben etc., dann werden sie direkt beim Schließen des Formulars gespeichert. Ab dann gelten diese. Und beim erneuten Öffnen eben neu ausgelesen. An der INI-Datei selber wird nichts geändert, die eventuellen Änderungen verwaltet sie selber. Hat sich jemand total verhauen, dann wird sie eben gelöscht und der fängt neu an. Man hätte allerdings immer noch den Ausweg, das einfach zu editieren. Wo die Datei liegt ist dem Programm dabei egal (kann auch User-Verzeichnis sein). Sofern tatsächlich jede Koordinate jedes Buttons/Labels usw. gespeichert werden müsste, dann wäre eine XML wohl doch etwas übersichtlicher. Eventuell könnte man allerdings auch verschiedene INIs zu Unterscheidung verwenden. Aber so etwas würde auch den Support quasi vernichten. Wie soll man denn dann jemand erklären, dass er mal sagen soll, was die Original-CheckBox rechts unten, die mittlerweile mitten im Form, steht anzeigt ? Betrachtet die User einfach als Kinder, die erst dann hören, wenn sie sich die Finger verbrannt haben.
Gruß
Hansa
  Mit Zitat antworten Zitat