运行时生成一个可视控件,在此控件的基础上再生成一个可视控件;第二个可视控件如何接收第一控件的消息?

解决方案 »

  1.   

    通过第二个控件的Handle发送
      

  2.   

    动态生成的和静态生成的一样处理!只要有HANDLE就可以发送!类里面只要有消息处理函数,或者重写winproc就可以接收处理!
      

  3.   

    我动态生成一个Button,对OnClick我重新定义了一个过程加入自己的代码,如果要用Handle来处理该咋办?麻烦详细点,是不是针对Button是种巧合,对于其他控件是不是只能用Handle来处理?谢谢各位了。
      

  4.   

    我动态生成一个Button,对OnClick我重新定义了一个过程加入自己的代码
    ========================================================================
    这样很对啊,不需要发送或接收消息,直接运行就行了!
    type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
        procedure MyClick(Sender: TObject);
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    var
      B: TButton;
    begin
      B := TButton.Create(Self);
      B.OnClick := MyClick;
      B.Caption := 'Ok';
      B.Left := 100;
      B.Top := 100;
      InsertControl(B);
    end;procedure TForm1.MyClick(Sender: TObject);
    begin
      ShowMessage('MyClick');
    end;