![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| -Сергей- |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 2.8.2003 Где: Россия Репутация: нет Всего: 1 |
Имеется ListView со стилем Report. Необходимо пройтись по всем элементам, и в зависимости от выделенного элемента и его значения в некоем столбце произвести определенные действия.
Но почему-то условие
всегда срабатывает правильно, а это:
всегда "истина", несмотря на то что в столбце указаны данные, при которых условие должно выполниться. Где закралась ошибка?
--------------------
Для утвердительного ответа достаточно лишь одного слова - "да". Все прочие слова придуманы, чтобы сказать "нет". |
||||||
|
|||||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: нет Всего: 315 |
здесь
это условие всегда будет истинно, потому что у тебя написано: if(A != 10 OR A != 15) ясно же, что A всегда будет неравно какому-то одному из этих значений |
|||
|
||||
| -Сергей- |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 2.8.2003 Где: Россия Репутация: нет Всего: 1 |
Поправил.
Но почему? Не догоняю... --------------------
Для утвердительного ответа достаточно лишь одного слова - "да". Все прочие слова придуманы, чтобы сказать "нет". |
||||
|
|||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Ну вот вникай:
Добавлено через 3 минуты и 14 секунд А общем можешь в первом примере заменить or на and и будет то, что надо. Это сообщение отредактировал(а) Poseidon - 4.6.2013, 14:22 -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| -Сергей- |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 2.8.2003 Где: Россия Репутация: нет Всего: 1 |
Спасибо, все разжевал. Теперь все стало понятно.
Виновато человеческое рассуждение (или это или то) Я то рассуждаю логически как: если А не равно 10 или А не равно 15 то ... Выходит немного неправильно. --------------------
Для утвердительного ответа достаточно лишь одного слова - "да". Все прочие слова придуманы, чтобы сказать "нет". |
|||
|
||||
| Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 3 Всего: 7 |
Через else if делай.
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Такая логика тоже странновата. Ведь если А равно 15, то оно явно не равно 10, но все-таки оно равно 15. Т.е. уславие выполняется. То же самое и с 10. Условие выполняется т.к. 10 явно не равно 15, а у нас там "или". Ну а про все остальные варианты и говорить не стоит, они все будут не равны 10 и 15 , поэтому все выполняется. Вникни в это. Тебе надо условие "если А не равно 10 и А не равно 15 то ..." -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |