首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi FMX使用鼠标调整无边框窗体的大小

Delphi FMX使用鼠标调整无边框窗体的大小
EN

Stack Overflow用户
提问于 2014-02-21 20:16:04
回答 2查看 1.1K关注 0票数 4

在Delphi FMX中有没有使用鼠标调整无边框窗体大小的方法?我尝试使用OnMouseDownOnMouseMove,然后使用表单的位置与表单的左侧和顶部进行比较,但我无法正常工作。

由于某些原因,FMX中的鼠标似乎与普通VCL应用程序中的鼠标非常不同。

EN

回答 2

Stack Overflow用户

发布于 2017-08-27 01:59:55

在火猴中,鼠标的坐标在任何时候都不是窗体的左上角像素的相对位置。

您可以使用函数对它们进行转换,并使用如下代码模拟sizegrip:

代码语言:javascript
复制
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是一个按钮,图像或任何其他用作手柄大小控制的东西。

在您的类中添加以下内容:

代码语言:javascript
复制
deplacementX, deplacementY: Single;

这些字段用于计算移动(增加或减小表单/框架的大小)。

票数 0
EN

Stack Overflow用户

发布于 2019-03-07 04:19:27

如果您的客户不禁止这样做,您可以更改BorderStyle while运行时,以使用户能够像往常一样调整表单大小。这对调整大小没有任何问题,虽然用户不使用此功能,但不会有边框。用户可以通过按CTRL +R来激活此功能,或者您可以只做一个按钮或选项来激活它。

在我的例子中,这很好用,因为我只需保存新的给定的witdh和高度,然后调整Form.Top和Form.Left,使其看起来流畅。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21934273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档