靠,高兴也不能忘了技术问题!来一个小技术讨论:如果ListBox1.items.text显示超过它的大小,也就是说看不清后半截。鼠标指针移动到上面,在Hint里面现实所有的Text嘿嘿,代码在这里:procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: integer); var lstIndex: integer; begin with ListBox1 do begin lstIndex := SendMessage(Handle, LB_ITEMFROMPOINT, 0, MakeLParam(x, y)); if (lstIndex >= 0) and (lstIndex <= Items.Count) then begin if Width < length(Items[lstIndex]) * 6.2 then Hint := Items[lstIndex] else Hint := ''; end else Hint := '' end; end;
还有对上面乘6.2地解释:6.2 is how many pixels equal to one character,we can calculate the width of one string(listbox item). if the width of listbox less than the length of listbox item,then show hint of this item. if you change the listbox's font,you may change the number 6.2 to another one.哇哈哈,大家有什么看法?
6.2 is how many pixels equal to one character 这句话是根本错误的。当字体变化时,一个字符所占象素的多少就变化了。正确的应该用: TCanvas.TextWidth和TextHeight———————————————————————————————————— 宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。 ————————————————————————————————————
TCanvas.TextWidth是integer,不知道6.2是如何得来的?试出来的:)
楼上的…… 没有看到后面那句吗?if you change the listbox's font,you may change the number 6.2 to another one.唉,别说对与错没有完全的对错,只有相对的,你说得对,他说得也对。但是你不要拿你的主观意识强加给别人,你的观点是对的,做法是错的。
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
lxpbuaa(桂枝香在故国晚秋)更牛,
上个月huojiehai (海天子) 我得专家分Delphi版排名第二
1 ljmanage 6759
2 huojiehai 5949
3 lxpbuaa 5817 宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
4 DWGZ 5408
5 WWWWA 4691
6 firetoucher 4254 风无形,焱无影,往事无处觅踪;风弄焱,焱追风,伊人何去何从?
7 zhoutian618 2286 秦失其鹿,天下共逐,唯胜者得鹿而割之
8 yesxwl 2183
9 things 2020 数据库编程--菜鸟一只
10 myling 1969 无话可说了
11 FrameSniper 1910 §坐拥书城铸内秀§
12 jpyc 1862 我想成为一颗耀眼的星!所以开始了25000里长征。http://www.kaer.cn/default.aspx
13 fengjn 1666 来时的车票谁给报了
14 duxin 1319 这是那?我是谁?
15 fhuibo 1260 走自己的路,让别人去说吧
16 mrtxc 1119 VB6熟悉,c入门,现在正用DELPHI,富创新意识和上进心
17 theone_jxm 1114
18 pengdali 1109
19 IORILI 1071 恩
20 wjt1982 1066
1 myling 966 无话可说了
2 star_of_light 920 走自己的路,让别人说去
3 fhuibo 765 走自己的路,让别人去说吧
4 senhor 706 万恶皆由贪字来
5 FrameSniper 501 §坐拥书城铸内秀§
6 l_xiaofeng 474 命运就象强奸,你抗拒不了就去enjoy;工作就象轮奸,你不行了别人就上;生活就象sy,全靠自己的双手;爱情就象口交,尝过才知道味道。
7 mrfanghansheng 417
8 WWWWA 404
9 berylseabirdjnb 400 我爱"@#$%^&*"
10 zhoutian618 373 秦失其鹿,天下共逐,唯胜者得鹿而割之
11 sixgj 371 轰炸机!
12 ljmanage 364
13 DWGZ 351
14 0000001980 337
15 huojiehai 321
16 siyu2002 318 知识改变命运,成就未来!
17 duxin 317 这是那?我是谁?
18 dbyzxf 300 真的吗
19 winterind 291
20 firetoucher 283 风无形,焱无影,往事无处觅踪;风弄焱,焱追风,伊人何去何从?
呵呵, 我已经两个月非技术区得分第一了!!新水王诞生了!!! 娘的,上个月竟然有一半的分是在那里得的,我自己都奇怪得很。呵呵
var
lstIndex: integer;
begin
with ListBox1 do
begin
lstIndex := SendMessage(Handle, LB_ITEMFROMPOINT, 0, MakeLParam(x, y));
if (lstIndex >= 0) and
(lstIndex <= Items.Count) then
begin
if Width < length(Items[lstIndex]) * 6.2 then
Hint := Items[lstIndex]
else
Hint := '';
end
else
Hint := ''
end;
end;
if the width of listbox less than the length of listbox item,then show hint of this item.
if you change the listbox's font,you may change the number 6.2 to another one.哇哈哈,大家有什么看法?
这句话是根本错误的。当字体变化时,一个字符所占象素的多少就变化了。正确的应该用:
TCanvas.TextWidth和TextHeight————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
哈哈哈哈!你说的对。不过6.2嘛,的确没什么意义。————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
强者,向你学习ing
最后,接分!