Форум: "Основная";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
ВнизКак закрыть 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 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.031 c