我创建了一个Delphi 2010应用程序,它通过Application.Initialize之前的函数显示模态登录表单。登录表单不是我的主要表单。这是我的登录表单的代码:
unit frmLogin_u;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TfrmLogin = class(TForm)
edtPass: TEdit;
btnLogin: TButton;
procedure btnLoginClick(Sender: TObject);
private
{ Private declarations }
public
class function Execute: Boolean;
end;
var
frmLogin: TfrmLogin;
implementation
{$R *.dfm}
{ TForm2 }
procedure TfrmLogin.btnLoginClick(Sender: TObject);
begin
if edtPass.Text = 'Delphi' then
ModalResult := mrOk
else
MessageDlg('Incorrect password.', mtError, [mbOk], 0);
end;
class function TfrmLogin.Execute: Boolean;
begin
with TfrmLogin.Create(nil) do
try
Result := ShowModal = mrOk;
finally
Free;
end;
end;
end.
这是我的应用程序的源代码:
program frmLogin_p;
uses
Forms,
frmMain_u in 'frmMain_u.pas' {frmMain},
frmLogin_u in 'frmLogin_u.pas' {frmLogin};
{$R *.res}
begin
if TfrmLogin.Execute then
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end;
end.
这是我的问题:当显示登录表单时,即使其边框样式设置为bsDialog,当通过单击任务栏图标使表单最小化时,我似乎无法在单击任务栏图标后恢复它再次。所以现在我需要通过任务管理器关闭应用程序并重新打开它,因为我无法在最小化时恢复或关闭它。
有谁可能知道为什么会这样,以及我可以做些什么来解决这个问题?
答案 0 :(得分:0)
如果你这样做:
program Project2;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
if TForm2.Execute then
begin
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end.
不要在任务栏中显示图标。 我不知道它是否能解决你的问题。