![]() |
Mouse-Events weiterreichen?
Hallo,
ich habe eine eigene Komponente basierend auf einem TPanel und darauf weitere Controls. Wenn ich nun auf meine Komponente zur Laufzeit klicke, wird das OnClick nicht gefeuert, im Debugger sehe ich das das OnClick in dem "Sub-Control" meiner Komponente gefeuert wird. Kann ich irgendwie diesen Click / Mousemove / etc. von den Unterkomponenten an das Parentpanel weiterleiten, so dass der OnClick der Komponente gefeuert wird? Ciao Stefan |
AW: Mouse-Events weiterreichen?
Vielleicht so?
Delphi-Quellcode:
type
TMyPanel = class(TPanel) private FEdit: TEdit; procedure OnSubComponentClick(Sender: TObject); public constructor Create(AOwner: TComponent); override; end; ... constructor TMyPanel.Create(AOwner: TComponent); begin inherited; FEdit := TEdit.Create(self); FEdit.Parent := self; FEdit.OnClick := OnSubComponentClick; end; procedure TMyPanel.OnSubComponentClick(Sender: TObject); begin if Assigned(OnClick) then OnClick(self); // oder auch Sender statt self, wie man es halt braucht end; |
AW: Mouse-Events weiterreichen?
Mist, darauf hätte ich auch kommen können, einfach den Event des Parents aufrufen...
Danke für den Tip! Wichtig finde ich das
Delphi-Quellcode:
if Assigned(OnClick) then
denn wenn es in der Anwendung später keinen OnClick des Controls gibt knallt es. Ciao Stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 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