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

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

Проблема с условием else [D7, XP]


Страницы:   1 2

krolic ©   (2008-09-08 14:18:00) 

Добрый день. Помогите найти ошибку.
Если делать цикл так, то нужные строки окрашивает в красный
Open;

          IBQuery.First;
          while not (IBQuery.Eof) do
          begin
                 Zapr:=FieldByName('max').AsString;
                 for i:=0 to ListView1.Items.Count-1 do
                      if ListView1.Items[i].SubItems[4] = Zapr  then
                      begin
                           ListView1.Items[i].Data := Pointer(clRed);   ListView1.Invalidate; //Красим строку в красный цвет
                      end;
                  DataModule1.IBQShared.Next;

          end;
Close;

Если добавить условие, то красит всев зеленый, хотя должны быть и красные

Open;
          IBQuery.First;
          while not (IBQuery.Eof) do
          begin
                 Zapr:=FieldByName('max').AsString;
                 for i:=0 to ListView1.Items.Count-1 do
                      if ListView1.Items[i].SubItems[4] = Zapr  then
                      begin
                           ListView1.Items[i].Data := Pointer(clRed);   ListView1.Invalidate; //в красный
                      end
                      else  
                      begin
                           ListView1.Items[i].Data := Pointer(clGreen); ListView1.Invalidate; //в зеленый
                      end;

                  DataModule1.IBQShared.Next;
          end;
Close;


  (2008-09-08 15:21:00) [1]

Удалено модератором


b z   (2008-09-08 15:10:00) [2]

По понедельникам может быть все. :)


Сергей М.   (2008-09-08 15:09:00) [3]

krolic   (08.09.08 15:01) [22]


> Должны в результате условия
> if Условие1  then
>                    begin
>                         Красим строку в красный цвет
>                    end
>


Ничего они никому не "должны".

Если условие истинно, то "красим в красный", иначе "не красим в красный" или "красим в некрасный".

Третьего не дано.

Если видишь зеленый, то верь глазам своим - условие ложно.


Johnmen   (2008-09-08 15:08:00) [4]


> А вот с именем не угадал

Да понятно, что целая банда чайников задает вопросы главного самовара по всему инету...:)


krolic   (2008-09-08 15:06:00) [5]

А вот с именем не угадал


Медвежонок Пятачок   (2008-09-08 15:06:00) [6]

Должны в результате условия

Если должны и не отдают, то есть сервис соответсвующий.
Пацаны там за определенный процент работают.


Johnmen   (2008-09-08 15:04:00) [7]

Ну Оксане Белолипецких щас навалится туча народу отвечать. Причем исключительно кодом...:)


krolic   (2008-09-08 15:04:00) [8]

АМЁБА тебе не все равно, где я задаю вопросы.Если не чем помочь, то не мешайся под ногами!!!


Сергей М.   (2008-09-08 15:03:00) [9]

Ба, да это оказывается подружка !

На троих, видать, соображают  - krolic, Finjy и Dagir)


krolic   (2008-09-08 15:01:00) [10]

Должны в результате условия
if Условие1  then
                   begin
                        Красим строку в красный цвет
                   end


Amoeba   (2008-09-08 14:59:00) [11]

Этот товарищ уже и сюда с этим вопросом влез
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=65014


Медвежонок Пятачок   (2008-09-08 14:54:00) [12]

Видимо виноват эффект Доплера


Сергей М.   (2008-09-08 14:52:00) [13]


> 3 и 5 должны быть красными


С какого перепугу "должны" ?


Johnmen   (2008-09-08 14:47:00) [14]

Это тот же перец, что и
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1220246663&n=1
известный, как Finjy или Dagir. На sql.ru как Dagirov.
Все серии здесь
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1220612113&n=18

Видно его столь же дурную ветку про массивы удалили, так на sql.ru побирается
http://sql.ru/forum/actualthread.aspx?tid=593221


Медвежонок Пятачок   (2008-09-08 14:47:00) [15]

Один датасет позиционируем на first, из второго читаем значение, третьему делаем next.

Все как у райкина. Каждый отвечает за свои пуговицы.


krolic   (2008-09-08 14:47:00) [16]

1код f or i:=0 to ListView1.Items.Count-1 do
                    if Условие1 then
                    begin
                         Красим строку в красный цвет
                    end;

2код
      for i:=0 to ListView1.Items.Count-1 do
                    if Условие1  then
                    begin
                         Красим строку в красный цвет
                    end
                    else  
                    begin
                         в зеленый
                    end;

В том то и проблема, что в результате первого кода, он красит, например, 3 и 5 строки в красный. А в результате второго кода все строки в зеленый, хотя 3 и 5 должны быть красными.


Германн   (2008-09-08 14:46:00) [17]


> Проблема с условием else [D7, XP]
>
> krolic   (08.09.08 14:18)
>
> Добрый день. Помогите найти ошибку.

Это глюк Д7. Переходи на Д2009.


Palladin   (2008-09-08 14:45:00) [18]

:) обычная стандартная проблема... у аффтора... с логикой...


Медвежонок Пятачок   (2008-09-08 14:45:00) [19]

Проблема кролика в том, что он верит, что отличие двух вариантов заключается исключительно в else


Сергей М.   (2008-09-08 14:41:00) [20]


> Проблема с условием else
>
> krolic   (08.09.08 14:18)  


И какая же тут проблема ?
Если "в зеленый", значит выполняется соотв.условие, а именно
ListView1.Items[i].SubItems[4] <>Zapr


Страницы:   1 2

Наверх

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