C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Создание EXE, Ошибка при закрытии формы
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
Всё... smile.gif 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.

Вернуться в Вопросы программирования в C++Builder