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.