С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
21 / 14 / 11
Регистрация: 09.06.2011
Сообщений: 832
Записей в блоге: 3
1

MDI формы

27.01.2012, 05:38. Показов 4298. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Скажите можно ли как то сделать что бы в MDI запускались только один раз - тоесть вот у меня запущена главная форма и я нажал несколько раз на кнопку появилось много дочерних, а как сделать что бы не появлялось их много, а только одна и снова она могла открыться только после того как ее закрыть, зарание СПС
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Блог
27.01.2012, 05:38
Ответы с готовыми решениями:

MDI-формы
Помогите пожалуйста!!!!!! Я уже замучалась. Проблема моя вот в чем. В приложении нужны просто 2...

MDI формы
Проблема. 2 года назад писал диплом и проблем с MDI приложением не возникало. а сейчас делаю 1...

События формы для MDI
у меня проект, родительская и дочерняя форма. для дочерней формы создаю событие OnCreate или...

MDI формы и главная форма
Есть главная форма, на которой расположен Edit1, Memo1 и кнопка. Как сделать поиск из главной формы...

4
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
27.01.2012, 08:00 2
Ну проверяй. Если окно создано, то отобрази его. Если надо перегрузить, то убей и снова создай.
Delphi
1
2
3
4
5
6
7
  
try
    Application.FindComponent(_rgr_frm_.Name).Destroy;
  except
  end;
  Application.CreateForm(T_rgr_frm_,_rgr_frm_);
  _rgr_frm_.Show;
Ну вот что то подобное.
0
21 / 14 / 11
Регистрация: 09.06.2011
Сообщений: 832
Записей в блоге: 3
27.01.2012, 09:12  [ТС] 3
Цитата Сообщение от rdama Посмотреть сообщение
Ну проверяй. Если окно создано, то отобрази его. Если надо перегрузить, то убей и снова создай.
Delphi
1
2
3
4
5
6
7
  
try
    Application.FindComponent(_rgr_frm_.Name).Destroy;
  except
  end;
  Application.CreateForm(T_rgr_frm_,_rgr_frm_);
  _rgr_frm_.Show;
Ну вот что то подобное.

я если честно нечего не понял - а эта процедура вызвала многократное открытие формы, я стал делать кнопки неактивными((( что бы работало так как надо
0
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
27.01.2012, 09:51 4
Цитата Сообщение от First Посмотреть сообщение
я если честно нечего не понял
Ну можно и объяснить. Но объяснять код из 3 строк...это полный пизнесс.
Что вам не понятно из кода?
Ищем компонент с указанным именем. В нашем случае форма.
Находим убиваем и создаем новую.
Не находим, то гасим исключение и создаем новую.
Цитата Сообщение от First Посмотреть сообщение
а эта процедура вызвала многократное открытие формы
Ну а это уже скорее вопрос к тому как вы строите работу с MDI формами.
И как вы пишите свой код. Есть сомнения в нем раз у вас такое поведение форм.
А еще вам наверно надо почитать, что вообще есть MDI и SDI интерфейсы.
0
0 / 0 / 0
Регистрация: 02.01.2012
Сообщений: 8
29.01.2012, 19:51 5
Я, если честно, тоже не поняла. Ура - нас двое))

Не знаю, поможет или нет в данном случае воспользоваться методом MDIChildCount. Во всяком случае, описанная ниже процедура не дает многократно открывать окна.

Delphi
1
2
3
4
5
6
7
procedure TMainForm.CreateButtonClick(Sender: TObject);
begin
ChildForm:=TChildForm.Create(Owner);
if MDIChildCount>1 then
ChildForm.Free;
 
end;
0
29.01.2012, 19:51
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
29.01.2012, 19:51
Помогаю со студенческими работами здесь

Передача значений с обычной формы в MDI
Добрый день, товарищи! Имеет место быть следующая проблема: Есть MDICHILD форма (fCity), с...

Форма внутри формы. Без MDI
Доброго времени суток! Подскажите, как можно сделать форму внутри формы, но при этом не...

Активация MDI-формы при клике на кнопку
У меня возник вопрос у специалистов по Delphi. Создаю клиент-серверное приложение для СУБД FireBird...

MDI-формы: отобразить только одну форму
Доброго времени суток. Пишу в RAD Studio XE 3 в VCL form. Создал новый проект. Назначил форму...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru