无论如何使用鼠标在Delphi FMX中调整无边框形状的大小?
我曾尝试使用OnMouseDown
和OnMouseMove
,然后使用表单的位置与表单的左侧和顶部进行比较,但我无法使其工作。
由于某些原因,在正常的VCL应用程序中,FMX中的鼠标似乎与鼠标非常不同。
答案 0 :(得分: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;
btnRedimensionne是一个按钮,图像或其他用作夹点控制的东西。
在课堂上添加:
deplacementX, deplacementY: Single;
这些字段用于计算形式(增加或减少表格/框架的大小)。
答案 1 :(得分:0)
如果您的客户不禁止这样做,则可以在运行时更改BorderStyle,以使用户能够像平常一样调整表单的大小。调整大小不会造成任何问题,并且当用户不使用此功能时,将不会出现边框。用户可以通过按CTRL + R激活此功能,也可以仅使它激活的按钮或选项。
就我而言,这很好,因为我只是保存了新的给定宽度和高度,然后调整Form.Top和Form.Left以使其看起来流畅。