Einzelnen Beitrag anzeigen

adk

Registriert seit: 24. Feb 2010
9 Beiträge
 
#1

Double-Pointer als Int-Parameter übergeben und zurück

  Alt 24. Feb 2010, 16:01
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)
  Mit Zitat antworten Zitat