Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Prism constructor create; (https://www.delphipraxis.net/76199-constructor-create%3B.html)

gfjs 31. Aug 2006 10:26


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:
constructor create; override;
Beim Start meckerte der Compiler:
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.

3_of_8 31. Aug 2006 10:32

Re: constructor create;
 
Delphi-Quellcode:
constructor create; reintroduce;
Ich denke mal das dürfte auch unter .NET gehen. Wovon leitest du überhaupt ab?

gfjs 31. Aug 2006 10:35

Re: constructor create;
 
TMyLabel = class(System.Windows.Forms.Label)
....
end;

OregonGhost 31. Aug 2006 10:38

Re: constructor create;
 
Hmm, in .NET kann man keine Konstruktoren überschreiben, oder? Bzw. aus diesem Grund sind die Konstruktoren der Framework-Klassen nichtvirtuell.

3_of_8 31. Aug 2006 10:40

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.

gfjs 31. Aug 2006 10:45

Re: constructor create;
 
Keine Ahnung! :oops:

Warum wird aber dann automatisch "constructor create; override;" erzeugt?

Khabarakh 31. Aug 2006 10:48

Re: constructor create;
 
Weil der Wizard wohl dringend mal überarbeitet werden müsste ;) .

OregonGhost 31. Aug 2006 10:52

Re: constructor create;
 
reintroduce entspricht meines Wissens new in C#, dabei wird die Methode nicht überschrieben, sondern verdeckt, oder? :)

3_of_8 31. Aug 2006 10:53

Re: constructor create;
 
Aber man kann trotzdem die vererbte Methode aufrufen. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:03 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