AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi BeginThread mit Paramater self übergeben.
Thema durchsuchen
Ansicht
Themen-Optionen

BeginThread mit Paramater self übergeben.

Ein Thema von Thomas83 · begonnen am 11. Mär 2008 · letzter Beitrag vom 12. Mär 2008
Antwort Antwort
Seite 2 von 2     12   
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#11

Re: BeginThread mit Paramater self übergeben.

  Alt 11. Mär 2008, 17:13
ok habes gefunden, aber wie kann ich dann auf meine klasse zugreifen?
bekomme ja immer die fehlermeldung.....
  Mit Zitat antworten Zitat
Jackie1983

Registriert seit: 12. Mär 2007
486 Beiträge
 
#12

Re: BeginThread mit Paramater self übergeben.

  Alt 11. Mär 2008, 20:17
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
hat das was mit dem pointer zu tun?

//edit
bekomme auch einen EOSError code 5
  Mit Zitat antworten Zitat
Jackie1983

Registriert seit: 12. Mär 2007
486 Beiträge
 
#13

Re: BeginThread mit Paramater self übergeben.

  Alt 11. Mär 2008, 20:54
wenn ich fClient bei beginthread übergebe kann ich drauf zugreifen, aber nicht über die klasse.... ich check es nicht
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: BeginThread mit Paramater self übergeben.

  Alt 11. Mär 2008, 21:14
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.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#15

Re: BeginThread mit Paramater self übergeben.

  Alt 12. Mär 2008, 09:34
na super, danke @Apollonius
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 Uhr.
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