请问1.我的程序有两个窗体,主窗体和登陆窗体,怎么样让用户在登陆窗体输入密码的时候隐藏主窗体呀?因为我发现就算不输入密码可以直接点击主窗体!
    2.要在添加数据的时候从列表框中选择已有的类型,在浏览的时候显示已有的类型,而不是可以自己瞎添类型,应该怎样做?

解决方案 »

  1.   

    在 登陆窗体 中的 onShow, 調用 主窗体.hide
      

  2.   

    我以前是设计在OnCreat里面调用‘主窗体.hide’,但是程序提示Cannot change Visible in OnShow or OnHide,现在OnShow里面调用也一样出错,为什么?我是把主窗体设置成主窗体,程序一运行不就创建了主窗体吗?列表框的问题解决了,呵呵,没想到和VB一样的,当时我迷糊了:)
      

  3.   

    大虾们,帮忙看看呀,怎么会提示‘Cannot change Visible in OnShow or OnHide’?
      

  4.   

    登陆窗体应该ShowModal
    这样就点不到主窗体了。
      

  5.   

    ShowModal是窗体属性吗,怎么找不到?sorry,我是刚学
      

  6.   

    在工程文件里控制,给你个例子:
    program Project1;uses
      Forms,
      main_try in 'main_try.pas' {main},
      wait_sys in 'wait_sys.pas' {wait},
      about_sys in 'about_sys.pas' {about},
      login_zj in 'login_zj.pas' {login},
      db_zj in 'db_zj.pas' {cldbf: TDataModule};{$R *.res}begin
      Application.Initialize;
      wait:=Twait.create(application);
      wait.ProgressBar1.Max:=100;  wait.Show;
      application.ProcessMessages;     ///////////
      wait.Update;
    //  wait.name_lbl.Caption:='读取参数...';
      wait.company_lbl.Caption:='正在初始化...';
      wait.update;
      Application.CreateForm(Tmain, main);
      wait.ProgressBar1.StepBy(25);
      wait.company_lbl.Caption:='正在建立数据库连接...';
      wait.update;
      Application.CreateForm(Tcldbf, cldbf);
      wait.ProgressBar1.StepBy(50);
      if main.door then
      begin
        wait.company_lbl.Caption:='数据库连接成功!';
        wait.update;
        Application.CreateForm(Tabout, about);    login:=Tlogin.Create(application);   //输入用户名密码窗体
        wait.ProgressBar1.StepBy(25);
        wait.hide;
        wait.free;    login.ShowModal;
        if login.con then
        begin
          Application.Run;
        end;
      end
      else Application.Terminate;
    end.