怎么做一个登录窗体让主窗体也显示在后面
想做一个登录窗体,同时出显主窗体,
这个登录窗体是模态窗体,然后显示主窗体, 让模态窗体的父窗体为这个主窗体,
这应该怎么做??
[解决办法]
Frm_Main是主窗体。
Frm_Login是登录窗体。
在Frm_Main的OnShow里面写
var
Frm_Login:TFrm_Login;
begin
Frm_Login := TFrm_Lonig.Create(Application);
try
Frm_Login.ShowModel;
//此处最好是在登录窗体中定义一个公用变量为记录是否登录成功。ModalResult有时候返回并不准确!
if Frm_Login.ModalResult = mrOk then
ShowMessaeg("登录成功")
else
begin
ShowMessage("登录失败!");
//整个程序结束
Application.Terminate;
Exit;
end;
finally
Frm_Login.Free;
end;
end;
[解决办法]
晕,没看清楚!上面这个显示不出来主窗体。
要想显示,把登录代码写到OnActive事件里应该可以!
[解决办法]
用定时器吧,showmodal之前关闭定时器;
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls,unit2;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Timer1Timer(Sender: TObject);
var
Form2:TForm2;
begin
Timer1.Enabled:=False;
Form2:=TForm2.create(self);
form2.ShowModal;
end;
-----------
[解决办法]
主form的OnActive事件的第一次执行时,创建并模式显示登录窗口
[解决办法]
打开项目文件后作如下调整
Application.CreateForm(TForm8, Form8); //主窗口
Application.CreateForm(TForm10, Form10);//模态窗口
Form8.Show;//显示主窗口
Form10.ShowModal;//显示模态窗口