放一个锁定系统的按钮,在单击事件里面写代码: var Frmlogin:TFrmlogin; begin Frmlogin:=TFrmlogin.create(nil); Frmlogin.password.text:='';//密码框为空 Frmlogin.Cancel.Enabled:=False;//退出按钮失效 Frmlogin.ShowModal; end;
照三楼的做了,出现cannot make a visible window modal错误,怎么回事,怎么办?
建议使用动态窗口来实现模态的对话框,又简单又省内存。首先选择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函数,窗口关闭会自己释放内存的,不许需要额外操作。
var
Frmlogin:TFrmlogin;
begin
Frmlogin:=TFrmlogin.create(nil);
Frmlogin.password.text:='';//密码框为空
Frmlogin.Cancel.Enabled:=False;//退出按钮失效
Frmlogin.ShowModal;
end;
editpass.text := ''; btnCancel.enabled := False;
然后再该函数体内实现: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函数,窗口关闭会自己释放内存的,不许需要额外操作。
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;我的代码有错吗,为什么不能再显示登录窗口