Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-79858
_Студент_
2004-02-10 16:37
2004.02.25
Packed record - работа с файлами.


1-79867
Dr.Karter
2004-02-10 14:32
2004.02.25
Системное время


3-79643
Ig
2004-01-31 17:14
2004.02.25
DBase , на другом компьютере


1-79869
WG
2004-02-10 14:50
2004.02.25
Как спрятать приложение в трэй (к часам ?)


3-79593
bSava
2004-02-02 16:11
2004.02.25
InterBase (Yaffil) и Win 95





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский