在form1上面有一个combobox,两个groupbox。一个groupbox上放置很多edit,另一个groupbox上也放置了很多edit。如何在combobox.onchange事件里判断edit上的数据被更改了呢?

解决方案 »

  1.   

    在TEdit的OnChange判断是否有更改
      

  2.   

    在combobox.onchange事件里判断edit上的数据被更改?在edit的onchange中标记
      

  3.   

    或许你可以 把需要判断的 edit 的值 用一个 变量 来保存, 
    比如 sString := edt1.text + edt2.text + ...这样就可以直接 判断sString是否发生变化。
      

  4.   

    自定义一个方法onchage(),在这个方法中处理edit值是否有更改,然后在界面初始化时,遍历组件,如果是group中的edit组件则将edit的onchage事件赋值成自定义onchage()方法,这样写一次就行了
      

  5.   

    嗯,这个还靠点谱。
    在onShow时组合一下字符串,在保存时组合一下字符串。比较是否相符!
    如果显示的数据是一个对象,则为对象加一个toXML的功能,来实现组合字符串的功能。这样在onShow与保存时比较2个变量就OK了
     
      

  6.   

    edit 有modified属性,用这个应该可以
      

  7.   

    这个怎么会靠谱?
    例如第一次edit1.text为1,edit2.text为2,改变后edit1.text为‘’edit2.text为12,你能判断出来变没变?
    还是5楼说得靠谱,就是所有edit使用统一的一个onChange方法。
      

  8.   


    procedure TForm1.ComboBox1Change(Sender: TObject);
    begin
      if Edit1.Modified then
        showmessage('changed');
      edit1.Modified := false;
    end;
      

  9.   


    很多edit控件,这个事件难道要一一写出来吗
      

  10.   


    使用统一的OnChange事件,比如上面的代码可以改成procedure TForm1.ComboBox1Change(Sender: TObject);
    begin
      if (Sender As TEdit).Modified then
        showmessage('changed');
      (Sender As TEdit).Modified := false;
    end;
      

  11.   

    edit控件是用IDE创建的? 如果是就手工指定好了, 如果动态创建就用代码 EditA.OnChange = OnSelfChange(); 强制指定; 还有个方法, 枚举下Edit控件的容器控件下的一个属性Components 检查如果是Edit就指定自定义的函数给Edit的OnChange事件
      

  12.   


    我只是举个例子如12楼所说,可以在需要的控件onchange或者exit事件统一写。。procedure TFMmain.Edit1Exit(Sender: TObject);
    begin
      inherited;
      if TEdit(Sender).Modified then
      begin
        ...
        ...
        ...
        TEdit(Sender).Modified:=false;
      end;
    end;
      

  13.   

    12楼正解,可以用Sender,这样全部控件都共用这个方法就可以啦
    procedure TForm1.ComboBox1Change(Sender: TObject);
    begin
      if (Sender As TEdit).Modified then
        showmessage('changed');
      (Sender As TEdit).Modified := false;
    end;
      

  14.   

    自定义一个TEdit的OnChange事件,为需要控制的TEdit的OnChange事件指定到这个OnChange事件,如果不需要知道那个TEdit修改了你就定义一个全局的boolean类型变量来保存是否有过修改,如果需要你可以用TList来保存
      

  15.   


    如果将一个数据修改成其它数值,然后再修改回来,这样modified的也是改变的