listView 的使用问题(二)???????(0分)

  • 主题发起人 主题发起人 autocar
  • 开始时间 开始时间
A

autocar

Unregistered / Unconfirmed
GUEST, unregistred user!
listView 的使用问题(二)?????????????????????????????????????????????????????????????????????????????
第一;

怎样为每个item储存额外的信息???


第二;

delphi的listview有没有像 vb的listview控件,可以在 listitem的ToolTipText属性 为每个listitem设置 提示信息,

就 像dephi的hint属性一样.


谢谢!!
 
帮你up。顺便问一下。怎样设置一个colum的smallimages .而且当我选择数据中的一行的时候
改成另一个小图标。而该列的其他小图不变??

??你问什么不加分?我另开一个吧
 
第一个问题你可以这样:
利用 item 的 data 属性
如: listView.Items[X].data := pointer( XXXXXXXX )

data 是一个指针类型数据,这里的XXXXX 可以是对象或是其它任何类数据。

请取时,你可以用对应的类型强制转换这个指针数据,
但是一定要事行清楚这个指针是什么类转换而来的。
如:
listView.Items[X].data := pointer('这是一个字符串');
StringVar := String(listView.Items[X].data);


 
乖乖兔:
谢谢你

但我不明白pointer( XXXXXXXX ) 是怎样用????

你可以把代码再详细点吗??? 因为我还未用过 pointer 类型的变量
 
pointer( XXXXXXXX ) 其实就是将一个值转换成指针类型值赋给 data

当中的 XXXXXXXX 可以是一个变量,或一个常量,或一个数值,或一个字符串,或一个其它类型的值。
var aStr, StringVar: String;
aStr := '这是一个字符串';
listView.Items[X].data := pointer(aStr);
StringVar := String(listView.Items[X].data);
 
你说提的,全部可以用指针完成!

声明:
type
PNodeData = ^TNodeData;
TNodeData = record
ListNo: string;
Hint: string;
end;

使用的话:
var
PData: PNodeData;

new(PData);
PData.ListNo := '号码';
PData.Hint := '提示';
ListView.items[0].data := PData;

showmessage(PNodeData(ListView.items[0].data).Hint);

注意,关闭要释放的 ListView 的 Item
 
顺便问一下,在item被delete的时候,其data指向的数据是否同时被释放
 
好像是不会。
所以删除一个节点及程序结束时,要清除所有item:
Dispose(PNodeData(ListView.items[0].data));
 
说明一下,当一个 ListItem 被删除时,Data 所关链的数据会自动一同被释放。

type
PNodeData = ^TNodeData;
TNodeData = record
ListNo: string;
Hint: string;
end;

var
PData: PNodeData;

new(PData);
PData^.ListNo := 'AAAAAAAAA';
PData^.Hint := 'bbbbbbbbb';
with ListView.items.add do
Data := PData;

showmessage(PNodeData(ListView.items[0].data)^.Hint);
 
楼主问的ToolTipText功能仍没有得到解答啊。

to angelgekko,你说的只是存储一个名为Hint的字符串数据而已,但这个数据并不能起到ToolTipText的功能(鼠标放上去自动出现提示信息)。
 
这个问题已知道如何解决了。

to angelgekko,你的方法没错。是我原先没看仔细。
 
后退
顶部