比较菜的问题,请高手帮忙!!!!!!谢谢,在线等待!!!

liuzheng007 2003-05-09 11:24:44
下面是代码,大体的意思是,经过用户名和密码的验证,如果正确的话会打开form2窗体,
我可以实现,但我想在打开form2的同时,关闭密码验证窗体form1,可实现不了,不知道为什么???如下解释处!!!!谢谢!!!
cedure TForm1.BitBtn1Click(Sender: TObject);
var
flag:boolean;
logname,password:string;
begin
flag:=false;
logname:=edit1.Text;
password:=edit2.Text;
table1.Open;
table1.First;
while not table1.Eof do
begin
if (logname=table1.Fields[0].asstring) and (password=table1.Fields[1].asstring) then
flag:=true;
table1.Next;
end;
if flag then
begin
form2.show; {注:在这我可以打开form2窗体,但我如果加上
form1.close; 测试的时候form2 窗体也一起关闭
了??我想form2留下form1关闭,不知道该怎么写
??谢谢}
end
else
if (edit1.Text='') or (edit2.Text='') then
begin
showmessage('请您将两项输入完整!');
end
else
showmessage('输入错误,请重输!!');
edit1.Clear;
edit2.Clear;
edit1.SetFocus;
end;
...全文
72 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
superhjw 2003-05-10
  • 打赏
  • 举报
回复
我来帮助你:
1.不要把FORM1作为登陆界面,不然释放FORM1自然关闭整个应用程序.可以把FORM2,....FORMn做login界面都没问题.
2. 比如用FORM2.
procedure TBaseLoginMain.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if BaseLoginMain.LoginBtn.Tag<>4 then
begin
action:=caFree;
Application.Terminate;
end
else action:=caFree;
end;

另外:单击退出则CLOSE.正确用户则把某个按钮(随便,也可以设置个全局变量,private)的Tag:=4
只是做个标志,这样就可以释放form2,而继续显示主窗体.当然在APPLICATION SOURCE中必须form2.showmodal....................GAME IS OVER.
GOD BLESS YOU!
wooden954 2003-05-10
  • 打赏
  • 举报
回复
但这样有一个问题,就是在form2最小化的时候不能最小化到任务栏,而是最小化到任务栏的上方,根本的解决办法还是让Form2成为主窗体!
wooden954 2003-05-10
  • 打赏
  • 举报
回复
你可以在Form2显示的时候把Form1隐藏起来!
liuzheng007 2003-05-10
  • 打赏
  • 举报
回复
谢谢maozefa(之源) !!!!!!
可是 我是DELPHI的初学者,你上面的代码我有些看不懂,另外我应该把上面的代码加到什么地方啊??????????????
liuzheng007 2003-05-10
  • 打赏
  • 举报
回复
你好!!maozefa(之源) 我上面的代码看不懂啊!!!
try
Entry := EntryForm.Execute(False); //相当Form1
finally
EntryForm.Free;
end;
if not Entry then
begin
MainForm.Free;
ClientData.Free;
Exit;
end;
这些我不知道是什么意思啊!!!你能解释一下吗???我现在理解了主窗体的意思,可只是思维上的理解,代码是没有理解!!!!!!!
我现在想从写程序,就是想在启动主窗体是先启动密码验证窗体!!你可以给我写的详细一些或给我发个原代码例子吗??????谢谢,我是刚学的!!!!!
我的email:liuzheng007@eyou.com
你可以留下你的,我们叫个朋友吗??????
liuzheng007 2003-05-10
  • 打赏
  • 举报
回复
谢谢 superhjw(黄锦云)大哥!!!!!!!
可是我不懂啊???你上面的代码应该是form2的那里的那???????
if BaseLoginMain.LoginBtn.Tag<>4 then//这句是什么意识啊???
tag是什么啊????????????
可以给我留个email吗????我可以发给你看看!!!!!!!谢谢
我的:liuzheng007@eyou.com
summercat 2003-05-09
  • 打赏
  • 举报
回复
同意 maozefa说法:
重新建立程序,先建立主窗口,在加入密码验证窗口,然后在主窗口的工程文件中,执行,如果验证通过,显示主窗口。
阿发伯 2003-05-09
  • 打赏
  • 举报
回复
program JXCClient;

uses
Forms,
Main in 'Main.pas' {MainForm},
DM in 'DM.PAS' {ClientData: TDataModule},
ServerSet in 'ServerSet.pas' {ServerSetForm},
EntryDlg in 'EntryDlg.pas' {EntryForm},
SetupUsers in 'SetupUsers.pas' {SetUsersFrame: TFrame};

{$R *.res}

var
Entry: Boolean;
begin
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TClientData, ClientData);
EntryForm := TEntryForm.Create(Application);
try
Entry := EntryForm.Execute(False);
finally
EntryForm.Free;
end;
if not Entry then
begin
MainForm.Free;
ClientData.Free;
Exit;
end;
Application.Run;
end.
myfine 2003-05-09
  • 打赏
  • 举报
回复
你写代码太乱了,不规范啊!!
阿发伯 2003-05-09
  • 打赏
  • 举报
回复
Form1是主窗体,关闭它就退出整个程序,你应该是Form2为主窗体,Form1在工程源文件中动态建立并执行,如果登记成功运行Application.Run否则Exit

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧