Delphi fmx无边框窗体拖功
时间: 2023-05-26 07:06:26 浏览: 120
可以通过以下步骤实现Delphi FMX无边框窗体的拖动功能:
1. 在窗体的OnMouseDown事件中添加以下代码:
if Button = TMouseButton.mbLeft then
begin
ReleaseCapture;
SendMessage(Self.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
end;
这将允许用户点击窗体并拖动它。
2. 如果您想在拖动窗体时改变鼠标光标形状,可以在OnMouseMove事件中添加以下代码:
if (ssLeft in Shift) then
begin
Screen.Cursor := crSizeAll;
end
else
begin
Screen.Cursor := crDefault;
end;
这将在拖动窗体时将光标形状更改为“大小调整”。
请注意,这些代码将在窗体的客户端区域上运行。如果您想在整个窗体上启用拖动功能(包括标题栏和窗口边框),则需要更改发送消息的参数。您可以使用以下代码将其更改为:
if Button = TMouseButton.mbLeft then
begin
ReleaseCapture;
SendMessage(Self.Handle, WM_SYSCOMMAND, $F012, 0);
end;
这将使整个窗体都能够进行拖动。