我正在将我的应用程序从 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;
我对 Firemonkey 很陌生,有些事情可能会被忽视。发布这个问题后不久,我决定继续我的研究,发现这个问题似乎解决了我的问题。对于我来说,这么小的决心是一个巨大的决定。
这是我将使用的解决方案