Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.05.2010, 14:15
galich galich вне форума
Прохожий
 
Регистрация: 31.03.2010
Сообщения: 8
Репутация: 10
По умолчанию Закрытие MDIChild формы

Главная форма MDI. Открываю несколько MDIChild форм. Программно хочу закрыть какое то окно (Close). Закрываются все окна, а не то которое нужно. Где косяк?
Ответить с цитированием
  #2  
Старый 21.05.2010, 14:24
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Имхо, косяк в ДНК
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 21.05.2010, 15:40
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #4  
Старый 21.05.2010, 19:13
dimsog dimsog вне форума
Прохожий
 
Регистрация: 13.04.2010
Адрес: В России
Сообщения: 26
Репутация: 10
По умолчанию

Смотри код. Косяк скорее всего в нем.
Ответить с цитированием
  #5  
Старый 24.05.2010, 15:54
galich galich вне форума
Прохожий
 
Регистрация: 31.03.2010
Сообщения: 8
Репутация: 10
По умолчанию

Цитата:
Сообщение от Yurk@
Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
Да, на закрытии форм это и прописано.
Вот код из главной формы для открытия другой
Код:
Form2:=TForm2.Create(self);
Form2.Show;
Из второй формы открываю третью
Код:
Form3:=TForm3.Create(self);
Form3.Show;
И из нее хочу закрыть Form1.
Пишу Form2.Close;
Закрываются обе Form2, Form3.
Если закрывать крестиком ввеху, то нормально закрывается та форма которая и должна быть закрыта.

Чешу репу....
Ответить с цитированием
  #6  
Старый 24.05.2010, 17:25
dimsog dimsog вне форума
Прохожий
 
Регистрация: 13.04.2010
Адрес: В России
Сообщения: 26
Репутация: 10
По умолчанию

Может этот пример поможет?
Вложения
Тип файла: rar MDI.rar (17.5 Кбайт, 6 просмотров)
Ответить с цитированием
  #7  
Старый 24.05.2010, 20:20
lmikle lmikle сейчас на форуме
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,100
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Батенька, а что же вы хотели, если у вас родителем окон выступают MDIChild-формы. Естественно, закрываясь, такая форма закрывает и потомков. Формы надо создавать с родителем Application:

Код:
Form1 := TForm1.Create(Application);
...
Form2 := TForm2.Create(Application);
...
Form3 := TForm3.Create(Application);
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:47.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025