现在要对数据库中的数据进行操作,对于某一段内的数值进行相应的加减一个数值。给出三个edit 第一个和第二个用于添加操作数值的范围 ,第三个用于添加对这段数据要加减的值。首先点击一次添加按钮自动在窗体上添加三个edit  添加完数之后再点击一次添加按钮自动又添加三个edit 直到将所有字段添加完  然后点击运算执行操作  请问如何实现 

解决方案 »

  1.   

    procedure TForm1.btn2Click(Sender: TObject);
    var
      myedit:TEdit ;
    begin
      myedit:=TEdit.Create(self);
      myedit.Parent :=Form1;
      myedit.Top :=10;
      myedit.Left :=20;
      myedit.Width :=100;
      myedit.Height :=20;
      myedit.text:='1123';
    end;
    这个是动态创建一个EDIT控件,其他的你自己弄就可以了,
      

  2.   

    这样设计是不合理的,应该这样:1.在窗体中添加三个EDIT控件(EDIT1,EDIT2,EDIT3),其中EDIT1是范围的开始值,EDIT2是范围的结束值,而EDIT3是
      数据要加减的值.2.增加一个ListBox控件用于存储添加条件.3.增加一个按钮(作用是将条件添加进ListBox控件中去),代码如下:
    procedure TForm1.Button1Click(Sender: TObject);
    var
    i,j,k:Double;
    begin
     if TryStrToFloat(trim(edit1.Text),i) and TryStrToFloat(trim(edit2.Text),j)
     and TryStrToFloat(trim(edit3.Text),k)  then
     ListBox1.Items.Add(trim(edit1.Text)+' '+trim(edit2.Text)+' '+trim(edit3.Text))
     else
     showmessage('输入的是无效数字不能添加条件');
    end;
    4:增加一按钮(作用是根据ListBox中定好的条件处理数据),代码如下:
    procedure TForm1.Button2Click(Sender: TObject);
    var
    i:integer;
    sl:TStringList;
    begin
      if ListBox1.Items.Count>0 then begin
      sl:=TStringList.Create;
      try
       for i :=0  to ListBox1.Items.Count-1 do begin
        sl.CommaText:=ListBox1.Items.Strings[i];
        with adoquery1 do begin
          close;
          sql.Text:='update x_eng set x_i=x_i'+sl.Strings[2]+' where x_a>='+sl.Strings[0]+' and x_a<='+sl.Strings[1];
          ExecSQL
        end;
       end;
       showmessage('数据处理完毕');
      finally
       sl.Free;
      end;
      end;
    end;
    5.基本思路是这样,比起不停地增加EDIT控件好,最基本不用去管理新的EDIT的消毁工作.
      

  3.   

    一时忘了,上例一定要处理好SQL语句.其它的自已想吧