没有仔细看,应该是你要达到Login的功能吧……,LoginForm一般实现方法如下: 以只有一个MainForm和一个LoginForm例子如下: 首先将LoginForm从AutoCreate列表中去除(Project->Option中设置) 然后使用Project->ViewSource,进入Project的代码中,大约代码更改成如下:begin Application.Initialize; LoginForm:= TLoginForm.Create(Application); if LoginForm.ShowModal <> mrOK then begin LoginForm.Free; Application.Terminated; end; LoginForm.Free; Application.CreateForm(TForm1, Form1); Application.Run; end;
begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TLoginForm, LoginForm); if LoginForm.ShowModal = mrOK then Application.Run; end;
Application.CreateForm(TMainForm, MainForm);
Application.ShowMainForm:=false; 这样又有个问题出来了,PASSFORM 没出来了, 但是MAINFORM也不出来了, 我要PASSFORM创建后,马上HIDE,MAINFORM窗体显示出来.
大家指点下!
如果要调用该form使用如下方法:
比如,你要调用的Form名字叫做Form1,里面有一个函数实现某种功能,该函数叫做function1,在主form的button1Click中如下写:
procedure TmainForm.button1click(sender);
begin
form1:= TForm1.Create(Application); //因为你的form1已经不是AutoCreate了,故使用前要Create
form1.function1(parameters); //不显示form1,调用该form1的function1
form1.Free; //调用后记得free
end;同样,如果你要在button1Click中把Form1 Show出来如下写:
procedure TmainForm.button1click(sender);
begin
form1:= TForm1.Create(Application); //因为你的form1已经不是AutoCreate了,故使用前要Create
form1.ShowModal; //显示Form1,一直到Form1关闭 ,注意ShowModal和Show的区别。具体查看帮助
form1.Free; //调用后记得free
end;如果不用Form1.ShowModal,则注意Form1.Free的位置.因为ShowModal是一直等到Form关闭后才执行Free,如果用Show,那么程序马上会执行Free,结果就show不出来了.
以只有一个MainForm和一个LoginForm例子如下:
首先将LoginForm从AutoCreate列表中去除(Project->Option中设置)
然后使用Project->ViewSource,进入Project的代码中,大约代码更改成如下:begin
Application.Initialize;
LoginForm:= TLoginForm.Create(Application);
if LoginForm.ShowModal <> mrOK then
begin
LoginForm.Free;
Application.Terminated;
end;
LoginForm.Free;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TLoginForm, LoginForm);
if LoginForm.ShowModal = mrOK then
Application.Run;
end;
散分.