【问题标题】:Force application to show TaskBar Icon during OnCreate procedure强制应用程序在 OnCreate 过程中显示任务栏图标
【发布时间】:2015-04-08 09:26:06
【问题描述】:

我使用delphi XE2。在我的主窗体 OnCreate 过程中,我运行了一些重要的元素,例如登录过程等。我的问题是,当我显示登录表单(由 OnCreate 过程调用)时,我的应用程序在 TaskBar 上不可见 - 当主表单可见时它变得可见。问题是,当用户通过另一个应用程序覆盖我的登录表单时,taskBar 上没有图标,他可能不知道我的应用程序已经运行并尝试再次启动它。他必须使用 ctrl+tab 来获取我的应用程序登录表单。

现在的问题...当 OnCreate 过程未完成时,如何强制应用程序/操作系统在任务栏上显示应用程序图标?

问候 马里奥

【问题讨论】:

    标签: delphi


    【解决方案1】:

    您可以覆盖登录表单的 CreateParams 以包含 WS_EX_APPWINDOW 前样式。

    type
      TLoginForm = class(TForm)
        ..
    
      protected
        procedure CreateParams(var Params: TCreateParams); override;
        ...
    
      end;
    
    procedure TLoginForm.CreateParams(var Params: TCreateParams);
    begin
      inherited;
      Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
    end;
    

    【讨论】:

    • 您的解决方案非常完美。谢谢!
    • @MariuszStefaniak 拯救了我的一天。谢谢。
    • @SertacAkyuz tessekrler sertac bey。谢谢。完美的解决方案。
    【解决方案2】:

    任务栏按钮在主窗体的窗口创建并可见时显示。这发生在OnCreate 之后。简单的解决方案是稍后显示登录表单。显而易见的选择是OnShow。确保你只在第一次 OnShow 触发时这样做。

    当然,这假设您希望主表单在登录表单显示时可见。如果没有,那么您需要确保登录表单具有任务栏按钮。通过使其无主来做到这一点。覆盖CreateParams 并将WndParent 设置为0。但是,如果您这样做,您将获得一个与登录表单标题具有相同标题的任务栏按钮。当登录表单关闭时,该任务栏按钮将消失,而主表单按钮将出现。您可能对它的外观不满意。

    我想您可以尝试将Application.MainFormOnTaskbar 设置为False。这样做,应用程序窗口就是任务栏按钮后面的窗口。这也许是一个相当大的变化。而且我不能 100% 确定如果主窗体没有显示,任务栏按钮会显示,所以这可能是一个死胡同。

    【讨论】:

      【解决方案3】:

      你可能想检查我的这个答案:

      Delphi Change main form while application is running

      在其中我展示了如何实现登录表单(在我的例子中实际上是主表单)和工作表单(这是您现在作为主表单的)的一些不同方法。

      我的方法的主要优点:

      • 因为工作人员表单是在成功登录后创建的,所以您可以轻松地根据特定的用户信用(不同的访问级别)动态创建自定义组件布局
      • 它为您提供了一种简单的方法来注销当前用户,而无需关闭整个应用程序。这是可能的,因为工作者表单不是应用程序的主表单,因此可以随时销毁而不会导致应用程序终止。而作为应用程序主表单的登录表单仅在特定用户登录时才会隐藏。

      【讨论】:

      • 您列出的所有优点都可以通过将主窗体作为实际主窗体轻松完成。我们也看不到你在这里的建议。给我们一个概要。看起来您提出的建议与其他答案中的相同。但如果这里的读者知道就好了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      • 2011-03-13
      • 2012-05-21
      • 2014-02-09
      • 2011-02-28
      • 2010-12-14
      • 1970-01-01
      相关资源
      最近更新 更多