MoinMoin,
ich bin gerade drüber, mir eine (möglichst Allgemeingültige und flexible) Lösung zu bauen, um Optionen/Einstellungen eines Programmes zu speichern (ich weiß...gibts in 20002 mögliche Varianten
)
Plan:
Die App definiert sich eine Klasse (oder einen Record) für die ganzen Optionen/Einstellungen.
Ein Objekt nimmt die Klasse/Record und seriallisiert/deseriallisiert das ganze in eine Datei (Format steht derzeit nicht fest). Dazu wird, via
RTTI, für jede Property der Options-Klasse ein, ich nenn es mal Field-Objekt
erzeugt, das die Informationen wie Typ, Value usw. enthält.
Delphi-Quellcode:
TAbsField = class(TPersistent)
private
fname : Unicodestring;
fvalue: TValue;
fseperator : UnicodeString;
ftype : Unicodestring;
protected
function GetType:TTypeKind;
public
constructor Create(Seperator:Unicodestring=';');
procedure Assign(source:TPersistent);
function SerializeToString:UnicodeString;virtual;
procedure DeserializeFromString(aString:UnicodeString);virtual;
published
property Kind : TTypekind read GetType;
property Name : UnicodeString read fname write fname;
property Value : TValue read fvalue write fvalue;
property Typename: Unicodestring read ftype write ftype;
Property Seperator : UnicodeString read fseperator write fseperator;
end;
Seriallisiert sieht so ein Objekt so aus:
Code:
:
tkInteger,"Integer","Wert",42
:
Problem ist nun, wie ich das ganze mit Enums mache. Seriallisiert sieht das ganze derzeit so aus:
Code:
:
tkEnumeration,"TMyEnum01","MyEnum1","me1A"
:
Bein Einlesen steh ich aber vor dem Problem, wie ich nun aus den Infos wieder ein TValue (oder TMyEnum01) mache, um das in der Field-List reinbekomme. Hat da jemand ne Idee ?