AGB  ·  Datenschutz  ·  Impressum  







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

Constructor von TThread überschreiben

Ein Thema von Viktorii · begonnen am 6. Jul 2009 · letzter Beitrag vom 6. Jul 2009
Antwort Antwort
Viktorii

Registriert seit: 19. Jul 2007
358 Beiträge
 
#1

Constructor von TThread überschreiben

  Alt 6. Jul 2009, 08:40
Hallo zusammen.

Wenn ich versuche den Constructor von TThread zu überschreiben, bekomme ich folgenden Fehler:

Delphi-Quellcode:
 
E2170 Eine nichtvirtuelle Methode kann nicht überschrieben werden
Hab mal ein wenig gesucht und z.B in diesem Thread wird gesagt das man dies machen kann.

Geht das nun oder nicht

Vielen Dank
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: Constructor von TThread überschreiben

  Alt 6. Jul 2009, 08:49
diesen Konstructor überschreibt man nicht, man erstellt einfach nur einen Neuen.

Fazit: laß das override weg
$2B or not $2B
  Mit Zitat antworten Zitat
Viktorii

Registriert seit: 19. Jul 2007
358 Beiträge
 
#3

Re: Constructor von TThread überschreiben

  Alt 6. Jul 2009, 09:14
Achso. Ja so klappt es

Vielen Dank
  Mit Zitat antworten Zitat
CoLT

Registriert seit: 10. Nov 2005
Ort: Remscheid
9 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: Constructor von TThread überschreiben

  Alt 6. Jul 2009, 10:46
richtiger wäre es so:

Delphi-Quellcode:
Type

TMyThread = class(TThread)
...
public
 constructor Create(CreateSuspended: Boolean); reintroduce; //da sonst compiler warnung
end;


implementation

constructor Create;
begin
  inherited Create(CreateSuspended);
  //eigenes zeugs
end;

end.
CoLT
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

Re: Constructor von TThread überschreiben

  Alt 6. Jul 2009, 10:51
Das reintroduce unterdrückt ja nur die Compilerwarnung und macht sonst nix, also für die Funktion ist es nicht von Belangen ... stört also nicht, wenn es nicht da wäre.

Und inherited sollte man eh immer machen (außer man läßt es absichtlich geziehlt weg, aber dafür gibt es fast nie Gründe)
$2B or not $2B
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Constructor von TThread überschreiben

  Alt 6. Jul 2009, 15:01
Zitat von CoLT:
richtiger wäre es so:
Nein, wäre hier sogar richtig falsch. Der TThread hat keinen virtuellen Constructor und ist deshalb auch nicht überschreibbar. Von daher die Fehlermeldung im ersten Beitrag.

ReIntroduce dient zum unterdrücken der Compilerwarnung, dass die neue Methode eine virtuelle verdeckt. (wie von himitsu schon ausgeführt)

Von daher ist ein Reintroduce hier vollkommen falsch, da bei einer Änderung der Basisklassen hier Hinweise auf mögliche Fehlerquellen unterdrückt werden.
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:14 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