Zum "Warum ?" kann ich auch nicht viel sagen, aber eventuell einige Hinweise liefern.
Zitat von
MaBuSE:
..Nun ändern wir die Peoject1.dpr wie folgt ab:
...
Mit dieser Technik kann man sich Formulare erstellen, die eine gewisse Basisfunktionalität haben.
Diese können dann in den Anwendungen verwendet werden, ohne das man alles noch mal neu programmieren muß.
Änderungen an den Basisformularen sind auch sofort in allen abgeleiteten Formularen (nach einem Recompile der Programme) verfügbar.
Super !!!
Genau das will ich haben.
Eine Basisfunktionalität in seine Formulare einzubauen ist der Sinn der Objektablage. Man kann das zwar auch von Hand erledigen (wie hier), aber das ist nicht zu empfehlen wegen zu vieler Quereffekte. Denn : wird es richtig gemacht, so muß man nicht nur die
DPR/
PAS ändern, sondern auch die DFMs und anderes. Wenn ich ein Formular vererben will, dann sieht das so aus :
inherited frmArtNrAus: TfrmArtNrAus
Erzeuge ich ein leeres Form, dann aber so :
object Form2: TForm2
Das vererbte Formular sieht weiter so aus :
Delphi-Quellcode:
inherited pnlOben: TPanel
Height = 161
object ckbAlpha: TCheckBox
Left = 296
Top = 120
Width = 129
Height = 17
Caption = 'alphabetisch sortieren'
TabOrder = 1
end
object btnStart: TButton
Das Panel "pnlOben" ist mit allen Eigenschaften vom Vorfahr-Formular geerbt. Die Checkbox darauf wurde erst jetzt mit diesem Formular eingeführt. Vererbe ich es weiter, so stehen in der
DFM nur noch die geänderten Sachen drin. Soll nun irgendwo die Vererbung unterbrochen werden, so könnte es eventuell schon genügen ein inherited wegzulassen. Ein Blick in die
DFM eines Formulars, das nicht mehr vererbt werden kann sollte das klären. Oder mal dasselbe Form per Objektablage vererben und nicht von Hand. Da sind sicherlich Unterschiede zu bemerken.