Einzelnen Beitrag anzeigen

grl

Registriert seit: 5. Feb 2007
174 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Funktion soll als Parameter verschiedene Datentypen akzeptieren

  Alt 9. Mai 2013, 21:07
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
und was für ein Fehler?

Delphi-Quellcode:
    VarInteger: Begin
      ptrInteger:=@Value;
      Val(s,ptrInteger^,error);
      ptrInteger:=nil;
      End;
^Integer ist nicht das gleiche wie ein Pointer auf Value.
wenn du ein Variant verwendetest in dem ein Integer gespeichert ist, kannst du es einfach einem Integer zuweisen.

also:
Delphi-Quellcode:
var iWert:Integer;

if VarType(Value)=varInteger then begin
  iWert:=Value;
end;
Delphi-Quellcode:
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;
Die Definition von Speichern function Speichern(s:String; var Value):Integer; hat aber keinen Parameter für Fehler. Wie soll das gehen?

Gruß
Luggi
  Mit Zitat antworten Zitat