下面是代码,大体的意思是,经过用户名和密码的验证,如果正确的话会打开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;
我可以实现,但我想在打开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;
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); //相当Form2
Application.CreateForm(TClientData, ClientData);
EntryForm := TEntryForm.Create(Application);
try
Entry := EntryForm.Execute(False); //相当Form1
finally
EntryForm.Free;
end;
if not Entry then
begin
MainForm.Free;
ClientData.Free;
Exit;
end;
Application.Run;
也有同样的效果
可是 我是DELPHI的初学者,你上面的代码我有些看不懂,另外我应该把上面的代码加到什么地方啊??????????????
所以,解决方法:
1、使用 maozefa(之源) 的代码可以解决问题;
2、密码验证窗体使用 vPassWordForm := TPasswordForm.Create(nil); 创建并处理也可以解决这个问题。
try
Entry := EntryForm.Execute(False); //相当Form1
finally
EntryForm.Free;
end;
if not Entry then
begin
MainForm.Free;
ClientData.Free;
Exit;
end;
这些我不知道是什么意思啊!!!你能解释一下吗???我现在理解了主窗体的意思,可只是思维上的理解,代码是没有理解!!!!!!!
我现在想从写程序,就是想在启动主窗体是先启动密码验证窗体!!你可以给我写的详细一些或给我发个原代码例子吗??????谢谢,我是刚学的!!!!!
我的email:[email protected]
你可以留下你的,我们叫个朋友吗??????