ComboBox1.onchange中showmessage('change');
问题:
ComBox1.text:='t';不能触发onchange事件
如何在给ComboBox.text赋值的同时触发onchange事件?

解决方案 »

  1.   

    你直接在onchange事件中写判断语句不行吗?
      

  2.   

    procedure TForm1.ComboBox1Change(Sender: TObject);
    begin
       if combobox1.Text<>'t' then
        showmessage('sdfasdf');
    end;
      

  3.   

    这么说吧
    DBGrid连数据库
    DBComboBox连接数据库中的一个字段
    当我在DBGrid上修改数据的时候会触发DataSource.datachange,修改的值同时会显示在DBComboBox,但是这时我需要触发他的onchange事件
      

  4.   

    那就自定义事件了~~
    例子:
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        ComboBox1: TComboBox;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
        procedure onvaluechange(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
      Fvchange:TNotifyEvent;
        { Private declarations }
      public
        { Public declarations }
      published
        property valuechange:TNotifyevent read Fvchange write Fvchange;
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.onvaluechange(Sender: TObject);
    begin
       if combobox1.Text<>'t' then
        showmessage('sdfasdf');
    end;
    procedure TForm1.Button1Click(Sender: TObject);  //给combobox1.text赋值
    begin
       combobox1.Text:='ee';
     if assigned(Fvchange) then valuechange(Self);
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      Fvchange:= onvaluechange;
    end;end.
      

  5.   

    那就在 DataSource.datachange 里写好了。