![]() |
Neue Klasse (Nachkommen)
Hallo,
folgendes Problem. Ich möchte einen Nachkommen der Klasse TSpeedButton so verändern dass eine Metode X ausgeführt wird wenn sich das Feld Enabled ändert. Kennt jemand eine Lösung? Kleines Demo wäre nicht schlecht. Vielen Dank für Eure bemühungen. MfG Lars |
AW: Neue Klasse (Nachkommen)
Ich würde es so in der Art versuchen:
Delphi-Quellcode:
TMySpeedButton = class(TSpeedButton)
private procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED; end; |
AW: Neue Klasse (Nachkommen)
@baumina
Diese Nachricht wird schon von ![]() Dort wird aber einfach nur ![]()
Delphi-Quellcode:
und
public
Delphi-Quellcode:
.
virtual
Delphi-Quellcode:
TMySpeedButton = class( TSpeedButton )
private FOldEnabled : Boolean; FOnEnabledChanged : TNotifyEvent; public procedure Invalidate; override; published property OnEnabledChanged : TNotifyEvent read FOnEnabledChanged write FOnEnabledChanged; end; { TMySpeedButton } procedure TMySpeedButton.Invalidate; begin inherited; if FOldEnabled <> Enabled then begin FOldEnabled := Enabled; if Assigned( OnEnabledChanged ) then OnEnabledChanged( Self ); end; end; |
AW: Neue Klasse (Nachkommen)
Aber wenn ich einen Blick in Buttons.pas werfe, holt sich der TSpeedButton das auch so ab.
|
AW: Neue Klasse (Nachkommen)
Zitat:
aber dadurch überschreibt man das Handling für den originalen SpeedButton ... |
AW: Neue Klasse (Nachkommen)
AFAIK ist das auch das ganz normale Vorgehen, wenn man eine bestimmte Message gesondert behandeln möchte.
|
AW: Neue Klasse (Nachkommen)
Zitat:
|
AW: Neue Klasse (Nachkommen)
Dazu ruft man ja auch inherited auf.
|
AW: Neue Klasse (Nachkommen)
Zitat:
|
AW: Neue Klasse (Nachkommen)
Hallo,
vielen Dank für die Menge an Infos. Habe es so realisiert wie baumina es vorgeschlagen hat und es funktioniert bestens. Danke.:-D MfG Lars |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:39 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