gpt4 book ai didi

forms - 应用程序何时显示在任务栏上?

转载 作者:行者123 更新时间:2023-12-03 19:51:07 26 4
gpt4 key购买 nike

我有一个在启动时显示子窗体的应用程序。我已经将subform.showmodal放在mainform.onCreate上,但是直到稍后应用程序才会显示在任务栏上。该应用程序何时放置在任务栏上,何时应在启动时显示子表单?

最佳答案

注意:我假设您正在使用现代的Delphi,并在.dpr文件的早期将Application.MainFormOnTaskbar设置为True。也就是说,任务栏按钮与主窗体的窗口句柄相关联。

稍微简化一下,任务栏按钮显示为可见的无主顶层窗口。

因此,当主窗体变为可见时,将为您的主窗体创建任务栏按钮。这是通过ShowWindow调用TCustomForm.CMShowingChanged发生的。框架在执行虚拟ShowWindow之后,因此在窗体的DoShow事件执行之后,对OnShow进行此调用。因此,您会发现OnShow处理程序中的代码发生在创建任务栏按钮之前。

当我阅读您的问题时,您希望在显示主表单后尽快显示模态表单。通过处理CM_SHOWINGCHANGED来做到这一点:

type
TMainForm = class(TForm)
protected
procedure CMShowingChanged(var Message: TMessage); message CM_SHOWINGCHANGED;
end;

....

procedure TMainForm.CMShowingChanged(var Message: TMessage);
begin
inherited;
if Visible and ModalSubFormHasNotBeenShown then
ShowModalSubForm;
end;

关于forms - 应用程序何时显示在任务栏上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32066861/

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