![]() |
neue basiscomponente von Tcustomcontrol ableiten
ich leite eine neue basiscomponente von TCustomcontrol ab. in dieser will ich nur einen container bereitstellen auf dem ich die grafischen symbole zeichnen will. das die paint methode virtuell ist, muß ich doch in der basiscompo diese paintmethode doch nicht überschreiben, wenn ich diese nicht brauche, sondern nur in den nachfahren der basiscomponente, oder ?? :spin2:
|
Re: neue basiscomponente von Tcustomcontrol ableiten
Moin Kiar,
ausser bei abstrakten Methoden (soweit vorhanden), braucht man sich nicht um die Methoden des Vorfahren zu kümmern, wenn sie so wie sie sind in der abgeleiteten Klasse verwendet werden können. |
Re: neue basiscomponente von Tcustomcontrol ableiten
das kann ich nicht ganz verstehen . in der paintmethode von customcontrol steht ja nichts drin?
Delphi-Quellcode:
basiscopo = class(Tcustomcontrol) private hbm: TBitmap; public constructor create(AOwner TComponent); override; destructor destroy; override; end; nachfahre = class( TBasiscompo) public procedure paint; override; // muss diese nicht schon in der vorherigen deklaration aufgerufen werden ? |
Re: neue basiscomponente von Tcustomcontrol ableiten
Moin kiar,
nein, dadurch, dass TBasisCompo von TCustomControl abgeleitet wird, und diese die Methode Paint enthält (mindestens als proteced deklariert), enthält TBasisCompo die Methode auch. Durch das überschreiben hat man nur die Möglichkeit die Arbeitsweise einer geerbten Methode (virtual/dynamic) zu verändern, man muss es nur nicht. Da in diesem speziellen Falle die Methode unter protected deklariert ist, kann auf diese allerdings nicht in einer anderen Unit darauf zugreifen, wenn man eine Instanz von TBasisCompo bildet. Schau Dir dazu auch mal den Abschnitt über private, protected und public in der Hilfe an. Beispiel: In der Unit1 wird TBasisCompo deklariert, in Unit2 TNachfahr (hier wird Paint veröffentlicht), und in Unit3 wird eine Instanz von TNachfahr gebildet
Delphi-Quellcode:
// Unit1
type TBasisCompo = class(TCustomControl) end; // Unit2 uses ..., unit1; type TNachfahr = class(TBasisCompo) public procedure Paint; override; end; implementation procedure TNachfahr.Paint; begin //... end; // Unit3 implementation uses unit2; procedure TForm3.Button1Click(Sender: TObject); var nf : TNachfahr; begin nf := TNachfahr.Create(self); nf.Paint; end; |
Re: neue basiscomponente von Tcustomcontrol ableiten
ich denke iich habe es begriffen :thuimb:
danke chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:55 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