|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.06.2012, 06:51 | #1 |
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
Mono: как программно закрыть окно
Имеется необходимость реализовать приложение, состоящее из n'ого количества форм, причем логика работы этих форм должна быть примерно следующей: из формы(окна) 1 открываются формы 1.1 или 1.2, из 1.1 открываются 1.1.1 или 1.1.2 и т.д. С открытием проблем нет, но как закрывать не нужные в данный момент окна? Во Framework, в VS необходимо было просто написать:
Код:
Подскажите пожалуйста, каким все таки образом возможно закрыть окно в Gtk#?
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
Последний раз редактировалось Mixim; 26.06.2012 в 06:55. |
26.06.2012, 07:08 | #2 | |
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
Только что нашел ЗДЕСЬ ответ:
Цитата:
2)нарушить, разорить; 3)разрушаться; 4)разгромить.
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
|
|
26.06.2012, 07:50 | #3 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Цитата:
Также могу предполагать, что поскольку gtk написана на си, то использует стандартную ООП-модель - явно созданные объекты должны явно уничтожаться. В c# и ему подобных есть сборщик мусора, который может уничтожать объекты самостоятельно, поэтому использование деструкторов там не часто встречается. Close - устоявшаяся терминология для оконного интерфейса, в то время как Destroy это универсальный деструктор для любого объекта (не только элементов интерфейса).
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 26.06.2012 в 08:02. |
|
26.06.2012, 09:44 | #4 | |
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
Благодарю, однако ради интереса решил проверить действительно ли освобождается память после выполнения:
Цитата:
Код:
Подумал, что память расходуется на какие-то другие операции, которые в отладчике я не вижу(код для которых написан\сгенерирован не мной, а самим Mono Developer), но открыв и закрыв раз 15 окно MyWindow и посмотрев сколько памяти выделено приложению на текущий момент(~10Мб), разубедился в этом. Каким образом можно действительно освободить всю память, занятую не нужными(закрытыми) в данный момент окнами?
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
Последний раз редактировалось Mixim; 26.06.2012 в 09:49. |
|
26.06.2012, 11:00 | #5 | |||
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Цитата:
Цитата:
Цитата:
Считайте что данный метод не принуждение к освобождению памяти, а информирование сборщика мусора о ненужном объекте. Не волнуйтесь, он принял к сведению
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 26.06.2012 в 13:48. |
|||
02.09.2012, 12:13 | #6 |
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
Спасибо, теперь буду знать.
Отступлю немного от темы: а каким образом мы может в приложении Gtk получить количество открытых в данный момент окон? Есть ли какие-нибудь аналоги System.Windows.Forms.Application.Op enForms.Count для Gtk Project?
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как закрыть наглое активное окно? | MotoArhangel | Общие вопросы Delphi | 8 | 09.03.2011 21:32 |
Закрыть всплывающее окно - как? | fezilk25 | Общие вопросы Delphi | 4 | 17.11.2010 19:22 |
Программно закрыть окно AutoPlay Menu Builder | KSN69 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 6 | 22.04.2010 13:48 |
Программно закрыть окно блокнота | Crivel | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 02.04.2009 16:40 |
Как закрыть окно подключения к инету dial-up? | Vladimir K. | Работа с сетью в Delphi | 4 | 12.02.2008 19:13 |