![]() |
Panel mit MouseEnter/Exit nachrüsten ?
Hi,
hat jemand das schon mal gemacht ? Wenn ja, wie ? In der VCL habe ich gesehen, dass das beim Label mit message gemacht wird CM_MOUSEENTER etc. Kann man das eventuell abkupfern ? Ich brauche folgende Ereignisse :
und das :
Oder gibt es eine einfache Komponente, die ich übeersehen habe, die das alles hat ? |
Re: Panel mit MouseEnter/Exit nachrüsten ?
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
![]() Edit: Zitat:
Und OnMouseEnter sowie OnMouseLeave sind schon bei Delphi 10 mit dabei. Zitat:
EDIT: Hier das ganze nochmal ohne Komponente:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TPanel = class(ExtCtrls.TPanel) private { Private-Deklarationen } FOnMouseEnter: TNotifyEvent; FOnMouseLeave: TNotifyEvent; procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER; procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE; protected { Protected-Deklarationen } public property Canvas; property TabOrder; property TabStop; property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter; property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave; end; type TForm1 = class(TForm) Panel1: TPanel; Panel2: TPanel; procedure FormCreate(Sender: TObject); private procedure PanelMouseEnter(Sender: TObject); procedure PanelMouseLeave(Sender: TObject); public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TPanel.CMMouseEnter(var Message: TMessage); begin if assigned(FOnMouseEnter) then FOnMouseEnter(Self); end; procedure TPanel.CMMouseLeave(var Message: TMessage); begin if assigned(FOnMouseLeave) then FOnMouseLeave(Self); end; procedure TForm1.PanelMouseEnter(Sender: TObject); begin if Sender is TPanel then begin TPanel(Sender).Canvas.Brush.Color:= clRed; TPanel(Sender).Canvas.TextOut(10, 10, 'MouseEnter'); end; end; procedure TForm1.PanelMouseLeave(Sender: TObject); begin if Sender is TPanel then begin TPanel(Sender).Canvas.Brush.Color:= clRed; TPanel(Sender).Canvas.TextOut(10, 10, 'MouseLeave'); end; end; procedure TForm1.FormCreate(Sender: TObject); begin Panel2.OnMouseEnter:= PanelMouseEnter; Panel2.OnMouseLeave:= PanelMouseLeave; Caption:= inttostr(Panel2.TabOrder); end; end. |
Re: Panel mit MouseEnter/Exit nachrüsten ?
Liste der Anhänge anzeigen (Anzahl: 1)
Das geht tatsächlich mit VCL-Abkupfern. :mrgreen: Thx @Bitsetter. Der Fall eignet sich allerdings auch dazu, auf einfache Weise zu zeigen, wie bereits vorhandene Komponenten erweitert/nachgerüstet werden können. Siehe Anhang.
|
Re: Panel mit MouseEnter/Exit nachrüsten ?
Du solltest vielleicht schon die ExtPanel.pas noch dazuhängen. ;)
Eigentlich hätte ich, nach dem was Du sonst in der DP von Dir gibst, gedacht, dass Du das alleine hinbekommst. So kann man sich täuschen. :) |
Re: Panel mit MouseEnter/Exit nachrüsten ?
Das war eine Vorfrage mit immerhin einer Antwort.
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:03 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