![]() |
Re: BeginThread mit Paramater self übergeben.
ok habes gefunden, aber wie kann ich dann auf meine klasse zugreifen?
bekomme ja immer die fehlermeldung..... |
Re: BeginThread mit Paramater self übergeben.
bin jetzt schon weiter gekommen und habe da einen komischen fehler.
Delphi-Quellcode:
wenn ich eigenschaften der klasse aufrufe ist alles bestens, wenn ich auf fclient zugreifen möchte bekomme ich einen fehler :gruebel:
TMyClass = class
private fBoolean : Boolean; fClient : TidTcpClient; public procedure irgendwas; procedure test; end; ... function MeinThread(p : Pointer) : integer; var pMyClass : ^TMyClass; b : boolean; port : integer; begin pMyClass := p; b := pMyClass^.fBoolean; //<- ok port := pMyClass^.fClient.port; //<- fehler end; ... procedure TMyClass.test; begin BeginThread(nil,0,@MeinThread, Pointer(self), 0, ThreadId); end; hat das was mit dem pointer zu tun? //edit bekomme auch einen EOSError code 5 |
Re: BeginThread mit Paramater self übergeben.
wenn ich fClient bei beginthread übergebe kann ich drauf zugreifen, aber nicht über die klasse.... ich check es nicht :gruebel:
|
Re: BeginThread mit Paramater self übergeben.
Bei der Übergabe des Parameters castest du nach Pointer (ohne mit @ die Adresse zu nehmen), aber in der Thread-Funktion dereferenzierst du mit ^, das ist ein Widerspruch. Du musst in der Thread-Funktion wieder in den Klassentype casten.
|
Re: BeginThread mit Paramater self übergeben.
:wall: na super, danke @Apollonius
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:14 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