Hallo Zusammen,
ich habe eine Procedur, die erwartet einen Int-Wert als Parameter:
ProcedurB(intValue : Integer)
An diese Methode möchte ich allerdings einen double übergeben. Überschreiben oder mit globalen Variablen möchte ich nicht arbeiten.
Nun war die Idee einen Int-Pointer zu erstellen und diesen auf den Double-Wert zeigen zu lassen. An ProcedurB wird der Pointer-Wert des Integer-Pointers übergeben, das ganze sieht wie folgt aus:
Delphi-Quellcode:
procedure ProcedureA(Gewicht : double);
var
pGewicht : PInteger;
begin
pGewicht := nil,
New(pGewicht);
pGewicht := @Gewicht;
ProcedurB(pGewicht^);
end;
Erhoffte 'Rückkonvertierung' in ProcedurB geht leider nicht bzw. ich habe dabei nichts gewonnen:
Delphi-Quellcode:
procedure ProcedurB(intWert : Integer)
var
pGewicht : PInteger;
Gewicht : double;
begin
pGewicht := @intWert;
Gewicht := pGewicht^;
end
Hierbei hat man nichts gewonnen, d.h. natürlich kommt nur der Int-Wert heraus, da ich in ProcedurA einen Int-Pointer verwendet habe. Wie kann das Problem gelöst werden? (Geht das überhaupt: Einen Double Wert als "Integer-Pointer-Wert" übergeben und zurück)