![]() |
constructor create;
Hallo, Allerseits.
Ich habe ein Komponente (Label) erweitert und habe mich dabei (erstmals) der Templates bedient (classc), worauf mir der Rumpf der Typ-Deklaration vorgelegt wurde. In diesem Rumpf war enthalten:
Delphi-Quellcode:
Beim Start meckerte der Compiler:
constructor create; override;
Delphi-Quellcode:
.
[Pascal Fehler] uSpielplan.pas(61): E2170 Eine nichtvirtuelle Methode kann nicht überschrieben werden
Ich habe dann - in der stillen Hoffnung, das sei möglicherweise richtig - das "override" durch "overload" ersetzt. Jetzt meckert der Compiler nicht mehr, aber ich würde gerne wissen, was da im Einzelnen passiert. Wie immer dankbar für jeden Hinweis Gruß Jürgen. |
Re: constructor create;
Delphi-Quellcode:
Ich denke mal das dürfte auch unter .NET gehen. Wovon leitest du überhaupt ab?
constructor create; reintroduce;
|
Re: constructor create;
TMyLabel = class(System.Windows.Forms.Label)
.... end; |
Re: constructor create;
Hmm, in .NET kann man keine Konstruktoren überschreiben, oder? Bzw. aus diesem Grund sind die Konstruktoren der Framework-Klassen nichtvirtuell.
|
Re: constructor create;
Also ich weiß nicht, wie es unter .NET ist, aber unter Win32 kann man auch statische Methoden mithilfe von reintroduce überschreiben. Sogar mit neuer Parameterliste.
|
Re: constructor create;
Keine Ahnung! :oops:
Warum wird aber dann automatisch "constructor create; override;" erzeugt? |
Re: constructor create;
Weil der Wizard wohl dringend mal überarbeitet werden müsste ;) .
|
Re: constructor create;
reintroduce entspricht meines Wissens new in C#, dabei wird die Methode nicht überschrieben, sondern verdeckt, oder? :)
|
Re: constructor create;
Aber man kann trotzdem die vererbte Methode aufrufen. ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:47 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-2025 by Thomas Breitkreuz