下面是我点击主表单上按钮的代码。
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应用程序。我做错了什么,如何防止这种情况?
答案 0 :(得分:4)
问题在于:
frmLoginSelect.Visible := False;
frmLoginSelect
表单是主要表单。这被定义为通过调用Application.CreateForm
创建的第一个表单。主窗体是与任务栏按钮关联的窗体。任务栏按钮仅在其关联窗口可见时显示。通过隐藏主窗体,您还隐藏了任务栏按钮。
很难就如何解决这个问题提出建议。我们无法看到您的程序足以确定正确的解决方案是什么。您可能不希望frmLoginSelect
成为主要表单。但我不知道哪种形式应该是主要形式。
看起来您有一系列登录表单必须在使用真正的主表单之前导航。我会通过在启动时显示主窗体来处理它,然后将登录窗体显示为模态对话框。只有当用户成功浏览登录表单时,主表单才可以使用。当然,我正在疯狂地猜测你的应用程序在做什么。
我在这方面的广泛建议是只在你的计划生命周期内拨打Application.CreateForm
一次和一次。对于所有其他表单创建,请调用表单的构造函数。删除全局表单变量。所有这些都违背了IDE要求你做的事情。但是当Borland将VB开发者引诱到Delphi时,IDE就被设计了。不要让它驱动你的代码架构。