Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

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

  Alt 25. Feb 2010, 09: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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat