![]() |
Delphi-Version: 5
TThread Create Override
Mahlzeit,
ich würde gern Parameter an einen Thread übergeben und komme nicht wirklich weiter, könnte mir jemand ein Beispiel geben? Die Übergabe wird nur beim Erstellen benötigt, nicht im laufenden Thread. Habe nun verschiedene Dinge ausprobiert, die alle nicht so wirklich laufen wollten, der letzte Versuch sieht so aus:
Delphi-Quellcode:
Klasse:
type
TIrgendwasThread = class(TThread) constructor Create(Suspended: Boolean; var1: string; var2: string; var3: string); overload; procedure Execute; end;
Delphi-Quellcode:
Aufruf:
constructor TIrgendwasThread.Create(Suspended: Boolean; var1, var2, var3: string);
begin inherited Create(Suspended); end; procedure TIrgendwasThread.Execute; begin while not Terminated do begin // mache Krams end; end;
Delphi-Quellcode:
IrgendwasThread := TIrgendwasThread.Create(false, data.var1, data.var2, data.var3);
IrgendwasThread.FreeOnTerminate := True; Resultat ist ein Abstrakter Fehler |
AW: TThread Create Override
Es fehlt das override bei Execute. Außerdem sollte das unter Protected und der Konstruktor unter public stehen.
|
AW: TThread Create Override
Mach aus dem
Delphi-Quellcode:
mal ein
overload;
Delphi-Quellcode:
.
override;
Red Box :cyclops: |
AW: TThread Create Override
Danke, der blöde
Delphi-Quellcode:
war´s Kopf -> Tisch :)
override
Delphi-Quellcode:
TIrgendwasThread = class(TThread)
public constructor Create(Suspended: Boolean; var1: string; var2: string; var3: string); overload; protected procedure Execute; override; end; |
AW: TThread Create Override
Moin...:P
Im
Delphi-Quellcode:
...braucht du das overload nicht. Es sein, denn du hast wirklich mehrere Constructoren. :wink:
constructor Create(Suspended: Boolean; var1: string; var2: string; var3: string); overload;
Im Constructor brauchst nur du das
Delphi-Quellcode:
... und das ist wichtsch. 8-)
inherited Create(Suspended);
|
AW: TThread Create Override
Delphi-Quellcode:
"Noch" nicht :)
Es sein, denn du hast wirklich mehrere Constructoren.
|
AW: TThread Create Override
Delphi-Quellcode:
:P aber das inherited im Execute habe ich nicht gesehen?
procedure TIrgendwasThread.Execute;
begin inherited; // wichtsch... while not Terminated do begin // mache Krams end; end; |
AW: TThread Create Override
Hmm..
weder override, noch overload sondern reintroduce, da es eine andere Version von Create ist! |
AW: TThread Create Override
Zitat:
|
AW: TThread Create Override
Wo du Recht hast...:P
Ich hatte mich verguckt. :oops: Ich habe meine Threads von einem Basis Thread, welcher von TTread abgeleitet wurde, abgeleitet. Da gehört das inherited dazu...:P |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:43 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 by Thomas Breitkreuz