Ole Jansen
2018-04-04 12:27:44 UTC
Moin,
Irgendwie hab ich gerade ein Brett vorm Kopf:
Es gibt eine Reihe benamter Typen, z.B.
type bla = (Anton, Berta, Caesar);
Eigentlich braucht man die nicht. Zahlen würden völlig
ausreichen. Um die Anschaulichkeit der Quelltexte zu
verbessern ist es aber angenehmer wenn da "if bla=Caesar ..."
steht und nicht "if bla=2".
Neue Typen sollen später hinzu kommen und möglichst an einer
einzigen Stelle im Quelltext gepflegt werden.
Werden z.B. Daten z.B. aus einer INI-Datei eingelesen und
den Typen zugeordnet wären das mit z.B. Integern trivial.
So aber benötigt man Funktionen, welche Namen umwandeln können:
//liefert -1 zurück wenn keine Übereinstimmung, ansonsten Index
function String2bla(s:string):integer;
begin
result:=-1;
if Copy(s,1,5)='Anton' then result:=Anton;
if Copy(s,1,5)='Berta' then result:=Berta;
if Copy(s,1,6)='Caesar' then result:=Caesar;
end;
//Liefert Type Namen zurück, ansonsten leeren String
function bla2string(t:integer):string;
begin
if t=Anton then result:='Anton';
if t=Berta then result:='Berta';
if t=Caesar then result:='Caesar';
end;
(Wie) geht das eleganter? Gibt es eine Möglichkeit nach
Typnamen zu suchen analog zu FindComponent? (Delphi5)
Viele Grüße,
O.J.
Irgendwie hab ich gerade ein Brett vorm Kopf:
Es gibt eine Reihe benamter Typen, z.B.
type bla = (Anton, Berta, Caesar);
Eigentlich braucht man die nicht. Zahlen würden völlig
ausreichen. Um die Anschaulichkeit der Quelltexte zu
verbessern ist es aber angenehmer wenn da "if bla=Caesar ..."
steht und nicht "if bla=2".
Neue Typen sollen später hinzu kommen und möglichst an einer
einzigen Stelle im Quelltext gepflegt werden.
Werden z.B. Daten z.B. aus einer INI-Datei eingelesen und
den Typen zugeordnet wären das mit z.B. Integern trivial.
So aber benötigt man Funktionen, welche Namen umwandeln können:
//liefert -1 zurück wenn keine Übereinstimmung, ansonsten Index
function String2bla(s:string):integer;
begin
result:=-1;
if Copy(s,1,5)='Anton' then result:=Anton;
if Copy(s,1,5)='Berta' then result:=Berta;
if Copy(s,1,6)='Caesar' then result:=Caesar;
end;
//Liefert Type Namen zurück, ansonsten leeren String
function bla2string(t:integer):string;
begin
if t=Anton then result:='Anton';
if t=Berta then result:='Berta';
if t=Caesar then result:='Caesar';
end;
(Wie) geht das eleganter? Gibt es eine Möglichkeit nach
Typnamen zu suchen analog zu FindComponent? (Delphi5)
Viele Grüße,
O.J.