Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.26;
Скачать: CL | DM;

Вниз

как корректно закрыть формочку?   Найти похожие ветки 

 
natasha ©   (2003-05-15 14:28) [0]

Народ, помогите чайничку, pls!

Пишу диплом на Delphi6, не могу понять почему некорректно закрываются MDI Child формы в приложении кнопкой «Выход», первый раз закрывается, как правило, нормально (системы в появлении и очередности сообщений об ошибках не могу выявить), без всяких сообщений об ошибке, второй раз – class EAccessViolation with message «Access violation at address ……. (адреса каждый раз разные) in module Project.exe. Read of address …….», следующий раз – class EAbstractError with message «Abstract Error». Нажатием на close в системном меню формы закрывается без проблем сколько бы раз подряд не закрывалось. Procedure FormClose и Procedure ButtonExit.Click абсолютно идентичны и включают, кроме закрытия запросов и таблиц, FormDestroy, подозреваю, что проблема именно в этом, но не могу включить туда FormHide т.к. нельзя скрыть MDI Child форму. Заранее благодарна всем ответившим.


 
Zacho ©   (2003-05-15 14:42) [1]

Формы создаются динамически ? Тогда в OnClose форм просто сделать Action:=caFree; и нигде больше Free для этих форм не вызывать.


 
clickmaker ©   (2003-05-15 16:00) [2]

Form.Destroy не стоит явно вызывать. Form.Close, а дальше, как Zacho сказал


 
natasha ©   (2003-05-15 16:15) [3]

Формы создаются динамически. С Action пробовала, не получается, попробую еще покрякаться. Спасибо за ответ.


 
VladP   (2003-05-15 17:03) [4]

procedure FrmChild.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;

С Action должно получаться.


 
Viktor   (2003-05-15 18:27) [5]

FrmChild := nil

а при вызове проверь
if not Assigned(FrmChild) then
Application.CreateForm(TFrmChild, FrmChild);


 
natasha ©   (2003-05-15 18:57) [6]

Ребята, спасиьо огромное, все заработало!


 
Zacho ©   (2003-05-15 21:48) [7]


> natasha © (15.05.03 18:57)

И еще один небольшой советик: не используй автоматически сгенерированные Дельфи глобальные переменные (типа var Form1:TForm1) для динамически создаваемых MDIChid форм. По крайней, мере пока не будешь уверена, что тебе это нужно, и ты знаешь, как оно работает.



Страницы: 1 вся ветка

Текущий архив: 2003.05.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
6-83619
Vitas2
2003-03-24 15:45
2003.05.26
WebBrowser


1-83593
phantom2040
2003-05-14 14:53
2003.05.26
Вопрос по OpenDialog


3-83380
FANTASY
2003-05-05 04:14
2003.05.26
ClientDataSet файл черезмерно растет


9-83311
Ev_genus
2002-12-15 22:44
2003.05.26
Проекция.


3-83390
Raduga
2003-05-06 14:21
2003.05.26
Механизм работы TAdoTable