Thema: Delphi Showmessage in callback

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Showmessage in callback

  Alt 25. Okt 2010, 11:09
Delphi-Quellcode:
var DerString: String;

procedure DeineProzedur;
begin
  Form1.Label4.Caption := DerString;
  showmessage('Tadaaa');
end;

procedure callback(Value: PAnsiChar);
begin
  DerString := Value;
  TThread.Synchronize(nil, DeineProzedur);
end;
In neueren Delphis ist diese Sync-Procedur als Referenz ausgelegt, das heißt man kann hier z.B. eine einfache Prozedur + eine globale Variable
oder OOP-mäßig eine Methode, mit der Variable als Feld in der zugehörigen Klasse verwenden.


Wo du aber aufpassen mußt, auf diesen String (bzw. alle Variablen, welche du für die Synchronisierung benötigst) darf nur innerhalb dieses Callbacks (solange dieser Callback immer nur aus einem Thread gleichzeitig aufgerufen wird) und innerhalb der SyncProzedur zugegriffen werden.
Oder du mußt den Zugriff auf diese Variablen z.B. über eine CriticalSection absichern.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (25. Okt 2010 um 12:15 Uhr)
  Mit Zitat antworten Zitat