Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.069 Beiträge
 
Delphi 12 Athens
 
#14

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

  Alt 25. Feb 2010, 10:11
Ja, das ist was ganz Anderes.

Hier wird zwar eine Funktion aufgerufen, aber dann Zeitversetzt in einer anderen Funktion weitergearbeitet.

So würde ja der Speicher, auf welchen der Pointer zeigt schon freigegeben, bevor die andere Prozedur diesen auslesen kann.

Also hier wird dann natürlich ein Zwischenspeicher benötigt.

Delphi-Quellcode:
procedure ProcedureA(Gewicht : double)
var
  pGewicht: PDouble;
begin
  New(pGewicht);
  pGewicht := @Gewicht;
  PostThreadMessage(MyThreadId, WM_Gewichtserfassung, intAndererwert, Integer(pGewicht));
end;

procedure TScheduleThread.Execute;
var
  Gewicht: double
begin
  Gewicht := PDouble(Gewichtsparameter)^;
  Dispose(PDouble(Gewichtsparameter)); // das Freigeben nicht vergessen

  ShowMessage(FloatToStr(Gewicht));
end;
[edit] @ und p eingefügt ... siehe #15
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat