![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Louken |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 13.9.2008 Где: Кострома Репутация: 1 Всего: 1 |
Сама тема обсуждалась тут.
Проблема пока не решена. Может кто на этом форуме встречался с чем нибудь подобным. Вкратце о глюке: Пишу проект, однажды решил сделать небольшой рефакторинг кода, после чего, во время компиляции делфа стала зависать. Если впервый раз скомпилить проект, все ок, все работает, если что то исправить в модулях использующих ateGeometry и скомпилить снова, то делфа виснет намертво, иногда и компилить не надо, просто попытаться получить всплывающую подсказку для функции, результат тот же - делфа виснет. Исходники проекта для ознакомления можно скачать по ссылке в 13 посте, инструкции по поимке глюка там же. Глюк у себя обнаружили как минимум еще двое форумчан. Глюк стабильно наблюдается в Delphi2006, Delphi2007 и Delphi2009. Очень странно, что Borland/CodeGear до сих пор его не устранили. Это сообщение отредактировал(а) Louken - 13.4.2009, 01:27 |
|||
|
||||
kemiisto |
|
||||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 16 Всего: 160 |
Louken, это называется горе от ума. Так не пишут в Delphi!
![]() После каждого нестандартного (т.е. твоего самописного модуля) при подключении его в uses должна быть дописочка in бла-бла-бла:
Таковой вот ситуации:
вообще быть не должно! Ручаюсь, что это и есть причина "глюков". Научись правильно пользоваться инструментом и запомни на будущее Pascal Unit != C++ Header File. Глюк не в компиляторе, а у некоторых в головах. -------------------- |
||||
|
|||||
Louken |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 13.9.2008 Где: Кострома Репутация: 1 Всего: 1 |
kemiisto
Насчет этого
согласен. Но уважаемый kemiisto Вы не правы!!! Создаю новую папку, кидаю туда файл ateGeometry, создаю в ней же файл Project1.dpr пишу в нем
Открываю Project1.dpr в Delphi. Компилирую проект. Пока все в порядке, как и должно быть. Ставлю курсор между begin и end, жму Ctrl+Space выбираю из списка VectorCross, появляется подсказка о параметрах процедуры, набираю v1, ставлю запятую, во всплывающей подсказке жирным должен выделиться второй параметр, но до этого не доходит, т.к. делфи намертво зависает! Ситуация четко повторяется если делать ровно так, как описано, как в Delphi2007, так и в Delphi2009. Если действовать подругому (каждый раз папку с проектом можно не создавать), то глюк может проявляться по разному. Так что фразочки типа
оставьте при себе. Другими словами, проблемма заключается в модуле ateUnitGeometry, только вот где непонятно. Я допускаю, что гдето допустил ошибку, но почему компилятор просто мне не показал, где эта ошибка, почему он виснет то? Почему иногда компиляция происходит нормально? Щас методом копипаста, пытаюсь найти проблеммный участок. |
||||||
|
|||||||
Louken |
|
||||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 13.9.2008 Где: Кострома Репутация: 1 Всего: 1 |
Все, методом проб и ошибок вроде нашел багу. Тьфу тьфу тьфу, чтоб не сглазить.
Если кому интересно, то я удалил в модуле ateGeometry слово type в 364 строчке, т.е. было
стало
И вседаки совершенно непонятно, что делфе ненравилось, мистика какая то. |
||||
|
|||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Louken, настоятельно рекомендую отправить отчёт об этой проблеме на Quality Central! Особенно, если глюк можно воспроизвести на демо-проекте (приаттачить к отчёту не забудьте).
Просто вы нашли како-то глюк и можете его воспроизвести - это очень хорошо. Потому что этот же глюк может проявлять себя и в других ситуациях, но в них уже его идентифицировать будет не так просто. Вот почему очень важно, чтобы вы отправили отчёт. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Louken |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 13.9.2008 Где: Кострома Репутация: 1 Всего: 1 |
Итак, результатом нескольких дней поиска мною был сделал маленький пример, на котором легко можно поймать, рассматриваемый в данном топике, глюк:
1. Создаем новую папку 2. В ней создаем два файла Project1.dpr и Geometry.pas 3. Содержание файла Project1.dpr:
4. Geometry.pas:
5. Открываем Project1.dpr в Delphi 6. Компилируем проект. Компиляция должна быть успешной. 7. Между begin и end пишем VectorCross 8. Ставим "(", дожидаемся появления всплывающей подсказки 9. Печатаем "v1" и "," 10. Это все! Когда во всплывающей подсказке "жирным" должен выделиться второй параметр, IDE Delphi должна зависнуть. 11. Если заменить строчку
на
то проблемма больше не наблюдается. К коду не придерешься, все синтаксически верно. Вот так из-за одного слова можно наткнуться на такой пренеприятнейший глюк. Так что будьте внимательнее в своих проектах! Отправил отчет об ошибке в CodeGear. Номер отчета 72930, голосуем. P.S. У меня уже мания началась, я теперь постоянно ожидаю от Delphi, что она зависнет, нескоро смогу оправиться от пережитого шока. P.P.S. Тем кто делал программу отправки отчета - Quality Central, надо руки оторвать, бездари. |
||||||||
|
|||||||||
Louken |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 13.9.2008 Где: Кострома Репутация: 1 Всего: 1 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "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. |