![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
TarasBer |
![]()
Сообщение
#1
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
В общем во время этих зависаний (где-то на 3300 миллисекунд) даже мышь не работает, только винамп играет. Каждый раз повисает в разном месте. Уборка рандомизатора ничего не дала. НО. Если в модуле UView3D.pas закоментировать строчки с 605 по 610ю
то зависания вдруг исчезают... Можете сами проверить - запускаете проект TrumGame, карту gorod.tr, маршрут номер 1, ничего не делаем, смотрим. Как правило в районе первого ответвления направо повисание. Да, попытки применить таймер другого типа (см последнюю, закоментированную строчку из TView3D.Create), приводят к тому, что при выходе из конструктора программа выдаёт ошибку. Где тут загвоздка, не знаю. Может вы с такой ерундой сталкивались? Да, от вирусов комп чистил вроде. Ссылка на архив с кодом: http://tarasber.narod.ru/Tr__--__.rar -------------------- |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Какая у вас версия дельфы кстати? У меня седьмая. Я же написал выше:Цитата в частности, D2009 выдает вот это Цитата Так, я перечитал ваше сообщение, я сначал подумал, что у вас компилируется но вылетает в том месте с таблицей, а у вас просто не компилируется, всё. Неправильно подумал... У меня компилируется, запускается, но при попытке сделатьRouteTable.RowCount := RouteTable.RowCount + 1; (метод AddToTable) вылетает с исключением... Причина описана выше: в момент увеличения RowCount немедленно вызывается обработчик события OnSelectCell стринггрида, там вызывается GetS1S2... Переходим в GetS1S2, что видим? В переменную S пишется значение из ячейки s := Cells[0, SelRow];, но ведь туда в этот момент еще ничего не записано!!! Запись-то происходит в следующей строке после увеличения RowCount, куда выполнение не доходит... Откуда S = пустой строке, и при попытке обратиться к S[ 1 ] получаем вылет... Скорее всего в Дельфи 7 OnSelectCell работает не так, как теперь, поэтому у тебя вылета в рантайме не происходит... Вот и получается, что не все то, что работает в Дельфи 7 будет работать без изменений в Дельфи 2009... Цитата просто всё это перед стартом очень быстро прогоняется. У меня это занимает 2 минуты (селерон 600 МГц), откуда у вас "секундное подвисание"?! У меня не Селерон, и тем более не 600 МГц... Запустил твой EXE еще раз... Ну, не секунда, чуть меньше двух секунд. Скажем, две...Добавлено через 7 мин. P.S. Так, ну с ошибкой разобрался очень просто: меняем местами вот эти 2 строки и все запускается... // было Попробую сегодня - завтра понять, почему может происходить подвисание... ![]() |
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 5:31 |