用过qq的人都知道,添加好友之后,在我的好友列表中就会出现对应的好友按钮,点击该按钮就会出现相应的聊天窗口;我的问题是:如何编写有类似功能的这种按钮类?给个大概的编码就行,谢谢。

解决方案 »

  1.   

    动态创建咯
    然后把相应的onclick事件赋给他
      

  2.   

    qq我觉得是用一个类似Outlook的控件,添加好友后,相应的添加的不是一个按钮,而是一个item,有bitmap或类似的属性。
    类似的控件有:1stClass的OutlookBar,Raize的RzGroupBar
      

  3.   

    那我再换个说法:比如说我要动态创建2个这样的按钮,点击他们的行为是显示各自的caption。
      

  4.   

    Corn1能否告诉我Delphi中有没有类似你所说的item的组件?
      

  5.   

    动态创建控件,然后把OnClick事件赋值就可以的。事件与控件的相关性可以通过OnClick里的Sender参数解决。(Sender as TButton).Caption或者(Sender as TButton).Tag都可以,我觉得Tag比较好,可以在Tag里放一个唯一的标示码来区分各个不同的控件。动态创建2个这样的按钮,点击他们的行为是显示各自的caption。可以在它们共同的OnClick里这样写:
    TForm1.TButtonOnClick(Sender:TObject);
    var
      s:string;
    begin
      s:=(Sender as TButton).Caption;
      ShowMessage(s);
    end;
      

  6.   

    聊天工具肯定使用了,中介者模式。要么代码会很乱的。有空研究 Delphi 模式编程。