![]() |
AW: "Abstrakter Fehler" schon zur Compile-Zeit unterbinden
Hallo,
Das Problem ist, dass ich abstrakte Klassenmethoden habe und die Klasse selbst voraussichtlich niemals erzeugt werden wird. Deshalb wäre es ganz praktisch wenn ich schon vorher eine Meldung bekäme. |
AW: "Abstrakter Fehler" schon zur Compile-Zeit unterbinden
Es ist aber sicher, daß diese Klasse von irgendwem erzeugt wird?
Du könntest im Class-Contructor deiner Klasse einen Create-Aufruf einbauen, versteckt in einem IF, welches nie aufgerufen wird (was der Compiler aber nicht merken darf). Für ältere Delphis in der Initialization. |
AW: "Abstrakter Fehler" schon zur Compile-Zeit unterbinden
Prinzipiell ginge das sicher.
Es geht mir darum dass ich eine Basisklasse mit mehreren abstrakten Methoden habe und davon abgeleitet gefühlte 10000 Klassen. Jetzt habe ich Angst, dass ich im Programmier-Eifer vergesse die ein oder andere Methode in den Subklassen zu überschreiben. Wenn ich jetzt für jede Subklasse einen Class-constructor erstellen soll/will/muss.. dann verlager ich das Problem ja nur an eine andere Stelle :/ |
AW: "Abstrakter Fehler" schon zur Compile-Zeit unterbinden
Hmmm.
Nja, das Problem ist ja, daß der Compiler nicht weiß, daß diese Klassen doch irgendwo anderes erzeugt werden sollen. Und bei Klassen die nicht erzeugt werden, wird auch nicht gemeckert, sonst würde ja jedesmal sowas wie TStream knallrot aufleuchten. Du kannst dir auch "einfach" ein Testprojekt anlegen, dort stehen dann hintereinander ganz viele Create-Aufrufe. |
AW: "Abstrakter Fehler" schon zur Compile-Zeit unterbinden
Mh. Ich glaube ich überlege mir eine alternative, evtl. bessere Lösung für mein Problem ohne diese ganzen Klassenmethoden und 1000 Ableitungen.
Wird am Ende dann wahrscheinlich sogar die sauberere Lösung sein... Danke trotzdem für die Bemühungen ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:48 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