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