![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при могократном открытии формы в Win98 [D5, Win95/98, NT4, Win2k]
Fran © (2002-06-22 20:58:00)Уважаемые, кто сталкивался с таким: Ошибка при могократном открытии формы в Win98: есть главное меню проекта, из него создается форма:
procedure TfmMain.mnRecZbrakClick(Sender: TObject);
begin
gbFlagCrForm := False;
gbCancel := False;
Splash := ShowSplashWindow(Application.Icon,
"Подождите...", False, nil);
try
gdYear := funcYearDate;
gdDateBeg := funcFirstDay(gdYear);
gdDateEnd := funcLastDay(gdYear);
dmZbrak := TdmZbrak.Create(Application);
fmRegZbrak := TfmRegZbrak.Create(Application);
Splash.Free;
if gbFlagCrForm then fmRegZbrak.ShowModal;
finally
dmZbrak.Free;
fmRegZbrak.Free;
end;//try
end;
Щелкаю на меню и затем закрываю форму.
На 25 раз - Аксес виолейшн - Runtime error 216.
На NT 4.0 и Win2k такой проблемы нет. В чем проблема?
Юрий Зотов (2002-06-23 15:57:00) [1]Вряд ли это особенность компилятора Дельфей. Гораздо вероятнее, что это все же особенность программы. Не обнуляет какой-нибудь стек.
Fran (2002-06-23 15:47:00) [2]Это не приемлемо, т.к. я работаю под Win2k, а клиенты под Win98. Ставить им Дельфи? И под Win2k такой проблемы нет. Тут, наверное, особенность компилятора Дельфей сказывается, как то он затачивает *.exe под Win2k, не учитывая особенностей Win98. Или особенность Win98 - не обнуляет какой-нибудь стек.
Юрий Зотов (2002-06-22 21:45:00) [3]Дык... Перед 25-м разом поставьте BreakPoint, пройдите отладчиком, посмотрите значения переменных - сами все и увидите.
А по этому фрагменту что же скажешь? Там ведь несколько классов, только Вы один знаете, как они работают и на что ссылаются. Ясно только, что где-то идет ссылка либо на еще не созданный объект (или непроинициализированный указатель, что одно и то же), либо на уже уничтоженный объект (или на уже освобожденный участок памяти, что тоже одно и то же).