代码之家  ›  专栏  ›  技术社区  ›  James

隐藏Delphi2009应用程序中的主窗体

  •  8
  • James  · 技术社区  · 16 年前

    以下代码在Delphi7中工作正常。但是,在Delphi2009中,表单仍然是隐藏的,但是任务栏上的按钮现在出现了。

    ShowWindow(Handle, SW_HIDE);
    SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW );
    ShowWindow(Handle, SW_SHOW);
    

    在FormCreate方法中调用上述代码。

    2 回复  |  直到 16 年前
        1
  •  10
  •   James    10 年前

    结果我们看到任务栏上的应用程序窗口的原因是一个简单的设置,类似于Stukely的答案,但并不完全相同。

    要使主窗体显示在任务栏上并隐藏应用的应用程序菜单,请执行以下操作:

    Application.MainFormOnTaskbar := True;
    Application.ShowMainForm := False;
    

    表单后面没有创建代码或任何必需的代码。

        2
  •  5
  •   stukelly    16 年前

    你需要设置 ShowMainForm MainFormOnTaskBar 在创建窗体之前将属性设置为false。

    打开项目源并设置 主窗体工具栏 显示主窗体 在创建窗体之前设置为false。

    Application.Initialize;
    Application.MainFormOnTaskbar := false;
    Application.ShowMainForm := false;
    Application.CreateForm(TForm1, Form1);
    

    然后在主窗体上向 形式激活 形式展示 事件。

    procedure TForm1.FormActivate(Sender: TObject);
    begin
     // hide taskbar button
     ShowWindow(Application.Handle, SW_HIDE);
    end;
    procedure TForm1.FormShow(Sender: TObject);
    begin
     // hide taskbar button
     ShowWindow(Application.Handle, SW_HIDE);
    end;
    

    我在DEPHI 2007和2009进行过测试。其他信息可用 here .