我本想定位改动listview某行某列的数据,或定位给某行某列插入内容,结果使用了
listview1.items.item[i].subitems.strings[i]:='123';
可是就是不行,运行就有错误,编译倒还能过去,但是在当时写的时,到subitems的时候就不会再索引属性出来了,strings是我加上去的,大家能帮我看一看到底是什么原因吗,我是用空的程序测试的,就是一个listview和button控件,一行代码:listview1.items.item[2].subitems.strings[2]:='123';同时提示一下,不是越界错误,我有加了足够的items项。
listview1.items.item[i].subitems.strings[i]:='123';
可是就是不行,运行就有错误,编译倒还能过去,但是在当时写的时,到subitems的时候就不会再索引属性出来了,strings是我加上去的,大家能帮我看一看到底是什么原因吗,我是用空的程序测试的,就是一个listview和button控件,一行代码:listview1.items.item[2].subitems.strings[2]:='123';同时提示一下,不是越界错误,我有加了足够的items项。
listview1.items.item[i].subitems是一个Tstrings类型,你必须先用
Tstringlist.add() 加入串,
之后才能用listview1.items.item[i].subitems.string[i]读取值或修改
for j := 0 to Listview1.Items.count - 1 do
for i := 0 to ListView1.Columns.Count - 2 do
Listview1.Items[j].SubItems.Add('123');
var
i,j:integer;
begin
i:=3;
j:=5;
for i:=0 to i-1 do
begin
listview1.Items.Add.Caption:='';
end;
with listview1.Items.Add do
begin
caption:='';
subitems.Add('');
subitems.Add('');
subitems.Add('');
subitems.Add('hello is me');
end;
end;
你可以根据你添加的位置,先检查所要实现的行是否大于item.count,是则一直添加到要实现的行
如果是原先存在的行则
listview1.items[i].SubItems.Strings[j] := '123'
否则为with listview1.Items.Add do
begin
caption:='';
subitems.Add('');
subitems.Add('');
subitems.Add('');
subitems.Add('hello is me');
end;
不知对不对^-^
listview1.Items[i].SubItems[j]:='555';
Access violation at address 00434B3C inmodule 'project1.exe',read of address 00000024.”
有没有可能是同一事件中的其他代码错误?