type
  TForm1 = class(TForm)
    Query1w1: TStringField;
    Query1w2: TstringField;
    Query1w3: TstringField;    DBGrid1: TDBGrid;
    BTNINS: TButton;
    BTNDEL: TButton;
    BTNQUT: TButton;
    UpdateSQL1: TUpdateSQL;//上面是定义
 procedure TForm1.BTNINSClick(Sender: TObject);
 begin
     Query1.Append;
     Query1w1.value :='' ;
     Query1w2.value :='' ;
     Query1w3.value :='' ;
     BTNINS.Enabled :=FALSE;
     BTNUPD.Enabled :=FALSE;
     BTNDEL.Enabled :=FALSE;
     BTNYES.Enabled :=TRUE;
     BTNCAL.Enabled :=TRUE;
     
 end;    Query1w1.value :='' ;
     Query1w2.value :='' ;
     Query1w3.value :='' ;
上面这三句保存时老是出现下面这个问题请问是什么原因?
field form1.query1w2 does not have a corresponding component,remove the
declaration?

解决方案 »

  1.   

    你直接在代码中写的吧,frm中如果没有添加这些控件就要显示的创建这些控件的实例
      

  2.   

    你是动态生成吗:那就不能声明到 tform1中,
    单独定义,然后parent的属性挂到form1上就可以了
    还有你的变量要先creat才能用哪有上来就给值的
      

  3.   

    你在窗体类中定义了但没控件就报这个错!还有你定义的变量都不creat就用,晕!解决:type
      TForm1 = class(TForm)
        DBGrid1: TDBGrid;
        BTNINS: TButton;
        BTNDEL: TButton;
        BTNQUT: TButton;
        UpdateSQL1: TUpdateSQL;
    end;
    var
        Query1w1: TStringField;
        Query1w2: TstringField;
        Query1w3: TstringField;//上面是定义
     procedure TForm1.BTNINSClick(Sender: TObject);
     begin
         //先把那三个creat
         //把那三个的parent设置成tform1.,     
         //然后再用下面的.  
         Query1.Append;
         Query1w1.value :='' ;
         Query1w2.value :='' ;
         Query1w3.value :='' ;
         BTNINS.Enabled :=FALSE;
         BTNUPD.Enabled :=FALSE;
         BTNDEL.Enabled :=FALSE;
         BTNYES.Enabled :=TRUE;
         BTNCAL.Enabled :=TRUE;
         
     end;
      

  4.   

    //先把那三个creat
         //把那三个的parent设置成tform1.,     
    这怎么做 是什么意思
      

  5.   


    querylw1=TstringField.creat(self);
      

  6.   

    先填加相应的控件和设置其相应的属性名,要不然可以向楼上那样创建它再用.我知道了,你是不是要创建一个字段名,你双击DBGrid1组建,然后他会弹出一个对话框给你添加你想要的字段,然后你每添加每个字段都要给字段名的属性name设置名字,比如querylwl就是name的名字.
      

  7.   

    Query1w1会不会是已经绑定了数据库?不能赋值
      

  8.   

    肯定是把控件去掉了,但是你又把pas文件恢复成原来备份的文件,使pas和frm文件不一直,
    你只能重新把控件放上去,重新写那段代码,当然你可以把需要的pas文件里面的语句复制在记事本放好控件后再利用他们!