在 Delphi 中将应用程序从VCL迁移到FMX [重复]

mkh04yzy  于 2023-10-18  发布在  其他
关注(0)|答案(1)|浏览(174)

这个问题已经有答案了

FMX: How can I get a forms mousemove events outside of the form(1个答案)
13天前关闭
我正在将我的应用程序从 Delphi VCL Application迁移到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;
gstyhher

gstyhher1#

我对Firemonkey非常陌生,有些事情可能会被忽视。发布这个问题后不久,我决定继续我的研究,发现这个问题似乎解决了我的问题。对我来说,这是一个巨大的决心。
下面是我将使用的解决方案
AutoCapture

相关问题