Moin moin,
Zitat von
Oracle:
in der Methode CamThread.UpdateLabel will ich die Methode StartEvent der Klasse TLTB aufrufen. Wie kann ich das sonst machen ausser über die globale Variable TWin?
Das wäre evtl. so zu lösen:
Delphi-Quellcode:
//...
TCameraResultEvent = procedure(Sender: TObject) of object;
CamThread = class;
TLTB = class(TWinControl)
private
{ Private-Deklarationen }
Thread : CamThread;
FOnCameraResult: TCameraResultEvent;
protected
{ Protected-Deklarationen }
public
{ Public-Deklarationen }
constructor Create(Owner: TComponent); override;
procedure StartEvent;
procedure StartThread;
published
{ Published-Deklarationen }
property OnCameraResult : TCameraResultEvent
read FOnCameraResult write FOnCameraResult;
end;
PTestRecord =^ TTestRecord;
TTestRecord = record
amin,amax,bmin,bmax,intensity,blueshift: Integer;
end;
CamThread = class(TThread)
private
FWin : TLTB;
procedure UpdateLabel;
public
constructor Create(CreateSuspended :boolean; TwinC: TLTB);
protected
procedure Execute; override;
end;
//..
constructor CamThread.Create(CreateSuspended: boolean; TwinC: TLTB);
begin
inherited Create(CreateSuspended);
FWin := TwinC;
end;
Bei deinem
ActiveX Problem kann ich dir nicht wirklich weiter helfen, aber
schau dir mal diesen Artikel (
Delphi 6, 7 threads synchronization in ActiveX controls) an, vieleicht ist es ja das was du suchst?