Hallo,
ich möchte eine Funktion schreiben, die als Parameter "Value" verschiedene Datentypen (Integer, String, Single, Double) akzeptiert.
Die Funktion soll abhängig vom Datentypen von "Value" unterschiedliche Operationen ausführen.
Ich habe schon versucht "Value" als Pointer usw. zu deklarieren, aber der Kompiler ließ sich damit nicht austricksen.
Edit: Meine Delphi-Version ist Delphi 2007
Delphi-Quellcode:
function Speichern(s:String; var Value):Integer;
var
ptrString:^String;
ptrInteger:^Integer;
ptrDouble:^Double;
ptrSingle:^Single;
error:Integer;
begin
case VarType(Value) of //hier tritt ein Fehler auf
VarInteger: Begin
ptrInteger:=@Value;
Val(s,ptrInteger^,error);
ptrInteger:=nil;
End;
VarSingle: Begin
ptrSingle:=@Value;
Val(s,ptrSingle^,error);
ptrSingle:=nil;
End;
VarDouble: Begin
ptrDouble:=@Value;
Val(s,ptrDouble^,error);
ptrDouble:=nil;
End;
VarString: Begin
ptrString:=@Value;
s:=ptrString^;
ptrString:=nil;
error:=0;
End;
Else error:=1;
end;
result:=error;
End;
procedure TForm1.Button2Click(Sender: TObject);
var
a:Double;
Fehler:Integer;
begin
Speichern(Edit1.Text,a,Fehler); //Hier ist a vom Datentyp Double. Prinzipiell sollen aber auch alle der oben erwähnten Datentypen funktionieren.
end;