Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Befehl in OnExecute ausführen

  Alt 25. Okt 2011, 11:16
Wenn die ActiveX-Komponente nicht threadsave ist, dann mußt du alle Zugriffe über den selben Thread laufen lassen.
Nutzt du diese Komponente auch innerhalb der VCL, dann muß also alles in den Hauptthread verlegt werden.

Synchronize synchronisiert sich ja standardmäßig mit dem Hauptthread.

Syncronize nimmt ja nunml eine parameterlose Methode entgegen.
Also ja, du müßtest diese Aufrufe in eine extra Methode auslagern.
Es sei denn du könntest/wölltest schon mit Generics arbeiten. (ich hoffe mal das lief im 2009er schon anständig)

Generics > als anonyme Methode:
Delphi-Quellcode:
Synchronize(nil, procedure
  begin
    //hier der Aufruf (man könnte sogar lokale Variablen/Parameter aus der aufrufenden Methode direkt verwenden)
  end);
$2B or not $2B
  Mit Zitat antworten Zitat