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的内容. 展开
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的内容. 展开
2个回答
展开全部
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(...);
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(...);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我不知道是不是这样, 我一般按Delphi中的示例去做, 以防出问题, 最后的复合语句一般写成:
begin
tempItem := ListView1.Items.Add;
tempItem.Caption := ...;
tempItem.Checked := False;
... ...
end;
后边就不调用ListView1.Items.AddItem和tempItem.Update了. 我一直这么做, 也一直正常
begin
tempItem := ListView1.Items.Add;
tempItem.Caption := ...;
tempItem.Checked := False;
... ...
end;
后边就不调用ListView1.Items.AddItem和tempItem.Update了. 我一直这么做, 也一直正常
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询