Текущий архив: 2005.12.11;
Скачать: CL | DM;
ВнизНепонятная ошибка при завершении программы. Найти похожие ветки
← →
Nikos (2005-11-20 22:23) [0]Писал программу. На главной форме 2 кнопки далее и выход. По нажатию на кнопку выход возникает вот такая ошибка.
Project temp.exe raised exception class EInvalidPointer with message "Invalid pointer operation". Process stopped. Use Step or Run to continue.
Вот процедура обработки нажатия на эту кнопку:procedure TfmMain.btExitClick(Sender: TObject);
begin
close;
end;
Пробовал вставить в место close; fmMain.Close; но ошибка остается. Также писал и Application.Terminate; но ошибка прежняя остается. Самое
удивительное, что по началу такой ошибки не было.
Можно было предположить, что модули, которые я написал позже дают такой сбой, но я их отключил, а ошибка осталась. Не могли бы вы подсказать, в
чем тут дело? Может это ошибка самой Делфи? В данном модуле есть еще только одна процедура - нажатие на кнопку далее. Вот она:procedure TfmMain.btNextClick(Sender: TObject);
begin
fmRes.Show;
fmMain.Hide;
end;
Подскажите, как исправить ошибку?
← →
Плохиш © (2005-11-20 22:27) [1]Предлагаешь нам по-медитировать? Или сам отладчиком воспользуешься?
← →
Германн © (2005-11-21 02:32) [2]А ведь весьма знакомые ушки. :)
Почему-то кажется, что Close выполняется моментально! А ведь это может быть весьма длительный и "процедуроёмкий" процесс, который только начинается при вызове сей процедуры.
← →
brother © (2005-11-21 05:55) [3]А ошибочку надо исправлять в 15 строке! Точно.
Если отладчиком не умеешь пользоваться то за тебя твой код никто не
отладит. Если так все сложно, давай по конкретней!
← →
GuAV © (2005-11-21 12:07) [4]Для начала - смотреть обработчики OnDestroy, финализацию модулей, проверить правильность работы со строками. "Общения" со своей длл нет ?
← →
Nikos (2005-11-22 10:13) [5]> Плохиш
> сам отладчиком воспользуешься?
Я ставлю точку останова на строке close, но после нажатия F7 вылетает эта ошибка. Может подскажешь, как еще проследить ошибку?
> brother
> А ошибочку надо исправлять в 15 строке! Точно.
А откуда такая уверенность? В сообщение ошибки упоминание о 15 строке не было.
> Если отладчиком не умеешь пользоваться то за тебя твой код никто не
отладит.
Можешь объяснить как это сделать? У меня есть книга Фаронова по всем версиям Делфи, но про отладку кода там ничего нет. Если знаешь в инете статьи с неплохим описанием, может скинешь мне сслыки или в двух словах объясни на форуме.
> GuAV
> Для начала - смотреть обработчики OnDestroy, финализацию модулей
Дело в том, что в модуле Res при создании формы я использую динамический массив объектов TImage. Я думал, что при выходе он дает такую ошибку. В обработчике кнопки Exit я добавил строку финализацииprocedure TfmMain.btExitClick(Sender: TObject);
begin
Finalize(Im);
close;
end;
к сожелению это не помогло и ошибка осталась.
Как мне просмотреть обработчик OnDestroy?
← →
Digitman © (2005-11-22 10:16) [6]procedure TfmMain.btExitClick(Sender: TObject);
begin
Release;
end;
← →
Плохиш © (2005-11-22 11:29) [7]
> Nikos (22.11.05 10:13) [5]
> > Плохиш
> > сам отладчиком воспользуешься?
> Я ставлю точку останова на строке close, но после нажатия
> F7 вылетает эта ошибка. Может подскажешь, как еще проследить
> ошибку?
Открой окно CPU и удивись, сколько там всего выполняется, это первое. Второе, пересобери проект с включённой опцией "Использовать Debug-библиотеки".
← →
Плохиш © (2005-11-22 11:29) [8]
> Nikos (22.11.05 10:13) [5]
> > Плохиш
> > сам отладчиком воспользуешься?
> Я ставлю точку останова на строке close, но после нажатия
> F7 вылетает эта ошибка. Может подскажешь, как еще проследить
> ошибку?
Открой окно CPU и удивись, сколько там всего выполняется, это первое. Второе, пересобери проект с включённой опцией "Использовать Debug-библиотеки".
Страницы: 1 вся ветка
Текущий архив: 2005.12.11;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.04 c