DELPHI 多个窗体间的引用有关问题

DELPHI 多个窗体间的引用问题
本帖最后由 u011826367 于 2013-08-29 12:08:13 编辑
我在Delphi里面新建了4个窗体并保存着,4个窗体的功能已全部写好,现在我想实现程序运行后先弹出Form1登陆窗体,如果用户名及密码验证成功就关闭Form1后弹出Form2主菜单窗体,Form2窗体有两个按钮,按钮一用于弹出Form3,按钮2用于弹出Form4,Form3和Form4不能同时显示,在Form3或Form4没有关闭之前不能操作Form2,这样要如何实现,实现的同时要尽可能不占用太多内存,请教大家要如何做?
我在网上查了很多资料,有人这样说有人那样说,我不知道哪种方法是大家普遍使用的并且尽可能节约内存?另外需要改动Project---Options---Forms----anto create forms和Available forms这两个设置吗?谢谢大家了。我是初学者,请大家回复的时候说详细点,谢谢。

------解决方案--------------------
auto create forms只保留主窗体Form2,其余窗体都在Available forms。

Form2的OnShow事件中调用:
Application.CreateForm(TForm1, Form1);//创建登陆窗体
if Form1.ShowModal() <> mrOK then//如果登陆失败就退出进程
  ExitProcess(1);

Form2的按钮一单击事件:
if not Assigned(Form3) then
  Application.CreateForm(TForm3, Form3);
Form3.ShowModal;

Form2的按钮二单击事件:
if not Assigned(Form4) then
  Application.CreateForm(TForm4, Form4);
Form4.ShowModal;


------解决方案--------------------
你第一步可以在程序入口做一个操作
Form2做主窗体 在入口处处理下。先打开Form1.登录正确后打开FORM2.关闭FORM1.
至于你的Form2打开FORM3、4,LS的方法不错。可以实现。