gpt4 book ai didi

delphi - 执行 FormResize 事件的代码

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

我尝试了多种方法来强制 FormResize 事件执行,但没有成功,包括 SetWindowPos。当使用鼠标调整表单大小时,以下代码效果很好,但我还需要使用代码手动调用它。然而,我不希望表单发生任何改变。

procedure TFormMain.FormResize( Sender: TObject );
begin
dxDockPanelFolders1.Height := dxVertContainerDockSite1.Height div 3;
dxDockPanelFiles1.Height := dxVertContainerDockSite1.Height div 3;
dxDockPanelPreview1.Height := dxVertContainerDockSite1.Height div 3;
end;

无论如何,我在搜索网络时还没有看到完成此任务的方法。

最佳答案

我会使用一些间接:

procedure TFormMain.UpdateDockPanelLayout;
begin
dxDockPanelFolders1.Height := dxVertContainerDockSite1.Height div 3;
dxDockPanelFiles1.Height := dxVertContainerDockSite1.Height div 3;
dxDockPanelPreview1.Height := dxVertContainerDockSite1.Height div 3;
end;

procedure TFormMain.FormResize(Sender: TObject);
begin
UpdateDockPanelLayout;
end;

现在您可以直接从代码中的任何位置调用 UpdateDockPanelLayout

我意识到您可以调用 FormResize 并传递 Sender 但该解决方案在某种程度上让我感觉很肮脏。按照上面的建议执行此操作还可以让您更具体地命名该方法,而不是与驱动它的 UI 事件紧密耦合。

关于delphi - 执行 FormResize 事件的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6330928/

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