![]() |
Auf Privates Feld des Vorgängers zugreifen
Hallo,
TControl hat die private Procedure SetColor. Mein Nachfahre davon soll auf eine Änderung der Farbe reagieren. Also habe ich SetColor überschrieben. Gibt es eine Möglichkeit die Procedure von TControl aufzurufen, obwohl sie als private deklariert ist? Oder ist mein Weg falsch? Wie geht das geschickter? Vielen Dank, Benjamin |
Re: Auf Privates Feld des Vorgängers zugreifen
Private gehört nur der Klasse.
Was nicht als virtual oder dynamic deklariert ist, kann nicht überschrieben (override) werden. Innerhalb der selben Unit kann man aber von extern auf private Felder/Methoden zugreifen/aufrufen (solange sie nicht "strict private" sind. Schau doch einfach mal, welche Message bei einer Änderung im Control rumgeschieckt wird und reagiere darauf. |
Re: Auf Privates Feld des Vorgängers zugreifen
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
type
TMyControl = class(TControl) private procedure CMColorChanged(var Message: TMessage); message CM_COLORCHANGED; public end; procedure TMyControl.CMColorChanged(var Message: TMessage); begin inherited; // tue was immer nötig ist end; |
Re: Auf Privates Feld des Vorgängers zugreifen
Vielen Dank!
die Methode mit der Message gefällt mir sehr gut, ich hoffe daran erinnere ich mich das nächste Mal wieder. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:07 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 by Thomas Breitkreuz