Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi BeginThread mit Paramater self übergeben. (https://www.delphipraxis.net/110005-beginthread-mit-paramater-self-uebergeben.html)

Thomas83 11. Mär 2008 16:13

Re: BeginThread mit Paramater self übergeben.
 
ok habes gefunden, aber wie kann ich dann auf meine klasse zugreifen?
bekomme ja immer die fehlermeldung.....

Jackie1983 11. Mär 2008 19:17

Re: BeginThread mit Paramater self übergeben.
 
bin jetzt schon weiter gekommen und habe da einen komischen fehler.
Delphi-Quellcode:
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;
wenn ich eigenschaften der klasse aufrufe ist alles bestens, wenn ich auf fclient zugreifen möchte bekomme ich einen fehler :gruebel:
hat das was mit dem pointer zu tun?

//edit
bekomme auch einen EOSError code 5

Jackie1983 11. Mär 2008 19:54

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:

Apollonius 11. Mär 2008 20:14

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.

Thomas83 12. Mär 2008 08:34

Re: BeginThread mit Paramater self übergeben.
 
:wall: na super, danke @Apollonius


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:25 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz