gpt4 book ai didi

Delphi - 在设计模式下在运行时移动控制

转载 作者:行者123 更新时间:2023-12-03 15:02:57 24 4
gpt4 key购买 nike

大家好,

我尝试在运行时模式下使用鼠标移动我自己的组件,就像在设计模式下一样。

直到鼠标按钮没有释放时组件才会移动,此时会显示一个空框架并提示显示左上角位置。

我做了很多尝试,但直到现在都没有成功。

任何帮助

最佳答案

好吧,我会把它发布在这里。以下代码使用未记录的 WM_SYSCOMMAND常量 $F012 并适用于 TWinControl后代。

请注意,它没有记录在案,并且可能无法在未来版本的 Windows 上运行(如果他们决定这样做,则与 Windows API 中的其他任何内容一样),但它可以运行(在多个 Windows 版本上进行了测试),并且是移动 Windows 的最简单方法。运行时的组件。

procedure TForm.YourComponentMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DRAGMOVE = $F012;
begin
ReleaseCapture;
YourComponent.Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
end;

类似的魔法也存在于大小调整方面,即命令$F008

procedure TForm.YourComponentMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DRAGSIZE = $F008;
begin
ReleaseCapture;
YourComponent.Perform(WM_SYSCOMMAND, SC_DRAGSIZE, 0);
end;

关于Delphi - 在设计模式下在运行时移动控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6952283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com