Delphi mxOutlookBar 动态添加按钮事件后 怎样得到是哪个按钮单击了
for  i:= 0 to fCount1-1 do
    begin
      mxOutlookBarPro1.Headers.Headers[0].AddButton;
      mxOutlookBarPro1.Headers.Headers[0].Button[i].Caption:=fdataq[i].Values[
        'nickname'];
      mxOutlookBarPro1.Headers.Headers[0].Button[i].ImageIndex:=strtoint(fdataq[
        i].Values['headimg']);
      mxOutlookBarPro1.Headers.Headers[0].Button[i].OnClick:=ChatClick;//单击事件
    end;
procedure TForm2.ChatClick(Sender: TObject);
begin
 //在这获取是哪个按钮单击的
  Application.CreateForm(TForm3, Form3);
  Form3.Show();
end;

解决方案 »

  1.   

    动态创建时肯定要有一个标志的,或者可以用一个ObjectList来存放
      

  2.   

    mxOutlookBarPro1.Headers.Headers[0].Button[i].Caption
    Capton就是按钮名字,
    Tag也许能存放一些识别信息
    请问当我单击的时候,怎样获取这些信息呢?
    有兴趣朋友加我QQ171482524
    我想做一个类似QQ的聊天软件
    或者像qq列表应该用什么控件比较好
      

  3.   

    有很多index的,取他们的值吧!
    mxOutlookBarPro1.Header[OldIndex].HeaderState :=hsClosed;
    比如这是栏目的
      

  4.   

    Tag 好像能满足你的需求啊,
      根据TAg识别对应的Button   然后 as下就可以取得对应Button的信息了。
      

  5.   

    我现在想知道的是当我点击的时候,我怎样知道是哪个按钮单击了
    从里边属性我找不到啊
    比如单击获得按钮的Index,tag,或者别的什么信息
    谢谢各位大哥了,再帮帮我吧
    我实在找不到啊
    我在做课设啊
      

  6.   


    for  i:= 0 to fCount1-1 do
        begin
          mxOutlookBarPro1.Headers.Headers[0].AddButton;
          mxOutlookBarPro1.Headers.Headers[0].Button[i].name='button_'+inttostr(1);//修改
          mxOutlookBarPro1.Headers.Headers[0].Button[i].Caption:=fdataq[i].Values[
            'nickname'];
          mxOutlookBarPro1.Headers.Headers[0].Button[i].ImageIndex:=strtoint(fdataq[
            i].Values['headimg']);
          mxOutlookBarPro1.Headers.Headers[0].Button[i].OnClick:=ChatClick;//单击事件
        end;
    procedure TForm2.ChatClick(Sender: TObject);
    begin
    //在这获取是哪个按钮单击的
      if (Sender is TButton) then
      begin
        if (Sender as TButton).Name='button_1' then
          showmessage('you click button named is button_1');
      end;
      Application.CreateForm(TForm3, Form3);
      Form3.Show();
    end;