Einzelnen Beitrag anzeigen

Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#11

Re: Bereich beim Mouseover hervorheben

  Alt 9. Mai 2008, 23:30
Zitat von bitsetter:
Du kannst doch allen Komponenten die gleiche MouseMove Prozedur zuweisen.
Das finde ich nicht sehr geschickt...

Zitat von bitsetter:
Oder du verwendest das Ereignis onMessage der Komponente TApplicationEvents.
Das habe ich jetzt mal gemacht und es funktioniert soweit, dass die Koordinaten ständig aktualisiert werden, egal, worauf der Mauszeiger zeigt. Super!
Das Problem ist aber nun, dass die Koordinaten vom Gesamtbildschirm angezeigt werden und nicht die Koordinaten im Programmfenster, was ich aber bräuchte, um die Hervorhebung an die exakte Stelle zeichnen zu können. Kriegt man das nun auch noch irgendwie hin?
Wenn ich das hier versuche:
Label1.Caption := Format('%d:%d', [Mouse.CursorPos.X-Form1.Left, Mouse.CursorPos.Y-Form1.Top]); dann stimmen die Werte immer noch nicht exakt. Ich vermute, es muss noch der Fensterrand abgezogen werden, aber das ist mir irgendwie nicht so ganz geheuer. Je nach Systemeinstellung (anderer Windows-Skin, große Schriftarten) wird das dann nachher doch anders berechnet und die Position stimmt nicht mehr. Also wie geht das richtig?
  Mit Zitat antworten Zitat