Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

найти пустые ячейки в третьем столбце ListView по всем строкам [D7]


Garacio ©   (2007-01-16 20:30:00) 

Мне необходимо найти пустые ячейки в третьем столбце ListView по всем строкам и заполнить их 'Не найдено!'. Пытаюсь так:
for i:=0 to ListView1.Items.Count-1 do
 begin
 if (ListView1.Items[i].SubItems.Count > 1)
   and (ListView1.Items[i].SubItems[2].Text = '') then
   ListView1.Items[i].SubItems.add('Не найдено!');
 end;

Но пустые ячейки продолжают оставаться пустыми!
Помогите исправить!


Сергей М.   (2007-01-17 11:11:00) [1]


> 2-го столбца

ListView.Items[i].SubItems[ 0]


Garacio   (2007-01-17 09:49:00) [2]

Тогда, может кто-нибудь поможет организовать проверку:
Если в какой-то ячейке 2-го столбца в ListView (состоящего из 3-х столбцов) нет значения (пустая ячейка), то заполнить её 'Нет файлов!'
P.S.</b 1-й столбец ListView весь заполнен, 3-й полностью пустой, 2-й заполнены только некоторые ячейки


MBo   (2007-01-17 09:14:00) [3]

SubItems[2] - это третийэлемент в списке, так что проверка SubItems.Count > 1 слишком слабая


Garacio   (2007-01-17 08:03:00) [4]

Нет, ну серьёзно:
При любых подобных попытках, будь то:
ListView1.Items[i].SubItems[2] := 'Нет файлов!'; или
ListView1.Items[i].SubItems[1] := 'Нет файлов!'; или
if ListView1.Items[i].SubItems[2] = '' then
при компиляции ругается
...
begin
 Application.Initialize;
 Application.CreateForm(TFormMain, FormMain);
 Application.Run;
end. //<- вот тут

Delphi при этом ничего не пишет в отчёте. А вот в самом приложении выскакивает: "List index out of bounds(2)"


AFKer   (2007-01-16 23:12:00) [5]

да без проблем!


Garacio   (2007-01-16 21:46:00) [6]


> ListView1.Items[i].SubItems[2]:='Не найдено!';

Нет, не помогает! К тому-же возьмите ListView и попробуйте таким способои заполнить его :-)


AFKer   (2007-01-16 20:49:00) [7]

только Subitems[0..N] должен быть уже создан..


AFKer   (2007-01-16 20:46:00) [8]

for i:=0 to ListView1.Items.Count - 1 do
begin
  if (ListView1.Items[i].SubItems[2] > '') then
    ListView1.Items[i].SubItems[2]:='Не найдено!';
end;
может так..


Аноним   (2007-01-16 20:43:00) [9]

then
  ListView1.Items[i].SubItems[2]:='Не найдено!';
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо