![]() |
OnClick abfangen
Hallo,
In einem Form gibt es ja die Möglichkeit, mit KeyPreview einen Tastendruck zuerst im Form auszuwerten und danach erst im Steuerelement. Gibt es sowas auch für einen Mausklick? Oder kann ich aus Steuerelementensicht, bei einem Klick darauf das Mausklick-Ereignis abfangen bevor das Steuerelement den Focus erhält. Ich möchte also, dass das Steuerelemet zwar die Klicks verarbeitet oder dabei nicht den Focus bekommt. ciao Martin |
Re: OnClick abfangen
Hallo Martin,
falls es sich um einen Button handelt, wäre es das einfachste Du verwendest einen SpeedButton, da dieser von Hause aus keinen Focus erhält. |
Re: OnClick abfangen
Nein, leider ist es kein Button, es geht um eine ListBox.
|
Re: OnClick abfangen
Du kannst ja den Focus wieder woanderes hinsetzen, nachdem mit der Maus da reingeklickt wurde.
Delphi-Quellcode:
procedure TForm1.ListBox1MouseUp...;
begin Edit.SetFocus; // oder Form1.ActiveControl := Edit1; // oder ... end; |
Re: OnClick abfangen
Vielleicht so
Delphi-Quellcode:
procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin LastFocus := Form1.ActiveControl; end; procedure TForm1.ListBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Form1.ActiveControl := LastFocus; end; |
Re: OnClick abfangen
Das funktionier bei mir nicht, da im Steuerelement, welches verlassen wurde OnExit ausgelöst wird, und das darf nicht sein. Das OnExit soll nur ausgelöst werden, wenn ich auf irgend ein anderes Steuerelement klicke, aber nicht wenn ich auf die eine ListBox klicke.
Ich glaube manchmal, dass ich zu hohe Ansprüche an die Entwicklungsumgebung bzw. an meine eignenen Programme habe. :lol: |
Re: OnClick abfangen
dann eher so:
Delphi-Quellcode:
denn bis ListBox1MouseUp aufgerufen wurde, hatte sich vorher mal die Maus über der ListBox befunden/bewegt und LastFocus wäre demnach ListBox1 :stupid:
procedure TForm1.ListBox1MouseMove...;
begin if ActiveControl <> ListBox1 then LastFocus := ActiveControl; end; |
Re: OnClick abfangen
Zitat:
Ok, vielleicht ist ja auch falsch. |
Re: OnClick abfangen
Aber wenn ich auf die ListBox klicke, ist das erste was passiert, sie bekommt den Focus und damit wird OnExit meines letzten Steuerelemenmts ausgelöst.
|
Re: OnClick abfangen
MouseMove tritt immer ein, wen die Maus über das Element fährt, egal ob dieses den Fokus hat, oder nicht.
OnExit ist zwar schön, nur kennt nicht alles dieses Ereignis und für jedes Element auf der Form dieses einzurichten könnte auch noch ein bissl viel sein. Da macht sich etwas, welches nur in der ListBox und/oder Forum ist einfacher. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18: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 by Thomas Breitkreuz