AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TThread Create Override

Ein Thema von Towmuz · begonnen am 27. Feb 2017 · letzter Beitrag vom 27. Feb 2017
Antwort Antwort
Seite 1 von 2  1 2      
Towmuz

Registriert seit: 21. Sep 2016
Ort: Minden
127 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

TThread Create Override

  Alt 27. Feb 2017, 14:30
Delphi-Version: 5
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:
type
  TIrgendwasThread = class(TThread)
    constructor Create(Suspended: Boolean; var1: string; var2: string; var3: string); overload;
    procedure Execute;
  end;
Klasse:
Delphi-Quellcode:
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;
Aufruf:
Delphi-Quellcode:
IrgendwasThread := TIrgendwasThread.Create(false, data.var1, data.var2, data.var3);
IrgendwasThread.FreeOnTerminate := True;

Resultat ist ein Abstrakter Fehler
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.332 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TThread Create Override

  Alt 27. Feb 2017, 14:34
Es fehlt das override bei Execute. Außerdem sollte das unter Protected und der Konstruktor unter public stehen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: TThread Create Override

  Alt 27. Feb 2017, 14:35
Mach aus dem overload; mal ein override; .

Red Box
  Mit Zitat antworten Zitat
Towmuz

Registriert seit: 21. Sep 2016
Ort: Minden
127 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

AW: TThread Create Override

  Alt 27. Feb 2017, 14:46
Danke, der blöde override war´s Kopf -> Tisch


Delphi-Quellcode:
  TIrgendwasThread = class(TThread)
  public
    constructor Create(Suspended: Boolean; var1: string; var2: string; var3: string); overload;
  protected
    procedure Execute; override;
  end;
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#5

AW: TThread Create Override

  Alt 27. Feb 2017, 15:06
Moin...
Im constructor Create(Suspended: Boolean; var1: string; var2: string; var3: string); overload; ...braucht du das overload nicht. Es sein, denn du hast wirklich mehrere Constructoren.
Im Constructor brauchst nur du das inherited Create(Suspended); ... und das ist wichtsch.

Geändert von haentschman (27. Feb 2017 um 15:09 Uhr)
  Mit Zitat antworten Zitat
Towmuz

Registriert seit: 21. Sep 2016
Ort: Minden
127 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

AW: TThread Create Override

  Alt 27. Feb 2017, 15:35
Es sein, denn du hast wirklich mehrere Constructoren. "Noch" nicht
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#7

AW: TThread Create Override

  Alt 27. Feb 2017, 15:45
Delphi-Quellcode:
procedure TIrgendwasThread.Execute;
begin
  inherited; // wichtsch...
  while not Terminated do
  begin
    // mache Krams
  end;
end;
aber das inherited im Execute habe ich nicht gesehen?
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#8

AW: TThread Create Override

  Alt 27. Feb 2017, 16:42
Hmm..

weder override, noch overload sondern reintroduce, da es eine andere Version von Create ist!
  Mit Zitat antworten Zitat
Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
441 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: TThread Create Override

  Alt 27. Feb 2017, 16:58
Delphi-Quellcode:
procedure TIrgendwasThread.Execute;
begin
  inherited; // wichtsch...
Warum? Execute ist doch abstrakt?
Whookie

Software isn't released ... it is allowed to escape!

Geändert von Whookie (27. Feb 2017 um 16:59 Uhr) Grund: Delphi-Tag
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#10

AW: TThread Create Override

  Alt 27. Feb 2017, 18:30
Wo du Recht hast...

Ich hatte mich verguckt. Ich habe meine Threads von einem Basis Thread, welcher von TTread abgeleitet wurde, abgeleitet. Da gehört das inherited dazu...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:13 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