Home » Tipps & Tricks » Object Pascal » Variablen » Aufzählungstypen speichern
Aufzählungstypen speichern
Wie in der Onlinehilfe von Delphi nachzulesen ist, handelt es sich bei Aufzählungstypen um eine Menge von Werten mit eindeutiger Reihenfolge. Als Beispiel der Typ der Eigenschaft WindowState eines jeden Formulars:
type TWindowState = (wsNormal, wsMinimized, wsMaximized);
Möchte man nun eine Variable von diesem Typ speichern, speichert man nicht wsNormal oder wsMinimized, sondern seine ordinale Entsprechnung. Der Ordinalwert gibt quasi den Index oder die Position eines Wertes in der Menge wieder. Dies geschieht entweder über einen Typecast zu Integer oder mithilfe der Funktion Ord. Folgendes Beispiel zeigt, wie man die Eigenschaft WindowState eines Formulars in einer Ini-Datei speichert:
uses IniFiles; procedure TForm1.Button1Click(Sender: TObject); var Ini: TIniFile; begin Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Config.ini'); try Ini.WriteInteger('Default', 'WindowState', Ord(WindowState)); finally Ini.Free; end; end;
Der Ladevorgang sieht ähnlich aus, nur dass dann zum entsprechenden Typ zurückgecastet werden muss:
procedure TForm1.Button2Click(Sender: TObject); var Ini: TIniFile; begin Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Config.ini'); try WindowState := TWindowState(Ini.ReadInteger('Default', 'WindowState', 0)); finally Ini.Free; end; end;