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

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

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

Восстановить пароль

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

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

в одной из программ решил ипользовать цикл проверке пустых запись в listview
Код:
begin
chupa:=0;
j:=0;
count1:=count;
repeat
chupa:=chupa+1;
      if  (length(ListView1.Items[cw].SubItems.Strings[j]) = 0) then
     ListView1.Items[cw].SubItems.Delete(j);
z:=j-1;
       ListView1.Items[cw].SubItems.Delete(z);
       j:=j+1;
       until chupa=count1;
end;
цикл справляется со своей работай, но после его выполнения программа больше ничего не делает, а без цикла работает, в чём я ошибся?
bulldog5293 вне форума Ответить с цитированием
Старый 23.02.2011, 19:59   #2
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

видимо условие никогда не настает, и он у вас после работы все еше крутица, не давая другим процессам работать
проверте что происходит в самом цикле и когда настает момент
Код:
until chupa=count1;
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 23.02.2011, 20:10   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

А чем плох For..to..do?

У ListView есть Items.count..

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i,l1:Integer;
begin
  for i:=0 to Listview1.Items.Count -1 do
  begin
    l1:=Length(ListView1.Items[i].SubItems.Strings[i]);  //Check item caption length
  If (l1 = 0) then
  ListView1.Items[i].Delete
  else
  Break;
  end;
end;
Человек_Борща вне форума Ответить с цитированием
Старый 23.02.2011, 20:44   #4
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

таким макарам нечё не убирает, человек борща спс, за пример с циклом for, но мне нада не только пустую колонку удалять, но и предыдущую
bulldog5293 вне форума Ответить с цитированием
Старый 23.02.2011, 21:27   #5
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Код:
begin
chupa:=0;
j:=0;
count1:=count;
repeat
chupa:=chupa+1;
      if  (length(ListView1.Items[cw].SubItems.Strings[j]) = 0) then
     ListView1.Items[cw].SubItems.Delete(j);
z:=j-1;
       ListView1.Items[cw].SubItems.Delete(z);
       j:=j+1;
       until chupa=count1;
  ShowMessage('OK');
end;
добавь строку в красном и скажи если появляеца сообшение со словом ок
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 23.02.2011, 21:47   #6
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

и не появилось и код дальше не продолжился
bulldog5293 вне форума Ответить с цитированием
Старый 23.02.2011, 21:52   #7
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

значит ето chupa=count1; или еше не произошло, или не произоидет никогда
чему у тебя равен count;?
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 23.02.2011, 21:55   #8
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

count форсированная запись равна от 0 до ..., но в данный момент 5
bulldog5293 вне форума Ответить с цитированием
Старый 23.02.2011, 22:01   #9
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

уверен???
Код:
begin
chupa:=0;
j:=0;
count1:=count;
repeat
  ShowMessage(IntToStr(count1));
chupa:=chupa+1;
      if  (length(ListView1.Items[cw].SubItems.Strings[j]) = 0) then
     ListView1.Items[cw].SubItems.Delete(j);
z:=j-1;
       ListView1.Items[cw].SubItems.Delete(z);
       j:=j+1;
       until chupa=count1;

end;
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 23.02.2011, 22:13   #10
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

уверен, скарее всего end где то не там стоит
bulldog5293 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Траблы с Алгоритмом!) LtB Помощь студентам 4 01.11.2010 01:09
Траблы с видеообеспечением PA3HOE Компьютерное железо 2 18.11.2009 22:44
Простая прога с цыклом на с++ Olya90 Помощь студентам 5 11.04.2009 19:31
Помогите с Цыклом Dzib Помощь студентам 4 24.10.2008 16:39
Траблы с инетом Romanus Свободное общение 2 09.08.2007 11:25