请问如何像QQ那样的好友列表的HINT提示? 
鼠标移到某一项的时候就显示这个好友的详细信息? 
 
如果用ListView中第一项都显示不同的HINT呢? 
QQ中只是对每一项的Image才提示.
procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
  var
        p:TPoint;
        vItem : TListItem; 
  begin
         GetCursorPos(p);
         vItem := nil;
         vItem := ListView1.GetItemAt(x,y); 
         if vItem <>nil then
          Begin
              Application.ActivateHint(Point(X,Y));     //important
              form2.Top:=screen.Height- p.X;
              form2.Left:=Screen.Width- self.Width-p.Y;
              form2.Caption:=n;
              form2.Show;
          End;
  end;
我是这样弹出窗口的,但是问题在于在提示窗口不停的晃动,谁能给纠正或者给个实例,只光标在Image里的时候form2.show;

解决方案 »

  1.   

    在ITEM上时,是否同一ITEM,不是则显另一个.是则判断是否visable,是则退出,不是则显.
    不在ITEM上则设visable
      

  2.   

    Hint 窗口类可以自已实现啊这样,你自已的代码来决定显示啥模样 当然想怎么着就怎么着了
      

  3.   

    自己创建窗体,ListView1有一个属性叫data,就用它来做数据保存!
      

  4.   

    有一点不明 ,为什么listbox的事件里vItem := ListView1.GetItemAt(x,y); 却获得listview1里的item 你的代码逻辑我看不明白
       那是不是当鼠标在 listbox上move时 显示窗体?
       var
         P:Tpoint;
         B:Boolean;   P.x:=x; p.y:=y;   为什么不 listbox1.ItemAtPos(P,B);呢?
      

  5.   

      你完全可以用一个变量来记录 move时的item的index,如果移动时 index等于变量值,则不加载窗体。  起码不会在同一个ITEM上move引起 不停加载窗体
      

  6.   

    试下 CM_MOUSEENTER 和 CM_MOUSELEAVE 消息看看