![]() |
Rahmen berührt ?
Hi :-)
Gibt es eine Möglichkeit zu überprüfen, ob der Benutzer mit dem Mauszeiger den rechten Rand der Form berührt hat ? Ich habe es mal so probiert:
Delphi-Quellcode:
Wenn ich es mit Screen.Width probiere, geht es auch nicht :-(
procedure TForm1.FormCreate(Sender: TObject);
begin if (Mouse.CursorPos.X = Self.Width) then JvNavigationPane1.Visible := true; end; Liegt es vielleicht daran, das ich das in eine Endlosschleife schreiben müsste ? Damit er das ständig überprüft ? Aber das wäre ja blöd. Ich kann ja nicht die ganze Zeit so eine Schleife laufen lassen ... Gruß, -=cats=- :coder: |
Re: Rahmen berührt ?
Hi,
du könntest die Nachricht WM_NCMOUSEMOVE abfangen:
Delphi-Quellcode:
Gruß Hawkeye
type
TForm1 = class (TForm) private procedure WMNCMouseMove (var aMsg: TWMNCMouseMove); message WM_NCMOUSEMOVE; end; procedure TForm1.WMNCMouseMove (var aMsg: TWMNCMouseMove); begin inherited; Caption := Format('%d: code=%.8x', [GetTickCount, aMsg.HitTest]); if (aMsg.HitTest = HTRIGHT) then Caption := Caption + ' *rechter Rand*'; end; |
Re: Rahmen berührt ?
Cool vielen Dank !!
Das funktioniert :-) Nur leider klappt es nicht, wenn die Form Vollbild ist ... |
Re: Rahmen berührt ?
Hallo,
Zitat:
Gruß xaromz |
Re: Rahmen berührt ?
Wenn du lediglich das JvNavigationPanel einblenden möchtest, gibt es vielleicht eine andere Möglichkeit. Setze die Breite des Panels auf beispielsweise 3 Pixel, anstatt es vollständig unsichtbar zu machen. Im MouseOver-Event des Panels kannst du dann wieder dessen ursprüngliche Breite einstellen. Verläßt der Mauszeiger das Panel, setzt du die Breite erneut auf 3 Pixel.
Gruß Hawkeye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00: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