delphi中如何让登陆窗口先于主窗口出现

假如tform1是主窗口,程序运行时,主窗口就会出现,tform2是登陆窗口,要求输入密码之后才能出现主窗口,我该怎么做呢?请大侠指教...谢谢..

感谢,学习到了! 另外在应用当中发现有点小状况,就是下方的写法会造成登录按钮需要点击两次才能进入主窗体。


 if Form22.ShowModal <> mrok then


Application.Terminate;

要处理这个问题需要将上方代码改成:

 if Form22.ModalResult<> mrok then


Application.Terminate;


希望能对大家有用

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-09
如果只是达到你的效果,可以把主窗体设为登录窗体,在登录按键按下,登录成功后,登录窗体设为Hide,主窗口Visible设为True,或主窗口.Show;就可以了.
如果要做得漂亮一点,可以用Frame来做.主窗口Frame.Visible:=False; 登录窗口Frame1.Visible:=True;
登录成功后:主窗口Frame.Visible:=True;登录窗口Frame.Visible:=False;
第2个回答  推荐于2018-05-15
在主窗体里的create事件中写
if form2.showmodal <> mrok then
Application.Terminate;

form2放ok按钮,和cancel按钮
属性kind一个选择bkOK,一个选择 bkCancel即可追问

我找你的方法做了,可是没出现预期的效果艾...能不能再详细点,我是个初学者

追答

//form2的代码
procedure TForm2.Button1Click(Sender: TObject);
begin
ModalResult := mrNone;
if SameText(Edit1.Text, 'admin') and (Edit2.Text = 'admin') then
ModalResult := mrOk
else
ShowMessage('用户名或密码错误!');
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
ModalResult := mrCancel;
end;

//form1的代码
procedure TForm1.FormCreate(Sender: TObject);
var
form22: TForm2;
begin
form22 := TForm2.Create(Application);
if Form22.ShowModal mrok then
Application.Terminate;
end;

本回答被提问者和网友采纳
第3个回答  2011-06-08
在Project文件里写不就OK了嘛,在创建主窗体前先显示出来,验证了用户后才开始主界面的初始化
第4个回答  2011-06-08
选项Project -->view source

Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);

语句次序互换,改为:

Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm1, Form1);
就可以了。
相似回答