这个问题已经有答案了:
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;
1条答案
按热度按时间gstyhher1#
我对Firemonkey非常陌生,有些事情可能会被忽视。发布这个问题后不久,我决定继续我的研究,发现这个问题似乎解决了我的问题。对我来说,这是一个巨大的决心。
下面是我将使用的解决方案
AutoCapture