![]() |
MouseEnter
Hallo
der Funktioniert bei Panel wollte stattdessen Image verwenden, geht es leider nicht !
Delphi-Quellcode:
Warum funktioniert bei Image1 nicht aber bei Panel1 ja ?private procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER; procedure TForm1.CMMouseEnter(var Message: TMessage); var ptWork : TPoint; begin GetCursorPos(ptWork); //if WindowFromPoint(ptWork) = Image1.handle then // error !!! if WindowFromPoint(ptWork) = Panel1.Handle then // ok begin Showmessage('hello');; end; end; |
Re: MouseEnter
Nur Nachfahren von TWinControl besitzen ein eigenes Fensterhandle, ansonsten verwaltet die VCL das Element selbst - TPanel stammt von TWinControl ab, TImage nur von TControl.
Du kannst deinen Code so abwandeln:
Delphi-Quellcode:
if Form1.ControlAtPos(Form1.ScreenToClient(ptWork), False, True, True) = Image1 then
|
Re: MouseEnter
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ab Delphi 10 gibt es auch bei einem TImage das Ereignis onMouseEnter, ansonsten könnte man es auch selber machen. Das wäre imho die bessere Variante als es über das onMouseEnter des Formulars zu machen. |
Re: MouseEnter
Hallo zusammen
der Code von @Flocke
Delphi-Quellcode:
und auch der Code in Demo von Dir @bitsetter funktionieren sehr gut und genau was ich gerne wollte.
if Form1.ControlAtPos(Form1.ScreenToClient(ptWork), False, True) = Image1 then ...
Besten Dank! |
Re: MouseEnter
Ich würde empfehlen das "Form1." in der IF Abfrage noch wegzulassen.
|
Re: MouseEnter
Zitat:
Delphi-Quellcode:
if {Form1.}ControlAtPos(Form1.ScreenToClient(ptWork), False, True) = Image1 then ...
|
Re: MouseEnter
Nun habe ich ein kleines Problem
ich möchte den Cursor mit sleep() deactivieren solang er drauf bewegt Ich möchte aber keine Zeit eingeben. Ist das möglich ?
Delphi-Quellcode:
Hat jemand eine Idee?
procedure TForm1.CMMouseEnter(var Message: TMessage);
var ptWork : TPoint; begin GetCursorPos(ptWork); if ControlAtPos(Form1.ScreenToClient(ptWork), False, True) = Image1 then begin sleep(); // hier möchte ich keine Zeit eingeben end; end; |
Re: MouseEnter
hi
Zitat:
Wenn der cursor nichts klicken soll musst du die mouseevents abfangen in diesem bereich, sowas wie onmousemove oder onclick. Wenn du lieber anstatt den cursor ne eieruhr haben möchtest, dann solltest du dort den cursor wechseln. Gruß Konse |
Re: MouseEnter
mouseevents schaft sowas nicht.
Ich habe fast alles erledigt, wieso ändere ich alles! |
Re: MouseEnter
Zitat:
Ich konnts mir einfach nicht verkneifen - Sorry |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:21 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