本人为一菜鸟,现做一个小程序,程序上第一个窗口是登陆用的,会要求用户名的密码,这些是用数据库来存。现在的问题是我不知道如何在登陆成功后关闭主窗口(也就是登陆用的窗体)。用close来关闭的话,会都关掉,那位高手能帮帮。下面是一部分打开二级窗体和关闭登陆窗体的代码,不对。帮我看看。
if (guest='admin') and (password=temppassword) then
begin
adodataset1.Close;
Form2.Show;
Close; //这一句就会把所有的窗体都关掉。不知怎么搞。
if (guest='admin') and (password=temppassword) then
begin
adodataset1.Close;
Form2.Show;
Close; //这一句就会把所有的窗体都关掉。不知怎么搞。
begin
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end
else
begin
Application.Terminate;
end;我是这样的
他被设置为主窗体了,主窗体关闭意味着进程结束。
你只需要在菜单的 Porject->Forms里面,将登陆窗体从主窗体列表中移除就是了,顺便把你的form2设置为主窗体。另外,移除了登陆窗体,就意味着他不会第一个被显示出来(form2会被默认显示出来),你可以在你的工程文件中(.dpr文件)中修改代码,让登陆窗体晚于Form2创建,但是让他先showModle出来,如果登陆失败,直接退出就是了(也就是不让application.Run执行)。
begin
Application.Initialize;
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end;class function TfrmLogin.Execute: boolean;
begin
with TfrmLogin.Create(nil) do
try
Result := ShowModal = mrOk;
finally
Free;
end;
end;
不同的用户对应不同的操作界面,这个就是权限的问题吧A用户,比如只能操作X1界面,那就这用户 登录后只能打开一个X1界面,其他界面不要让他操作就行了
B用户,比如只能操作X2界面,那就这用户 登录后只能打开一个X2界面,其他界面不要让他操作就行了
B用户,比如只能操作X2界面,那就这用户 登录后只能打开一个X2界面,其他界面不要让他操作就行了-------------------------------------------------------------------------------这个问题是这样的,主的操作窗体功能都差不多,管理员用户进去后功能是全是,而一般用户进去,只是有两三个功能不可以用。其它都是一样的,比如只能查询销售额,而不能查询利润。只能查询卖出价,但不能查询成本价。主要就是在这些地方。所以一开始,我设想的是,两个不同功能的操作窗体。通过用户登陆来分别启用。并且操作窗体里面也还有其它窗体。
在.dpk文件中
var
frmLogin: TFrmLogin;
frmMain: TForm;
frmMainClass: TFormClass;
begin
Application.Initialize;
frmMain := nil;
frmLogin := TFrmLogin.Create(nil);
try
if frmLogin.ShowModal then
begin
case frmLogin.formCase of
0: begin frmMain := Form0; frmMainClass := TForm0; end;
1: begin frmMain := Form1; frmMainClass := TForm1; end;
2: begin frmMain := Form2; frmMainClass := TForm2; end;
......
else
begin
frmMain := frmAbout;
frmMainClass := TfrmAbout;
end;
end;
finally
frmLogin.Free;
end;
if frmMain <> nil then
begin
Application.CreateForm(frmMainClass, frmMain);
Application.Run;
end;
end;