Man darf nicht Dinge vererben die dann in der abgeleiteten Klasse
teilweise ausgehebelt werden!
Nehmen wir mal
{Button}.Free
- was passiert wohl wenn im übergeordneten Formular auf eben diesen Button zugegriffen wird?
Ok, dann eben nur
{Button}.Hide
bzw
{Button}.Visible := False
.
Aber auch hier - wenn im übergeordneten Formular das Property Visible verändert wird dann erscheint je nach äusseren Umständen ein Button wo er nicht hingehört.
Und nach Murphy tritt dieser Fall erst beim Endbenutzer auf und wird bei Tests nicht entdeckt.
Der Button könnte z.B. auch dynamisch über
RTTI angesprochen werden ohne dass dies bei Anwendung dieses Tricks bekannt wäre.
Oder man stelle sich vor das Projekt von einem anderen Mitarbeiter übernommen.
Ich kann mir schon vorstellen welche Flüche er von sich gibt wenn er auf diesen unerwarteten Trick stösst.