我在Form上的某些控件设置了OnChange事件,什么过程能使这些OnChange不发生,因为我在Form的OnShow时要添充数据到控件,这时需要禁止控件的OnChange事件

解决方案 »

  1.   

    form的OnShow事件发生在控件的OnChange事件之前,干嘛还要禁止啊,
    如果非要这样控制的话,我想应该可以用全局变量来控制,比如利用 form.tag 的值来控制
      

  2.   

    Form.OnShow()
    begin
      Edit1.Text := '123';//这会触发Edit1.OnChange事件,因为这是程序中设置Edit1,所以要禁止OnChange事件,OnChange事件只有在键盘或者鼠标输入时才允许OnChange来检查输入是否正确
      

  3.   

    这样应该可以
    Form.OnShow()
    begin
      Edit1.OnChange := nil;
      Edit1.Text := '123';
      ..
      Edit1.OnChange := myEdit1OnChange;
    end;
      

  4.   

    这样做就可以了啊
    procedure TForm1.Edit1Change(Sender: TObject);
    begin
    if form1.Tag = 1 then
        begin
          form1.Tag := 0;
        end
    else
        begin
          showmessage('已经触发');
        end;
    end;procedure TForm1.FormShow(Sender: TObject);
    begin
    form1.Tag := 1;
    edit1.Text := '123'
    end;
      

  5.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Edit1.OnChange:=nil;
      Edit1.Text:='11';
      Edit1.OnChange:=Self.Edit1Change;
    end;procedure TForm1.Edit1Change(Sender: TObject);
    begin
    //
    end;
      

  6.   

    没大看懂如果不想要onchange事件,不写它就是了如果有onchange事件但某些时候不想让它触发,可以设一个全局bool变量来控制