show的显示问题
运行后,输入用户和密码点确定,Login消失了,但是ManageForm或ServeingForm都没有显示
这是代码:
unit Login;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables;
type
TLoginForm = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
LoginForm,ManageForm,ServeingForm: TLoginForm;
implementation
uses Serveing,Manage;
{$R *.dfm}
procedure TLoginForm.Button1Click(Sender: TObject);
Var
aname,apassword:string;
begin
aname:=trim(Edit1.Text);
apassword:=trim(Edit2.Text);
Table1.Open;
Table1.SetKey;
Table1.Fields[0].AsString:=aname;
if Table1.GotoKey then
if Table1.Fields[1].AsString=apassword then
if Table1.Fields[2].AsString='内管' then
begin
Table1.Close;
LoginForm.Close;
ManageForm:=TLoginForm.Create(Application);
ManageForm.show
end
else
begin
Table1.Close;
LoginForm.Close;
ServeingForm:=TLoginForm.Create(Application);
ServeingForm.Show
end
else
begin
MessageDlg('您不是合法用户,请退出!',mtInformation,[mbOk],0);
Table1.Close;
Loginform.Close;
end;
end;
procedure TLoginForm.Button2Click(Sender: TObject);
begin
Close;
end;
end.
[解决办法]
- Delphi(Pascal) code
你的写法太乱了,但看得出来你这样肯定是不行的。需要把 LoginForm隐藏了而不是关闭;程序应该这样改。 LoginForm.Hide(); ManageForm:=TLoginForm.Create(Application); ManageForm.show; LoginForm.Close;两处地方都是。