Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
1-83538
Valentino
2003-05-13 11:16
2003.05.26
Random...


14-83662
gn
2003-05-05 13:32
2003.05.26
Попытка номер 2


1-83554
Stalin
2003-05-13 12:18
2003.05.26
NetWork Initialization Faild


4-83824
Prooksius
2003-03-31 15:02
2003.05.26
Хэндл другого процесса


14-83694
Дмитрий К.К.
2003-05-06 06:26
2003.05.26
Именинники 6 мая




   Наверх