ClipCursor
Beispiel:
Delphi-Quellcode:
procedure TForm1.DBGrid1MouseEnter(Sender: TObject);
var
Rect: TRect;
begin
Rect.Left := DBGrid1.Left;
Rect.Top := DBGrid1.Top;
Rect.Right := DBGrid1.Left + DBGrid1.Width;
Rect.Bottom := DBGrid1.Top + DBGrid1.Height;
ClipCursor(@Rect);
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#27 then ClipCursor(nil);// ESC
end;
Hmm..
müsste das nicht eher so sein?
Delphi-Quellcode:
var
Rect: TRect;
begin
Rect.TopLeft := ClientToScreen(DBGrid1.BoundsRect.TopLeft);
Rect.BottomRight := ClientToScreen(DBGrid1.BoundsRect.BottomRight);
ClipCursor(@Rect);
end;
So bekommt das ClipCursor den tatsächlichen Rect des Grids auf dem Screen.
Ansonsten ist der irgendwo, da Grid-Left in abhängigkeit vom Parent ist und nicht vom Screen...
Edit:
Oder (verkürzt)
Delphi-Quellcode:
var
Rect: TRect;
begin
GetWindowRect(DBGrid1.Handle, Rect);
ClipCursor(@Rect);
end;