DELPHI7 LISTVIEW控件添加项目问题?

procedureTForm12.FormCreate(Sender:TObject);vari:integer;tempItem:TListItem;subItems:... procedure TForm12.FormCreate(Sender: TObject);
var
i:integer;
tempItem:TListItem;
subItems:TStrings;
begin
if(dm.ADOQuery1.Active) then dm.ADOQuery1.Close;
dm.ADOQuery1.SQL.Clear;
dm.ADOQuery1.SQL.Add('select mid,mname,mknowlege from t_manpower where misend=0 ');
dm.ADOQuery1.ExecSQL;
dm.ADOQuery1.Active:=true;
dm.ADOQuery1.First;
for i:=0 to dm.ADOQuery1.RecordCount-1 do
begin
tempItem:=TListItem.Create(listview1.Items);
tempItem.Checked:=false;
tempItem.SubItems.Append('ddd');
tempItem.SubItems.Append(dm.ADOQuery1.Fields[2].AsString);
tempItem.Caption:=trim(dm.ADOQuery1.Fields[1].AsString);
tempItem.SubItems.Append(inttostr(dm.ADOQuery1.Fields[0].AsInteger));
listview1.Items.AddItem(tempItem);
tempItem.Update;
dm.ADOQuery1.Next;
end;

end;
问题:为什么这段代码可以添加一个item,而屏幕却步显示item的caption呢?而只显示了subItem的内容.
展开
 我来答
Aztack
2005-11-19 · TA获得超过607个赞
知道小有建树答主
回答量:450
采纳率:0%
帮助的人:412万
展开全部
Delphi帮助中的说明
Call Create to instantiate a TListItem object at
runtime. List items added to the list view at design time are created automatically. At runtime, use the Add method of the TListItems object to create a list item and add it to the list view.
调用Create函数来再运行时创建一个TListItem的实例.
ListItmes在设计时加入的项目(item)会被自动创建.
在运行时请使用Add函数来创建list item并把它增加到
list view中

所以了,用tempitem:=ListView1.Add;
不要用tempitem:=TListView1.Create(...);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MichaelMagic
2005-11-19 · TA获得超过1945个赞
知道小有建树答主
回答量:707
采纳率:0%
帮助的人:632万
展开全部
我不知道是不是这样, 我一般按Delphi中的示例去做, 以防出问题, 最后的复合语句一般写成:
begin
tempItem := ListView1.Items.Add;
tempItem.Caption := ...;
tempItem.Checked := False;
... ...
end;

后边就不调用ListView1.Items.AddItem和tempItem.Update了. 我一直这么做, 也一直正常
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式