Ich verwende eine alte Vorläufer der DevExpress QuantumGrid (MasterView) in Delphi XE2 und möchte bestimmte Zellen effektiv als Hyperlinks (den Mauszeiger aus crDefault zu crHandPoint, wenn sie über sie sind und eine Aktion bei Klick auslösen).Ändern Sie den Mauszeiger, wenn über bestimmte Komponenten ohne andere Cursor-Einstellung Code
Die Konfiguration der Rasterkomponente ist so, dass einzelne Zellen keine eigene Komponente sind, und ich muss die Zelle aus den Mauszeigerkoordinaten finden und den Cursor von dort setzen.
Ich denke, ich muss ein paar Ereignisse auf meinem Gitterobjekt festlegen, um dies zu erreichen, aber ich bin ein wenig unwohl darüber, wie diese Ereignisse mit Code interagieren, der den Cursor zu einer Sanduhr bei lang laufenden Operationen setzt (wird derzeit mit IDisposible gehandhabt, um den Cursor nach Fertigstellung auf das Original zurückzusetzen, und ich möchte noch einmal überprüfen, ob es einen besseren Weg gibt, bevor ich anfange, und dann eine Tonne Kantenfälle finden, die den Mauszeiger im falschen Zustand belassen .
Ich glaube, ich außer Kraft setzen müssen:
- omMouseMove - erhalten XY-Koordinaten und setzen Sie den Cursor auf der Hand/Pfeil
- onMouseDown - erhalten XY-Koordinaten und 'aktivieren' Hyperlink falls vorhanden (möglicherweise auf Pfeil umkehren? Der Hyperlink öffnet normalerweise ein neues Fenster und der aufgerufene Code kann den Cursor in eine Sanduhr verwandeln.)
- onMouseLeave - Cursor auf Pfeil zurücksetzen (dieses Ereignis wird nicht wirklich angezeigt, also denke, ich brauche um Nachrichten manuell zu behandeln)
Diese Art von Funktionalität ist standardmäßig auf einem TButton, aber ich konnte nicht in der VCL sehen, wie es auf den ersten Blick erreicht wird, und möglicherweise eine Funktion der zugrunde liegenden Windows-Steuerelement.
Griff [ 'WM_SETCURSOR'] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms648382.aspx) –
Vielleicht wird dies helfen: https: // Paketüberfluss.com/questions/19257237/reset-cursor-in-wm-setcursor-handler-richtig –
Oder diese https://stackoverflow.com/q/19570880/8041231 – Victoria