无论如何,在 Delphi FMX 中是否可以使用鼠标调整无边框窗体的大小?我尝试使用OnMouseDown然后OnMouseMove使用表单的位置与表单的左侧和顶部进行比较,但我无法使其工作。
由于某种原因,FMX 中的鼠标看起来与普通 VCL 应用程序中的鼠标非常不同。
小智 0
在 Firemonkey 中,鼠标坐标并不总是相对于表单的顶部/左侧像素。
您可以使用函数来转换它们并使用如下代码模拟 sizegrip:
procedure TFenetre.btnRedimensionneMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Single);
begin
if (ssLeft in Shift) then
begin
deplacementX := X;
deplacementY := Y;
end;
end;
procedure TFenetre.btnRedimensionneMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Single);
begin
if (ssLeft in Shift) then
begin
Self.width := Self.width - deplacementX + X;
Self.height := Self.height - deplacementY + Y;
end;
end;
Run Code Online (Sandbox Code Playgroud)
btnRedimensionne 是一个按钮、图像或任何其他用作手柄大小控制的东西。
将其添加到您的班级中:
deplacementX, deplacementY: Single;
Run Code Online (Sandbox Code Playgroud)
这些字段用于计算移动(增加或减少表单/框架的大小)。
| 归档时间: |
|
| 查看次数: |
1306 次 |
| 最近记录: |