Delphi表单最小化问题

时间:2010-11-19 07:37:23

标签: delphi

我目前有一个delphi 7项目坐在我面前,软件的原始创建者所做的是使用主窗体作为另一个窗体的启动板,其中包含整个应用程序背后的实际控件和逻辑。所以基本上,form1加载,设置为不可见,另一种形式(带有所有UI控件和逻辑的表单)被创建和显示,这是一种奇怪的做事方式,但它的方式也是如此。

现在我不熟悉delphi 7处理其表单的方式,但是第二个窗口,包含所有控件的窗口,每当我点击最小化按钮时,表单都不会下拉到任务栏。期望,但是,调整大小,以便只显示最小化,最大化和关闭按钮,然后将其自身置于屏幕的左下方,就在开始菜单的上方。

创建第二个窗口是:

frmPlatform := TfrmPlatform.Create(frmMain);
ModalResult := frmPlatform.ShowModal;

其中frmMain是不可见的形式。

我的问题是,为什么第二个窗口没有像预期的那样最小化并掉到任务栏?以及如何让它工作,

感谢

2 个答案:

答案 0 :(得分:7)

表单的标准行为我担心主要表单默认情况下是Delphi在任务栏上显示的唯一表单。但是,您也可以设置其他表单以显示在任务栏上:

procedure TForm1.CreateParams
   (var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.ExStyle := Params.ExStyle
                    or WS_EX_APPWINDOW;
end;

您也可以隐藏当前的主要形式,请参阅:http://delphi.about.com/od/adptips1999/qt/hidefromtaskbar.htmhttp://delphi.about.com/od/delphitips2008/qt/hide_taskbutton.htm以及D2007及以上版本。

答案 1 :(得分:0)

我想你会发现在标准的Delphi应用程序中,只有主(第一)表单会显示在任务栏中。由于您的主要表单是隐形的,这是您的问题。最小化可能是由于使用show modal调用第二种形式而不是简单地显示。

您可以删除第一个表单或更改哪个表单是主表单吗?这可以从项目设置页面完成。