一旦离开主表单,我的应用程序就会从任务栏中消失

时间:2014-03-07 13:11:32

标签: windows delphi

下面是我点击主表单上按钮的代码。

procedure TfrmLoginSelect.btnStudentLoginClick(Sender: TObject);
var
  FilePAthFile:TextFile;
begin
  assignFile(filepathfile,FilePathLocation);
  reset(filepathfile);
  readln(filepathfile,FilePath);
  closeFile(filepathfile);
  frmLoginSelect.visible:=False;
  frmStudentLogin.visible:=True;
end;

但是,无论何时单击此项,都会从任务栏中删除Delphi应用程序。我做错了什么,如何防止这种情况?

1 个答案:

答案 0 :(得分:4)

问题在于:

frmLoginSelect.Visible := False;

frmLoginSelect表单是主要表单。这被定义为通过调用Application.CreateForm创建的第一个表单。主窗体是与任务栏按钮关联的窗体。任务栏按钮仅在其关联窗口可见时显示。通过隐藏主窗体,您还隐藏了任务栏按钮。

很难就如何解决这个问题提出建议。我们无法看到您的程序足以确定正确的解决方案是什么。您可能不希望frmLoginSelect成为主要表单。但我不知道哪种形式应该是主要形式。

看起来您有一系列登录表单必须在使用真正的主表单之前导航。我会通过在启动时显示主窗体来处理它,然后将登录窗体显示为模态对话框。只有当用户成功浏览登录表单时,主表单才可以使用。当然,我正在疯狂地猜测你的应用程序在做什么。

我在这方面的广泛建议是只在你的计划生命周期内拨打Application.CreateForm一次和一次。对于所有其他表单创建,请调用表单的构造函数。删除全局表单变量。所有这些都违背了IDE要求你做的事情。但是当Borland将VB开发者引诱到Delphi时,IDE就被设计了。不要让它驱动你的代码架构。