在 Delphi 中将应用程序从 VCL 迁移到 FMX

问题描述 投票:0回答:1

我正在将我的应用程序从 Delphi VCL 应用程序迁移到 FMX,并且我被困在这段代码中,我应该将

Image1
拖到窗体边缘之外,但相同的代码对FMX形式。我怎样才能使这段代码适应Firemonkey。

我尝试使用已在 VCL 中使用的相同代码,但图像不会像我之前的应用程序中那样移动到表单边缘之外。

这是我在 VCL 中使用的代码以及我试图在 FMX 中改编的代码

procedure Tfrmmain.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Single);
begin
  if ssLeft in Shift then
  begin
    CanDragging:= True;
    StartDragPos:= ClientToScreen(PointF(X, Y));
  end;
end;

procedure Tfrmmain.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Single);
begin
  if CanDragging then
  begin
    Image1.Position.Point:= ScreenToClient(ClientToScreen(
    Image1.Position.Point + ClientToScreen(PointF(X, Y)) - StartDragPos));
  end;
end;

procedure Tfrmmain.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Single);
begin
  CanDragging:= False;
end;

procedure Tfrmmain.MouseUpEvent(X, Y: Integer);
begin
  CanDragging:= False;
  StartDragPos:= Point(0, 0);
end;
delphi firemonkey
1个回答
0
投票

我对 Firemonkey 很陌生,有些事情可能会被忽视。发布这个问题后不久,我决定继续我的研究,发现这个问题似乎解决了我的问题。对于我来说,这么小的决心是一个巨大的决定。

这是我将使用的解决方案

自动捕捉

© www.soinside.com 2019 - 2024. All rights reserved.