![]() |
(gelöst) Vererbung
Guten Tag zusammen,
ich bin bei den arbeiten an meinem aktuellen Programm auf ein Problem getroffen, das mir Kopfzerbrechen bereitet. Ich möchte die Klasse TCheckbox so erweitern, dass sie weitere Befehle ausführt, wenn der Status von TcheckBox.Checked geändert wird. Das Problem: Wenn ich das richtig sehe, lautet die passende Procedur "Toggle" und stammt von "TCustomCheckbox" ab. Nur wie kann ich angeben, dass ich diese Methode erweitern möchte und nicht eine von TCheckbox eingeführte? Entschuldigt bitte, falls ich da etwas falsch verstanden habe, aber ich bin noch relativ unerfahren mit dem Thema Vererbung. Ich habe mir mal ![]() |
AW: Vererbung
Die korrekte Methode (auch, wenn es komisch klingt) wäre Click. Die Methode Toggle wird nur aufgerufen, wenn man auf die Checkbox klickt und nicht, wenn man im Code z.B.
Delphi-Quellcode:
schreibt (witzigerweise wird in diesem Fall aber die Click Methode aufgerufen).
CheckBox1.Checked := False
Somit würde dein Code etwa wie folgt aussehen:
Delphi-Quellcode:
TMyCheckBox = class(TCheckBox)
protected procedure Click; override; end; procedure TMyCheckBox.Click; begin inherited; // dein Code end; |
AW: Vererbung
Wenn sich der Status der
![]() ![]() Somit ist eigentlich schon alles vorhanden um da weiteren Code aufzurufen. Einfach mal im Editor einen DoppelKlick auf die CheckBox machen, dann sollte eigentlich der passende Methodenrumpf erscheinen ;) EDIT: Eine Ableitung der Klasse ist hier oversized :) |
AW: Vererbung
Hallo nocheinmal,
funktioniert tadellos, das war ja einfach :) Vielen lieben Dank für eure Hilfe! .... wieder was gelernt... ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:25 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