![]() |
In Thread ein Event starten
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:
(* is irgendwie klar, da ja im Hauptprog dem Event nichts zugewiesen wurde)
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. 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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz