简单问题,怎么判断listbox是不是为空(100分)

  • 主题发起人 主题发起人 tunick
  • 开始时间 开始时间
T

tunick

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么判断listbox是不是为空,谢谢大虾。。
 
用listbox1.items.count属性。
哈哈.太好赚了。给分吧
 
来晚了!
 
if ListBox1.Items.Count=0 then showmessage('空');
 
来晚了!too
 
呵呵。。。偶就是菜鸟。。怎么啦。。
 
POST

当TListBox中没有item时,itemIndex应该是-1,但在D4中,实际读出的却是0,即无法
通过itemIndex判断ListBox是否为空。可以用下面这个函数代替读itemIndex属性解决:
function GetListBoxItemIndex(ListBox: TListBox): integer;
begin
assert(ListBox is TListBox);
with (ListBox as TListBox) do
begin
if MultiSelect then
Result := SendMessage(Handle, LB_GETCARETINDEX, 0, 0)
else
Result := SendMessage(Handle, LB_GETCURSEL, 0, 0);
end;
end;
该函数根据ListBox就能返回这个ListBox的itemIndex. 这个BUG,是Dephi 4 中新引入
的,在以前版本中没有。似乎在Delphi 4 Update 1中已经解决了这个问题。

 
ypy根本是就是把简单问题复杂化,
ListBox里有个items.它本身就是列表的各个项目的集合,是一个TStrings,
直接取它的Count就是列表项目的个数了.
 
Specifies the ordinal number of the selected item in the list box抯 item list.

property ItemIndex: Integer;

Description

Use ItemIndex to select an item at runtime. Set the value of ItemIndex to the index of the item to be selected. The ItemIndex of the first item in the list box is 0. If no item is selected, the value is -1, which is the default value unless MultiSelect is True.

If the value of the MultiSelect property is True the user can select more than one item in the list box. In this case, the ItemIndex value is the index of the selected item that has focus. If MultiSelect is True, ItemIndex defaults to 0.
 
统一kucio的意见
 
纠正一下,ListBox 的 Items 属性并不是 TStringList 类型,也不是 TStrings 类型,
它是一个 TObject 类型的数组属性,每一个 Item 成员可以存储任何类型的对象!!!
 
to tunick
ListBox1.Items.Count>0 不为空!不过索引是从0开始的,如ListBox1.Items[0].……
哈哈,我比大家多说些东西啦!!!!!!!
 
Phoenix2000 不要误导别人,你说的是 Objects 属性,Items 属性的确是

TStrings 类。
 
多人接受答案了。
 
后退
顶部