Schlag mich, aber mir fällt der Objektorientierte Ansatz, den ich grad hatte nicht mehr ein... ich geh mir mal nen Kaffee holen. Hier noch schnell die etwas elegantere Variante A, die ich grad mal QFD getippt hab.
Delphi-Quellcode:
type
TType = (typeInt, typeBool, typeString);
type
TMyRecord = record
Typ: TType;
Data: String;
end;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
MyRecord: Array of TMyRecord;
public
function machBool(meinWert: String):String;
end;
// [...]
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
setlength(MyRecord, 3);
MyRecord[0].Typ:=TypeInt;
MyRecord[0].Data:='65';
MyRecord[1].Typ:=TypeString;
MyRecord[1].Data:='65';
MyRecord[2].Typ:=TypeBool;
MyRecord[2].Data:='65';
for i:=0 to high(MyRecord) do
begin
case MyRecord[i].Typ of
TypeInt: showmessage(MyRecord[i].Data);
TypeString: showmessage(Chr(StrToInt(MyRecord[i].Data))); // Okay, ist momentan eher ein Char statt ein String ;)
TypeBool: showmessage(machBool(MyRecord[i].Data));
end;
end;
end;
function TForm1.machBool(meinWert: String):String;
begin
if meinWert = '0' then
Result:='false'
else
Result:='true';
end;
Ich hab wegen der Anschaulichkeit hier mal mit String gearbeitet. Ist
IMHO nicht der beste Weg, aber sehr übersichtlich.
MfG
Tonic
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?