Я создал приложение 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, когда форма минимизируется путем нажатия на значок на панели задач, я не могу восстановить ее после повторного нажатия на значок панели задач. Итак, теперь мне нужно закрыть приложение через диспетчер задач и снова открыть его, потому что у меня нет возможности восстановить или закрыть его, пока оно свернуто.
Кто-нибудь может знать, почему это происходит и что я могу сделать, чтобы решить эту проблему?
Application
инициализируется в строкеbegin
исходного кода проекта в разделе инициализации Control.pas.Application.Initialize
просто по умолчанию инициализирует COM. Единственное, на что могут повлиять первые комментарии, - это строкаMainFormOnTaskBar
, до или после того, как вы покажете свою модальную форму. - person Sertac Akyuz   schedule 12.04.2014