Einzelnen Beitrag anzeigen

Scorpion3000

Registriert seit: 18. Apr 2004
47 Beiträge
 
Delphi 7 Enterprise
 
#1

In Thread ein Event starten

  Alt 11. Apr 2005, 11:36
Hallo zusammen!

Ich hab eine kleine Komponente geschrieben, in der ein Thread vorkommt, der wiederrum ein Ereignis ausgibt. Hab allerdings zwei Probleme:
1. bekomme ich für die Überprüfung des Events mit assigned immer true zurück
2. (hängt wahrscheinlich mit 1. Problem zusammen) eine Fehlermedlung "ERROR 5 - Zugriff verweigert"

Delphi-Quellcode:
unit Test;

interface

uses
   SysUtils, Classes, Windows, SyncObjs;

type

   TOnMsgRec = procedure(Sender: TObject) of object;

   TCompoTest = class(TComponent)
   private
      FOnMsgRec: TOnMsgRec;
      procedure ThreadProc;
   public
   protected
   published
      procedure RunTest;
      property OnMsgRecieved: TOnMsgRec read FOnMsgRec write FOnMsgRec;
   end;
   
   var
      ThdH: THandle;
      ThID: cardinal;

procedure TCompoTest.RunTest;
begin
   ThdH:= BeginThread(nil, 100, TFNThreadStartRoutine(@TCompoTest.ThreadProc), nil, 0, ThID);
end;

procedure TCompoTest.ThreadProc;
begin
   if assigned(FOnMsgRec) then // <--- da kommt immer "true" heraus
      OnMsgRec(self); // <-- nun kommt die Fehlermeldung*
end;
end.
(* is irgendwie klar, da ja im Hauptprog dem Event nichts zugewiesen wurde)

Hab die ganze Sache bisschen gekürzt. Es wird allerdings sonst nie das Event OnMsgRec benützt oder geändert.

Vielen Dank für eure Hilfe
  Mit Zitat antworten Zitat