Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загадочное поведение if-оператора, ничего не понимаю... 
:(
    Опции темы
a_n_d_y
Дата 15.6.2007, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 23.10.2006
Где: Ukraine::Kiev

Репутация: нет
Всего: 1



Ув. форумчане!!!
Вот, в чем заключается проблема

Код

var
  groupList: TList; 
//...
  for i := 0 to groupList.Count - 1 do
  begin
    group := groupList.Items[i];            
    if group^.GroupCaption = name then
    begin // в этот блок я не могу попасть даже тогда, когда условие выполняется...
      result := group;
      break;
    end;
  end;

PM MAIL ICQ Skype MSN   Вверх
cardinal
Дата 15.6.2007, 02:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Цитата

в этот блок я не могу попасть даже тогда, когда условие выполняется...

А ты уверен в том, что оно выполняется. Чему равно group^.GroupCaption и name тогда, когда ты думаешь, что они равны?


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
a_n_d_y
Дата 15.6.2007, 02:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 23.10.2006
Где: Ukraine::Kiev

Репутация: нет
Всего: 1



уверен.. (в дебаге это видно)
Компилятор говорит, что в блоке unreacheble code
PM MAIL ICQ Skype MSN   Вверх
cardinal
Дата 15.6.2007, 02:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



А так:
Код

if (group^.GroupCaption) = name then

Я просто Delphi не знаю, так преположения...

Если это не пройдет, то читай тут Сравнение строк


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
a_n_d_y
  Дата 15.6.2007, 02:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 23.10.2006
Где: Ukraine::Kiev

Репутация: нет
Всего: 1



Цитата(cardinal @  15.6.2007,  02:17 Найти цитируемый пост)
А так:
Код

if (group^.GroupCaption) = name then



то же самое =)
PM MAIL ICQ Skype MSN   Вверх
cardinal
Дата 15.6.2007, 02:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Какой тип у group^.GroupCaption и какой у name? Попробуй так:
Код

var
  P1, P2: PChar;
...
  P1 := StrNew(group^.GroupCaption);
  P2 := StrNew(name);
  if P1 = P2 then
...
  StrDispose(P1);
  StrDispose(P2);



--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Alex
Дата 15.6.2007, 03:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 162



Код

var
  groupList: TList; 
//...
  for i := 0 to groupList.Count - 1 do
  begin
    group := groupList.Items[i];            
    if AnsiSameText(group^.GroupCaption, name) then // Сравнение строк без учета регистра
    begin // в этот блок я не могу попасть даже тогда, когда условие выполняется...
      result := group;
      break;
    end;
  end;



--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
aktuba
Дата 15.6.2007, 06:04 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 7
Всего: 38



Попробую угадать... Name - это скорее всего подразумевается переменная, а Delphi берет название формы. Уже много раз советовали - не называйте переменные зарезервированными словами!.


--------------------
user posted image
PM MAIL WWW Skype   Вверх
MetalFan
Дата 15.6.2007, 07:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



Цитата(aktuba @  15.6.2007,  06:04 Найти цитируемый пост)
не называйте переменные зарезервированными словами

ну name не зарезервированное слово... просто оно используется в TComponent.
но идея не использовать такие простые имена для локальных и глобальных переменных весьма на мой взгляд правильна


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
aktuba
Дата 15.6.2007, 07:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 7
Всего: 38



Цитата

ну name не зарезервированное слово...


Виноват, не правильно выразился...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
a_n_d_y
Дата 15.6.2007, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 23.10.2006
Где: Ukraine::Kiev

Репутация: нет
Всего: 1



Цитата

Какой тип у group^.GroupCaption и какой у name?

WideString

Цитата

// Сравнение строк без учета регистра

в случае, когда group^.GroupCaption и name были равны '123'я в блок тоже не попадаю. так что, думаю, не в этом дело..

Цитата

Name - это скорее всего подразумевается переменная, а Delphi берет название формы

в данном случае, name - это строковой параметр, который передается в метод, фрагмент которого я и показал..
метод ничего не знает ни про какие формы..

Это сообщение отредактировал(а) a_n_d_y - 15.6.2007, 08:48
PM MAIL ICQ Skype MSN   Вверх
MetalFan
Дата 15.6.2007, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



давай пример приложения... а так мы ж не телепаты! smile


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Igor_thief
Дата 15.6.2007, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 12.9.2006
Где: Украина

Репутация: нет
Всего: нет



Уверен что нету в конце пробелов?

Попробуй WideCompareText
--------------------
В каждом из нас спит гений, и с каждым днем все крепче ...delphigeek.blogspot.com | www.iskomorokh.com 
PM MAIL WWW ICQ YIM MSN   Вверх
aktuba
Дата 15.6.2007, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 7
Всего: 38



a_n_d_y, Покажи полный код процедуры...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Sunvas
Дата 15.6.2007, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 2
Всего: 89



Цитата(aktuba @  15.6.2007,  06:04 Найти цитируемый пост)
Name - это скорее всего подразумевается переменная, а Delphi берет название формы.

Кстати, меня тоже эта мысль посетила. Что, если просто переименовать переменную?


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0653 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.