AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CustomControl Vererbung und Paint

Ein Thema von stOrM · begonnen am 13. Sep 2017 · letzter Beitrag vom 13. Sep 2017
Antwort Antwort
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
436 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: CustomControl Vererbung und Paint

  Alt 13. Sep 2017, 21:26
Du machst wohl nur einen Denkfehler.
Du kannst Paint in jedem Derivat überschreiben:

Delphi-Quellcode:
procedure TBlubb2.Paint;
begin
  // wenn Du hier etwas zeichnest, wird das durch inherited Paint (falls Du es aufrufst) wieder übermalt
  inherited; // Zeichnet das von TBlubb - aber Du kannst inherited auch weg lassen und alles neu zeichnen
  // hier weiteres hinzumalen
end;
Ok fast, klappt es. Das Inherited war falsch Irgendeinen Fehler hab ich wohl noch, jetzt wird zwar der Hintergrund geändert durch das Paint in Komponente 2 nur mal ich da noch eine rote Linie oben auf das OffscreenBitmap das zeigt er mir jetzt dafür nicht mehr an Mal gucken wo da jetzt der Fehler ist. Erledigt....

Geändert von stOrM (13. Sep 2017 um 21:32 Uhr)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

AW: CustomControl Vererbung und Paint

  Alt 13. Sep 2017, 21:40
Wenn Du mal den ganzen Quelltext posten würdest, könnte man Dir sogar gezielt helfen und müsste nicht permanent raten, wo denn da jetzt ein Problem liegen könnte, dass es per Definition garnicht geben kann.

inherited wird dann aufgerufen, wenn die Methode des Vorgängers aufgerufen werden soll und zwar genau an der Stelle, an der die Methode des Vorgängers aufgerufen werden soll.

Möglich wäre also sowas:
Delphi-Quellcode:
procedure TBlubb2.Paint;
begin
  inherited; // Mache nur das, was auch der Vorgänger macht.
end;

procedure TBlubb2.Paint;
begin
  // Mache was eigenes ...
  inherited; // und dann das, was auch der Vorgänger macht.
end;

procedure TBlubb2.Paint;
begin
  inherited; // Mache das, was auch der Vorgänger macht.
  // und dann was eigenes ...
end;

procedure TBlubb2.Paint;
begin
  // Mache was eigenes,
  inherited; // dann das, was auch der Vorgänger macht ...
  // und dann noch was eigenes ...
end;
Bei inherited kommt es also durchaus darauf an, wo man es aufruft und nicht nur, dass man es aufruft oder es eben nicht aufruft.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#3

AW: CustomControl Vererbung und Paint

  Alt 13. Sep 2017, 21:44
Paint ist in TCustomControl doch bereits als virtuell deklariert, wenn ich nicht irre. Weshalb redeklarierst Du sie dann in der ersten Ableitung? Alles etwas komisch in meinen Augen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:50 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