PDA

Просмотр полной версии : [Помогите!] ListView


Skrillex3
21.05.2012, 08:38
В компоненте ListView есть 5 столбцов , мне нужно добавлять в 5-й столбец некоторую информацию , но нифига не выходит

procedure TForm.add(S: String);
begin
Form1.List.Items[ID].SubItems[3]:=s;
end;

Ошибка First chance exception at $7603D36F. Exception class EStringListError with message 'List index out of bounds (3)'. Process Project1.exe (2400)

Рэйзор
21.05.2012, 10:39
List index out of bounds (3)
Вам же ясно написали, что вы вылезли за границу массива.
Почему у вас TForm? Вы перегружаете базовый класс?
Должен же быть наследник от TForm, и в нем не нужно писать Form1 - это самое плохое, что можно сделать, вы привязываете класс к одной единственной переменной. У унаследованного класса сразу же объявлен List, и доступ к нему есть.

List.Items[ID].SubItems.Text := #13#10 + #13#10 + s;
//смотря что у вас там происходит
List.Items[ID].SubItems.Add(s);

Skrillex3
21.05.2012, 13:32
я Form1 написал потому что у меня в потоке выполняется вставка текста
List index out of bounds (3) вылезает независимо от того в которую я колонку кидаю текст

Рэйзор
21.05.2012, 14:24
Ну что за чубарые пошли, вы колонки вообще создали?
А Item[ID] существует?

Skrillex3
21.05.2012, 16:23
Ну что за чубарые пошли, вы колонки вообще создали?
А Item[ID] существует?
колонки создал и Item[ID] существует
List.Items[ID].SubItems.Text := #13#10 + #13#10 + s;
работает но 2-е предыдущие колонки очищаются ,как бы обойтись без #13#10 + #13#10?