Вниз
Скачать: CL | DM;

Как закрыть ChildForm по кнопке которая на ней?   Найти похожие ветки 

← →
Fom   (2004-02-10 17:07) [0]

MDI Application
Создаю дочерную форму в главной.

MyForm := TMyForm.Create(Application);


Как мне ее закрыть по кнопке, которая на ней

MyForm.Close;//Access violation...

Как это сделать, мастаки?


← →
Игорь Шевченко ©   (2004-02-10 17:10) [1]

в FormClose Action:=caFree или caHide


← →
кондратий   (2004-02-10 17:12) [2]

+
OnDestroy
form1 := nil


← →
Юрий Зотов ©   (2004-02-10 17:13) [3]

Если в коде той же формы, которую надо закрыть, то просто Close.

Похоже, что у Вас стоит Action=caFree и после первого закрытия MyForm содержит битую ссылку. Тогда при втором она, естественно, дает Access Violation.

Вообще, возьмите зе правило стараться вообще не использовать глобальных переменных.


← →
Fom   (2004-02-10 17:18) [4]

2 Юрий Зотов ©
Close; - так и сделал. Все работает. Но вот не пойму, а как к этой форме обращатся из других дочерных?

про глобальные спасибо, я еще и на С програмлю так писал не давно прогу - код большой(200 кб кода) и не использовал ни одной глобальной, ну и трудно же - все через ссылки :)


← →
Fom   (2004-02-10 18:07) [5]

Мастаки, так как дочерней форме обратится из другой дочерней?


← →
Юрий Зотов ©   (2004-02-10 19:03) [6]

> Fom (10.02.04 18:07) [5]

Можно использовать Screen.Forms.
Можно MDIChildren.
Можно завести свой список ссылок (см. TList, TObjectList).
Можно завести динамический массив ссылок (но список удобнее).

Главное - это две вещи:
1. Ссылка на каждую вновь сожданную форму должна храниться отдельно (а не перезатирать друг друга в одной переменной).
2. Когда форма уничтожена, должна уничтожаться и ссылка тоже (или хотя бы обнуляться).



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

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



Память: 0.46 MB
Время: 0.018 c
14-80146
CS
2004-02-01 11:02
2004.02.25
Жесткие диски


7-80340
surkis
2003-12-05 00:59
2004.02.25
Explorer


4-80381
Fast
2003-12-19 16:48
2004.02.25
PaintBox + Printer


1-79950
Khabibulin
2004-02-13 21:25
2004.02.25
Открыть с помощью ...


14-80220
ZeRaM
2004-02-05 15:58
2004.02.25
HTML




   Наверх