KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I use Delphi 2007. I have a TListView with OwnerData and OwnerDraw set to True. ViewStyle is set to vsReport . I have a record . type TAList=record Item:Integer; SubItem1:String; SubItem2:String; end; var ModuleData: array of TAList; procedure TForm1.ListView3Data(Sender: TObject; Item: TListItem); begin Item.Caption := IntToStr(ModuleData[Item.Index].Item); Item.SubItems.Add(ModuleData[Item.Index].SubItem1); Item.SubItems.Add(ModuleData[Item.Index].SubItem2); end; procedure TForm1.ListView3DrawItem(Sender: TCustomListView; Item: TListItem; Rect: TRect; State: TOwnerDrawState); var LIndex : integer; LRect: TRect; LText: string; TTListView: TListView; begin TTListView := TListView(Sender); if (Item.SubItems[0] = '...') then begin TTListView.Canvas.Brush.Color := clHighlight; TTListView.Canvas.Font.Color := clHighlightText; end else begin TTListView.Canvas.Brush.Color := TTListView.Color; TTListView.Canvas.Font.Color := TTListView.Font.Color; end; for LIndex := 0 to TTListView.Columns.Count - 1 do begin if (not(ListView_GetSubItemRect(TTListView.Handle, Item.Index, LIndex, LVIR_BOUNDS, @LRect))) then Continue; TTListView.Canvas.FillRect(LRect); if (LIndex = 0) then LText := Item.Caption else LText := Item.SubItems[LIndex - 1]; LRect.Left := LRect.Left + 6; DrawText(TTListView.Canvas.Handle, PChar(LText), Length(LText), LRect, DT_SINGLELINE or DT_VCENTER or DT_NOPREFIX or DT_END_ELLIPSIS); end; end; I wish to show an hint when SubItem2 is truncated. On Windows XP, no hint is shown at all. On Windows Vista & Windows 7, when my mouse is over an item, it shows an hint that is totally off. I have no special code to handle hints. Should there be one in OwnerData and OwnerDraw modes? Here are images of what I get: <a href="https://i.sstatic.net/HvXMX.png" rel="n
Tags (comma-separated)
Save Edits
Cancel