我想问一下,在登录窗体登录,进入主窗口后,我还想让登录窗口激活,实现锁定系统的功能,即让登录窗口再次显示,密码框为空,退出按钮失效,要重新输入密码,再次登录,请问怎么实现?

解决方案 »

  1.   

    看下面的文章~~http://book.csdn.net/bookfiles/662/10066220895.shtml
      

  2.   

    放一个锁定系统的按钮,在单击事件里面写代码:
    var
      Frmlogin:TFrmlogin;
    begin
      Frmlogin:=TFrmlogin.create(nil);
      Frmlogin.password.text:='';//密码框为空
      Frmlogin.Cancel.Enabled:=False;//退出按钮失效
      Frmlogin.ShowModal;
    end;
      

  3.   

    照三楼的做了,出现cannot make  a visible window modal错误,怎么回事,怎么办?
      

  4.   

    那就是你的login 窗体里的代码有问题,把里面的代码注释掉,试一下~~
      

  5.   

    你一定是在窗体的Create或Show事件中改变了Form的Visible的值
      

  6.   

    FormStyle设置成fsNormal,Visible设置成flase或者,用户登录后不要把登录窗体释放,只需hide就可以了,需要的时候再show出来,做适当处理:
    editpass.text := '';  btnCancel.enabled := False;
      

  7.   

    建议使用动态窗口来实现模态的对话框,又简单又省内存。首先选择Project->Option在Forms中把你要实现的对话框窗口移到Available Forms,然后打开对话框源码删除var中该窗口的变量声明,最后在public中添加如下函数:class function Execute(var Password : String):TModalResult;这就是类函数(可以不用创建对象就可以调用的),该函数可以随便定义,procedure也可以。
    然后再该函数体内实现:with TFrmLogin.Create(NIL) do
    begin
      try
        edPassword.Text := Password;
        Result := ShowModal;//模态显示窗口
        if Result = mrOK then Password := edPassword.Text;
      finally
        Release;//释放窗体及内存
      end;
    end;调用的时候也非常简单,首先Uses该单元,然后在需要的地方如下调用:if TFrmLogin.Execute(Password) = mrOK then
    begin
      //do something...
    end;请注意这个是类函数,不需要创建对象本身,直接调用类似于Create函数,窗口关闭会自己释放内存的,不许需要额外操作。
      

  8.   

    http://www.delphibbs.com/delphibbs/dispq.asp?lid=3975078
      

  9.   

    procedure TForm10.Button1Click(Sender: TObject);
    begin
    form1.Table1.Close;
    form1.Table1.DatabaseName:='ly';
    form1.Table1.TableName:='登录表';
    form1.Table1.Open;
    form1.Table1.First;
    while(not (form1.Table1.Eof)) do
    begin
    if(combobox1.Text=form1.Table1.Fields.Fields[0].AsString)and
    (edit1.Text=form1.Table1.Fields.Fields[1].AsString) then
    begin
    showmessage('登录成功');
    right:=form1.Table1.Fields.Fields[2].AsString;
    form1.User_Log(date(),time(),combobox1.Text,'登录成功');
    form10.Hide;
    form10.Close;
    form1.ShowModal;
    exit;           
    end
    else
    form1.table1.next;
    end;
    showmessage('用户名或密码有错,请重新输入');
    end;Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      form10:=tform10.Create(application);
      form1.Hide;
      form10.ShowModal;
      form10.Free;
      Application.Run;我的代码有错吗,为什么不能再显示登录窗口