Thema: Delphi Showmessage in callback

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Showmessage in callback

  Alt 25. Okt 2010, 12: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.
$2B or not $2B

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