Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > ListView - значение конкретной ячейки


Автор: Tokagero 24.7.2010, 11:44
Посделний вопрос. 
Как взять значение конкретной ячейки конкретного столбца?

Допустим у нас есть некий ListView1 с полями 
item1, subitem, subitem, subitem
item2, subitem, subitem, subitem
item3, subitem, subitem, subitem

Если я все верно понимаю... Т.е. получается 4х3. Все поля текстовые, 
и мне нужно в некую переменную S(string) вытащить значение курсивной ячейки

Пытался знаком с ListView относительно недавно, делал что-то в духе
ListView1.Items[X].SubItems.Text, но тогда получается что-то типа
Код

_
_
нужный текст
_

( подчеркивания - пробелы)
Я конечно могу потом запустить повторный цикл для удаления строк с пробелами,
но наверное есть проще выход в 1 строчку и я его просто не знаю.

Либо выходит брать текст только из самой первой ячейки строки.
А мне нужно что-то типа S := ListView1.Строка[X].Ячейка[Y].Текст;

Первые 3 страницы гугла не дали результатов, отсюда 3 вывода
- либо это очень идиотский вопрос и ответ лежит прямо под носом
- либо это очень сложно\невозможно, в чем я сомневаюсь


Автор: xkor 24.7.2010, 13:51
Код

function GetCellText(lv: TListView; row, col: Integer): string;
begin
  if col>1 then 
    Result:=lv.Items[row].SubItems[col-1]
  else
    Result:=lv.Items[row].Caption;
end;

Автор: Tokagero 25.7.2010, 05:53
Спасибо, я так и думал... Правда начало errorы выводить о том, что нехватает subitemов хотя их было даже больше чем нужно.
Пришлось делать проверку if Listview.Items[x].Subitems.Count<Y then ....Subitem.Add(value); 

Еще раз спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)