Thema: Delphi Cursornamen Bestimmen

Einzelnen Beitrag anzeigen

Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Cursornamen Bestimmen

  Alt 22. Mär 2013, 09:18
Sodele habs erledigt. Da jegliche Abfrage des Cursors (ScreenCursors, GetCursorInfo, Control.Cursor, etc...) ums Verrecken nicht das korrekte Ergebnis liefert, scheint es sich an dieser Stelle um etwas ganz anderes zu handeln. Workaround ist zu ermitteln, ob denn das BorderIcon geklickt wurde, und das geht lächerlich einfach:
Delphi-Quellcode:
TMeinDialog = class(TForm)
.
.
.
private
    biHelpClicked: Boolean;
    procedure wmNCLButtonDown(var Msg: TWMNCLButtonDown); message WM_NCLBUTTONDOWN;
    procedure wmNCLButtonUp(var Msg: TWMNCLButtonUp); message WM_NCLBUTTONUP;
.
.
.
procedure TMeinDialog.wmNCLButtonDown(var Msg: TWMNCLButtonDown);
begin
  if Msg.HitTest = HTHELP then
  begin
    biHelpClicked := True;
  end;
  inherited;
end;

procedure TMeinDialog.wmNCLButtonUp(var Msg: TWMNCLButtonUp);
begin
  if Msg.HitTest = HTHELP then
  begin
    biHelpClicked := True;
  end;
  inherited;
end;
Im ClickEreignis eines jeden Controls kann nun auf biHelpClicked geprüft und entsprechend reagiert werden.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat