有哪位高手知道,在DELPHI中有那一个组件能做出像QQ里面<<我的好友>>里面能显示头像又能显示用户名那组件是哪个?
  DELPHI中的DBGrid不能显示图片~
在哪个高手知道能不能告诉我~

解决方案 »

  1.   

    treeview不可以吗?
    DBGRID显示图片,要自画的,D6入门到精通上面有个原码!
      

  2.   

    似乎在Raize Components和DevExpress里面都有。
      

  3.   

    unit   Unit1;interfaceuses
    Windows,   Messages,   SysUtils,   Classes,   Graphics,   Controls,   Forms,   Dialogs,StdCtrls,   ComCtrls,NMUDP;type
    TForm1   =   class(TForm)
    NMUDP1:   TNMUDP;
    EditIP:   TEdit;
    EditPort:   TEdit;
    EditMyTxt:   TEdit;
    MemoReceive:   TMemo;   
    BtSend:   TButton;
    BtClear:   TButton;
    BtSave:   TButton;
    StatusBar1:   TStatusBar;   
    SaveDialog1:   TSaveDialog;
    procedure   BtSendClick(Sender:   TObject);
    procedure   NMUDP1DataReceived(Sender:   TComponent;   NumberBytes:   Integer;
    FromIP:   String;   Port:   Integer);
    procedure   NMUDP1InvalidHost(var   handled:   Boolean);
    procedure   NMUDP1DataSend(Sender:   TObject);
    procedure   FormCreate(Sender:   TObject);
    procedure   BtClearClick(Sender:   TObject);
    procedure   BtSaveClick(Sender:   TObject);
    procedure   EditMyTxtKeyPress(Sender:   TObject;   var   Key:   Char);
    private
    {   Private   declarations   }
    public
    {   Public   declarations   }
    end;var
    Form1:   TForm1;implementation{$R   *.DFM}procedure   TForm1.BtSendClick(Sender:   TObject);
    var
    MyStream:   TMemoryStream;
    MySendTxt:   String;
    Iport,icode:integer;
    Begin
    Val(EditPort.Text,Iport,icode);
    if   icode<>0   then
    begin
    Application.MessageBox('端口必须为数字,请重新输入!','信息',MB_ICONINFORMATION+MB_OK);
    Exit;
    end;
    NMUDP1.RemoteHost   :=   EditIP.Text;   {远程主机}
    NMUDP1.LocalPort:=Iport;   {本地端口}
    NMUDP1.RemotePort   :=   Iport;   {远程端口}
    MySendTxt   :=   EditMyTxt.Text;
    MyStream   :=   TMemoryStream.Create;   {建立流}
    try
    MyStream.Write(MySendTxt[1],   Length(EditMyTxt.Text));{写数据}
    NMUDP1.SendStream(MyStream);   {发送流}
    finally
    MyStream.Free;   {释放流}
    end;
    end;
    procedure   TForm1.NMUDP1DataReceived(Sender:   TComponent;
    NumberBytes:   Integer;   FromIP:   String;   Port:   Integer);
    var
    MyStream:   TMemoryStream;
    MyReciveTxt:   String;
    begin
    MyStream   :=   TMemoryStream.Create;   {建立流}
    try
    NMUDP1.ReadStream(MyStream);{接收流}
    SetLength(MyReciveTxt,NumberBytes);{NumberBytes为接收到的字节数}
    MyStream.Read(MyReciveTxt[1],NumberBytes);{读数据}
    MemoReceive.Lines.Add('接收到来自主机'+FromIP+'的信息:'+MyReciveTxt);
    finally
    MyStream.Free;   {释放流}
    end;
    end;procedure   TForm1.NMUDP1InvalidHost(var   handled:   Boolean);
    begin
    Application.MessageBox('对方IP地址不正确,请重新输入!','信息',MB_ICONINFORMATION+MB_OK);
    end;procedure   TForm1.NMUDP1DataSend(Sender:   TObject);
    begin
    StatusBar1.SimpleText:='信息成功发出!';
    end;procedure   TForm1.FormCreate(Sender:   TObject);
    begin
    EditIP.Text:='127.0.0.1';
    EditPort.Text:='8868';
    BtSend.Caption:='发送';
    BtClear.Caption:='清除聊天记录';
    BtSave.Caption:='保存聊天记录';
    MemoReceive.ScrollBars:=ssBoth;
    MemoReceive.Clear;
    EditMyTxt.Text:='在这里输入信息,然后点击发送.';StatusBar1.SimplePanel:=true;
    end;procedure   TForm1.BtClearClick(Sender:   TObject);
    begin
    MemoReceive.Clear;
    end;procedure   TForm1.BtSaveClick(Sender:   TObject);
    begin
    if   SaveDialog1.Execute   then   MemoReceive.Lines.SaveToFile(SaveDialog1.FileName);
    end;procedure   TForm1.EditMyTxtKeyPress(Sender:   TObject;   var   Key:   Char);
    begin
    if   Key=#13   then   BtSend.Click;
    end;
    end.
    差不多QQ
      

  4.   

    VirtualStringTree 绝对满足你