Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2010, 23:00   #1
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию ListView1 и Tstringlist

Есть функция вызывания потока из данных listview, после того как ListView1 присвоил Tstringlist, он начал ругаться на items.
Код:
procedure TForm2.But_Pay_Button2Click(Sender: TObject);
var
  Pay : Array Of PayThread1;
  ListView1:Tstringlist;
begin
  ListView1:=Tstringlist.create;
  for s:=0 to Listview1.Items[s].count-1 do
  begin
  FURL := '' + Listview1.Items[s].SubItems[0];
  begin
  SetLength(Pay,Listview1.Items[s].count + 1);
    Pay[s]:=PayThread1.Create(True,Li.Items[s]);
    Pay[s].FreeOnTerminate := True;
    Pay[s].Resume;
  end;
end;
end;
Из-за чего такое может быть?

Последний раз редактировалось Stilet; 17.09.2010 в 09:15.
bulldog5293 вне форума Ответить с цитированием
Старый 17.09.2010, 00:38   #2
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

а вы уверены, что у вас в программе нету визуального компонента ListView1?
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 17.09.2010, 04:38   #3
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Откуда у стринглиста subitems???
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 17.09.2010, 13:26   #4
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Цитата:
Sanprof
а вы уверены, что у вас в программе нету визуального компонента ListView1?
Всмысли визуального компанента, просто я не понял
Цитата:
Mad_Cat
Откуда у стринглиста subitems???
А как без subitems, если данные хранятнся именно в них?
bulldog5293 вне форума Ответить с цитированием
Старый 17.09.2010, 14:01   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
for s:=0 to Listview1.Items[s].count-1 do
Ачучметь. Никого ничего не напрягает в этой строке?
Или это я не понимаю скрытого смысла изменять предел цикла для его же итераций?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.09.2010, 14:10   #6
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Так у меня если данные находятся в Listview1.Items[s].SubItems[0]; а их то есть items может быть много
bulldog5293 вне форума Ответить с цитированием
Старый 17.09.2010, 14:37   #7
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

1. У класса TStrings нет свойства SubItems. Очень похоже что ListVew1 это у вас компонент. Тогда зачем ListView1:Tstringlist;?
2. Чтобы пробегать по Items надо делать так Pred(ListView1.Items.Count)?
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Старый 17.09.2010, 14:42   #8
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

1. Да компонент, по другому пока не умею
2. тоесть нада в место for s:=0 to Listview1.Items[s].count-1 do использовать
for s:=0 to Pred(ListView1.Items.Count-1) do?
bulldog5293 вне форума Ответить с цитированием
Старый 17.09.2010, 15:11   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Чтобы пробегать по Items надо делать так Pred(ListView1.Items.Count)?
Окак... Ану приведи пример кода. Мне стало интересно как это будет работать.
Цитата:
по другому пока не умею
Выкинь строку ListView1:Tstringlist;
I'm learning to live...

Последний раз редактировалось Stilet; 17.09.2010 в 15:15.
Stilet вне форума Ответить с цитированием
Старый 17.09.2010, 15:12   #10
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

1. Что значит по другому не умею? Зачем вы тогда объявляете еще одну переменную ListView1 с типом TStringList??? Как у вас среда вообще на это не ругается?
2. Нет. Не так. Либо Pred(ListView1.Items.Count), либо ListView1.Items.Count - 1. Pred описан в справке.

Цитата:
Сообщение от Stilet Посмотреть сообщение
Окак... Ану приведи пример кода. Мне стало интересно как это будет работать.
Что тут такого
Код:
  
  for I := 0 to Pred(ListView1.Items.Count) do
    ShowMessage(ListView1.Items[I].Caption);
Правильно заданный вопрос - половина ответа!

Последний раз редактировалось Stilet; 17.09.2010 в 15:17.
XeruH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как в ListView1 вывести полный путь со значком. переместив только сам ярлык в ListView1 KWN, lnc Общие вопросы Delphi 6 09.02.2010 11:08
Класс TStringlist vitamin.rulez Помощь студентам 1 09.02.2009 14:42
Listview1 aesoem Общие вопросы Delphi 29 04.08.2008 13:33
TStringList nimf Общие вопросы Delphi 5 15.11.2007 14:44
Класс TStringList Pblog Обсуждение статей 0 27.05.2007 02:13