Thema: Delphi Vererbung bei Formularen

Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

Re: Vererbung bei Formularen

  Alt 22. Sep 2007, 20:36
Nur den PAS-Quelltext abzuändern ist zu wenig ! Forms sind Spezialfall, weil sie aus zwei Teilen bestehen. Es geht deshalb so nicht, weil die dazugehörige DFM nichts von den Änderungen mitbekommt. Deine DFM der "ageleiteten" Form beginnt mit OBJECT, stimmts ? Oder fehlt die sogar ganz ? Das ist einer der Fehler. Da muss INHERITED stehen. Aber das ist noch längst nicht alles. Ich sage es gleich : eine DFM und eine PAS von Hand synchron zu halten, das ist sehr sehr fehlerträchtig und keinesfalls zu empfehlen !

Was soll denn so etwas ?

TMyForm = class (TForm); Das geht mit fast allem, aber eben nicht so einfach bei Forms. Ich will ja schließlich auf der vererbten Form z.B. auch Buttons verschieben können. Die eine Zeile erzeugt aber eben keine DFM oder verwaltet die. Delphi hat für Form-Vererbung deshalb die Objektablage. Schiebe mal die Form die vererbt werden soll da rein (rechter Mausklick auf Form). Erstelle die nächste Form, die als Basis die vorher haben soll so : Datei -> Neu -> weitere Irgendwo ist jetzt die Form, die vorher in die Objektablage verschoben wurde. Notfalls alle Registerkarten durchgucken. Sobald gefunden, unten in der vertikalen RadioGroup "vererben" aktivieren und fertig. Auf die Form können dann in diesem Fall die BitButtons draufgepappt werden. Natürlich kann man das Spielchen weiter treiben und die Form mit den BitButtons auch in die Objektablage schieben. Für die dritte hätte man dann falls nötig auch schon die BitButtons auf der Form usw.

Noch ein Hinweis für die DFM-Handverunstalter.

Damit so etwas recht einfach geht, also im Prinzip nur : Datei -> Neu -> weitere und schon ist die vorgefertigte Form mit geerbten Eigenschaften da, dafür verwendet Delphi eine *.DRO Datei. Ab D2005 ist es eine im XML-Format. Selbst wenn einer zuviel Zeit hat und die Vererbung überflüssigerweise selbst im Quelltext macht, dann soll er auch an die DRO denken. Eventuell sind sogar noch mehr Dateien beteiligt.

P.S.: bei mir ist alles von zwei Basisforms hierarchich abgeleitet. Die eine dient für Eingaben, die andere für Ausgaben. Die Basisforms enthalten im Prinzip Tastatur/Maussteuerung und einige Gestaltungsmerkmale (z.B. Farbeinstellungen). Mit jeder Vererbungsstufe kommt dann irgendwas dazu oder wird geändert. D.h. heißt, selbst bei einer Änderung, die für jedes Formular gelten soll, es reicht die entsprechende Basisform zu ändern.
Gruß
Hansa
  Mit Zitat antworten Zitat