这段程序是手动创建窗体form2 和form3之后才出的错误
各位帮忙啊  解决了马上给分 1小时后我回来看unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids;type
  TForm1 = class(TForm)
    Table1: TTable;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    DataSource1: TDataSource;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementationuses Unit2, Unit3;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
table1.Filtered:=false;
table1.Filter:='Aname='+''''+edit1.text+'''';//+'and Npassword='+''''+edit2.text+'''';
table1.Filtered:=true;
if table1.IsEmpty then
showmessage('您输入的用户名有误')
else
begin
table1.Filtered:=false;
table1.Filter:='Aname='+''''+edit1.text+''''+'and Npassword='+''''+edit2.text+'''';
table1.Filtered:=true;
if table1.IsEmpty then
showmessage('您输入的密码有误')
else
begin
table1.Filtered:=false;
table1.Filter:='Aname=''admin'' and Npassword=''admin''';
table1.Filtered:=true;
if table1.IsEmpty then
showmessage('欢迎会员登陆')
else
begin
showmessage('欢迎管理员登陆');
button3.Enabled:=true;
table1.Active:=false;
table1.Active:=true;
end;
end;
edit2.Text:='';
end;
end;procedure TForm1.Button3Click(Sender: TObject);
var
form2:Tform2;
begin
form2:=Tform2.Create(application);
table1.Filtered:=false;
form2.ShowModal;
form2.Free;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;end.

解决方案 »

  1.   

    unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Grids, DBGrids, StdCtrls;type
      TForm2 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        DBGrid1: TDBGrid;
        Button4: TButton;
        Button5: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button4Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure Button5Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementationuses Unit1, Unit3, Unit4, Unit5, Unit6;{$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);
    var
    form3:Tform3;
    begin
    form3:=Tform3.Create(application);
    form3.Showmodal;
    form3.Free;
    end;procedure TForm2.Button2Click(Sender: TObject);
    begin
    if messagebox(form2.Handle,'是否确定删除?','是否确定删除?',mb_yesno)=idyes then
    form1.Table1.Delete;
    end;procedure TForm2.Button4Click(Sender: TObject);
    begin
    form1.Table1.Post;
    end;procedure TForm2.Button3Click(Sender: TObject);
    begin
    showmessage('请在上面直接修改然后按提交即可');
    end;procedure TForm2.Button5Click(Sender: TObject);
    begin
    form1.Table1.Cancel;
    end;end.
      

  2.   

    unit Unit3;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm3 = class(TForm)
        Edit1: TEdit;
        Button1: TButton; a
        Edit2: TEdit;
        Edit3: TEdit;
        Edit4: TEdit;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form3: TForm3;implementationuses Unit4, Unit5, Unit6, Unit1;{$R *.dfm}procedure TForm3.Button1Click(Sender: TObject);
    begin
    form1.Table1.Filter:='Aname='+''''+edit1.Text+'''';
    form1.Table1.Filtered:=true;
    if form1.Table1.IsEmpty then
    begin
    form1.Table1.Filtered:=false;
    form1.Table1.Insert;
    form1.Table1.Fields[0].Value:=form3.Edit1.Text;
    form1.Table1.Fields[1].Value:=form3.edit2.text;
    form1.Table1.Fields[2].Value:=form3.edit3.text;
    form1.Table1.Fields[3].Value:=form3.edit4.text;
    close;
    end
    else
    showmessage('已经存在相同的用户名,请重新输入');end;end.
      

  3.   

    form2,form3创建后,不能立即就free.
      

  4.   

    把form2.free,form3.free 改为form2.hide,form3.hide试试