AHDPE |
Отправлено: 20.04.2004, 12:35 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 25
|
Написал программу, работающую с MDI формами. При создании полноценного EXE (галочки в link,pakage убраны) появилась ошибка — при закрытии главной формы вываливается ошибка: invalid pointer operation.
Код закрытия форм:CODE |
int n=MDIChildCount;
if (n!=0)
for (int i=(n-1);i>=0;i--)
MDIChildren[i]->Close(); |
При отладке, программа зацикливается в этом участке.
При компиляции с link, pakage ошибок нет. |
|
Пaxa |
Отправлено: 20.04.2004, 13:20 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 17
|
Не делай в главной форме никаких закрытий child окон.
Это не к чему, хочешь чтобы было правильно делай в childe так:
CODE |
void __fastcall TfrmBrowse::FormClose(TObject *Sender, TCloseAction &Action)
{
Action = caFree;
}
|
А в fsMDIForm (главная) ничего не надо, можешь сделать выход в меню и подставить ему стандартный action из TActionList
Всё... Enjoy |
|
AHDPE |
Отправлено: 22.04.2004, 12:37 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 25
|
Результат тот же. |
|
Gedeon |
Отправлено: 22.04.2004, 13:19 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Ну так и посмотрите в отладчике что с i происходит.
|
|
AHDPE |
Отправлено: 25.04.2004, 06:54 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 25
|
Я вообще этот фрагмент программы вырезал. А i в начале меняется нормально, а потом зашкаливает за 32000. |
|