假设我现在已经又一个窗体Form1我想在程序中创建新的Form2应该怎么做呢?是使用Create()吗?窗体的show 方法和 showmodal 又什么区别呢?我应该怎么区分他们呢?小弟我用DELPHI做了一个简单的登陆窗口,当在EdtID中输入员工号(也就是ADOTable1所连接的表中ID字段)第一条记录还可以,可是如果第一次登陆输入后面的员工号(比如表中的第2条记录,第3条记录)就弹出“不存在该员工号!”敬请高手帮助!
procedure TFormLogin.BtnOKClick(Sender: TObject);
begin
adotable1.Open;
if EdtID.Text='' then
showmessage('请您输入员工号!')
else if (EdtID.Text = trim(adotable1.FieldByName('STF_ID').AsString))
and (EdtPSWD.Text=trim(adotable1.fieldbyname('PWD').AsString)) then
begin
if not adotable1.Eof then
adotable1.Next;
showmessage('正确的员工号!');
form2.showmodal;
EdtID.Text:=trim(adotable1.FieldByName('STF_ID').AsString);
end
else
showmessage('不存在该员工号!');
EdtID.Text:='';
EdtPSWD.Text:='';
EdtID.SetFocus;
end;
procedure TFormLogin.BtnOKClick(Sender: TObject);
begin
adotable1.Open;
if EdtID.Text='' then
showmessage('请您输入员工号!')
else if (EdtID.Text = trim(adotable1.FieldByName('STF_ID').AsString))
and (EdtPSWD.Text=trim(adotable1.fieldbyname('PWD').AsString)) then
begin
if not adotable1.Eof then
adotable1.Next;
showmessage('正确的员工号!');
form2.showmodal;
EdtID.Text:=trim(adotable1.FieldByName('STF_ID').AsString);
end
else
showmessage('不存在该员工号!');
EdtID.Text:='';
EdtPSWD.Text:='';
EdtID.SetFocus;
end;
var i: integer;
begin
adotable1.Open;
if EdtID.Text='' then
showmessage('请您输入员工号!')
else
begin
adotable1.First;
for i := 0 to adotable1.RecordCount - 1 do
if (EdtID.Text = trim(adotable1.FieldByName('STF_ID').AsString))
and (EdtPSWD.Text=trim(adotable1.fieldbyname('PWD').AsString)) then
begin
showmessage('正确的员工号!');
if assigned(form2) then
begin
form2 := Tform2.create(Application);
showmodal;
end
else
form2.showmodal;
EdtID.Text:=trim(adotable1.FieldByName('STF_ID').AsString);
adotable1.close;
exit;
end
else
begin
showmessage('不存在该员工号!');
EdtID.Text:='';
EdtPSWD.Text:='';
EdtID.SetFocus;
adotable1.Next;
end;
end;
end;