gpt4 book ai didi

Delphi 最小化所有 MDI 子项

转载 作者:行者123 更新时间:2023-12-03 18:32:11 26 4
gpt4 key购买 nike

我在最小化我所有的 MDIChildren 时遇到了麻烦,遇到了 MDIChild to minimize not activated properly

我最小化所有 child 的代码是:

procedure TMainWindow.MinimizeAll1Click(Sender: TObject);
var
i: Integer;
begin
for i := 0 to MDIChildCount - 1 do begin
MDIChildren[i].WindowState := wsMinimized;
//ShowWindow(MDIChildren[i].Handle, SW_MINIMIZE)
end;
end;

我尝试了两种方法(SW_MINIMIZE 和 wsMinimized),但由于某种原因,最后一个 MDI 子窗体没有最小化。但是,如果您再次尝试最小化所有子项,它会起作用。在 Delphi XE 的 MDIAPP 示例中最小化所有工作。
如何在 1 个例程中正确地最小化所有 MDI 子项?

最佳答案

最小化 MDI 子窗口会更改表单在 MDIChildren[] 中的显示顺序。 .此索引属性始终返回 MDIChildren[0] 中的事件 MDI 子项.所以,做你想做的最干净的方法是先复制所有表单,然后开始最小化。

var
i: Integer;
Forms: array of TForm;
....
SetLength(Forms, MDIChildCount);
for i := 0 to high(Forms) do
Forms[i] := MDIChildren[i];
for i := 0 to high(Forms) do
Forms[i].WindowState := wsMinimized;

关于Delphi 最小化所有 MDI 子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16652505/

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