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);
就可以了。

delphi中如何让登陆窗口先于主窗口出现
感谢,学习到了! 另外在应用当中发现有点小状况,就是下方的写法会造成登录按钮需要点击两次才能进入主窗体。if Form22.ShowModal <> mrok then Application.Terminate;要处理这个问题需要将上方代码改成:if Form22.ModalResult<> mrok then Application.Terminate;希望能对大家有用 ...

如何用Delphi实现系统进入登陆界面后才进入主界面
呵呵你这个问题曾经也困扰我好久,后来我终于终于,打开你的项目文件直接编码项目文件,按顺序调用你login的form最后如果mrok再调用你的主窗口并free掉你的login窗口,一切ok了类似如下代码:g_Login := TLoginForm.Create(Application);if g_Login.ShowModal=mrOk then begin Result := 1;Application.Crea...

delphi 先弹出对话框才运行主窗口的问题
假设 主窗口是f1 弹出的是inputbox 在f1 的onshow事件里 var s:string;begin s:= InputBox('请输入您的姓名','姓名:','');label1.caption:='您输入的姓名是'+s;end;

如何用delphi使某一窗口显示在最前面
下面的代码可以完成你要的功能 如果有不明白可以联系qq 1988723 procedure setWindowTopMost;var p:TPoint;childWnd,parentWnd:HWND;begin GetCursorPos(p);childWnd:=WindowFromPoint(p);parentWnd:=GetParent(childWnd);if parentWnd<>GetDesktopWindow then begin SetWindowPos(childWnd,HWND_TOPMOST,0,0...

求用DELPHI 从登陆窗口到主窗口的代码。
首先要设置登录窗口先运行,然后双击登录窗口的确定按钮,编写按钮点击事件,在事件中验证密码,密码正确则显示主窗口mainform。显示主窗口命令为mainform.show;同时关闭登录窗口formlogin.close;不明白的可以上网搜索delphi 登陆界面,或者Q我

设置Delphi窗体执行顺序
Form1)..更改如上。如果想让启动窗口显示时间长点,在登录窗口的创建里,写上 var currentTime:LongInt;begin currentTime:=GetTickCount div 1000;while (GetTickCount div 1000)<(currentTime+3) do; \/\/延时效果 end;然后就是form1登录窗口,登录转到主窗口form2,具体代码很多可以参考的 ...

怎么将delphi中的页面置为第一个页面?如将form7设为首页?
你的意思是不是将form7窗口设置为第一个显示的窗口?调整窗口显示顺序你可以在IDE里打开菜单 project -> view source,这样会打开工程文件,类似如下:program Project1;uses Forms,Unit1 in 'Unit1.pas' {Form1},Unit2 in 'Unit2.pas' {Form2},Unit2 in 'Unit3.pas' {Form3};{$R *.res...

delphi编写的程序运行后,如何做到界面在其他所有程序之前,也就是永远覆...
在IDE中, 选中你的程序的主窗口,在属性编辑器中找到 FormStyle, 设为 fsStayOnTop即可.也可以在主窗口的FormCreate事件中增加一句:FormStyle := fsStayOnTop;

Delphi7 运行后显示登录窗体
Delphi在默认情况下认为第一个建立的窗体就是主窗体,并且默认情况下是从主窗体开始启动,可以选择主菜单的“Prjoect \\ Options”(工程 \\ 选项)菜单,在弹出的对话框中点击“Forms”选项卡,在里面的“Main Form”项目中设置Form5为主窗体。 这样主窗体就设置好了。在Form5中进行登录的设置,假如...

delphi 怎样实现窗口的随机显示
1.随机窗口 procedure X.ButtonClick(Sender: TObject);begin with TForm.Create(Self) do Show;end;2.登录界面 这个我们一般是在项目的dproj源文件中处理(对项目点右键,选择view source)比如你的登录界面单元为unit1,且unit1声明了登录方法:function DoLogin: boolean;begin \/\/此处可以调用登录窗口,...

相似回答