Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

AW: Befehl in OnExecute ausführen

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