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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.04.2010, 14:08
Аватар для segas
segas segas вне форума
Новичок
 
Регистрация: 08.02.2009
Сообщения: 97
Репутация: 10
Лампочка MDI

Доброго времени суток.
Работаю с MDI формами.
подскажите пожалуйста как сделать так чтобы если дочернее окно уже создано то при нажатии на кнопку открывающее это окно оно не дублировалось а становилось активным, если не создано, то создалось.

Заранее спасибо!
Ответить с цитированием
  #2  
Старый 29.04.2010, 14:43
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Вот функция, которое ищет форму с заголовком, можно и по другим признакам искать.
Код:
function TDM.FindForm(const aCaption: Integer): TForm;
var
  i:integer;
begin
  with Application.MainForm do
  for i:=0 to MDIChildCount-1 do
    if MDIChildren[i].Caption = aCaption then
      begin
      Result:=MDIChildren[i];
      exit;
      end;
  Result:=nil;
end;
Основной смысл в следующем, ищем форму если нашли то на передний план, иначе создаем.
Код:
...
var
  C:TForm
...
  C:=DM.FindForm("Пользователи");
  if  C <> nil then C.BringToFront
    else Application.CreateForm(TUsersForm, UsersForm);
...

Последний раз редактировалось Asinkrit, 29.04.2010 в 14:46.
Ответить с цитированием
  #3  
Старый 29.04.2010, 15:05
Аватар для segas
segas segas вне форума
Новичок
 
Регистрация: 08.02.2009
Сообщения: 97
Репутация: 10
По умолчанию

Очень много ошибок((
Большинство так и не исправил..
Ответить с цитированием
  #4  
Старый 29.04.2010, 15:29
Аватар для segas
segas segas вне форума
Новичок
 
Регистрация: 08.02.2009
Сообщения: 97
Репутация: 10
По умолчанию

на сколько я пол BringToFront это активация формы, у меня выкидывает с ошибкой
Ответить с цитированием
  #5  
Старый 29.04.2010, 18:42
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Это рабочий код, из проекта выдернул, что у тебя за ошибки?
Ответить с цитированием
  #6  
Старый 29.04.2010, 21:09
Аватар для segas
segas segas вне форума
Новичок
 
Регистрация: 08.02.2009
Сообщения: 97
Репутация: 10
Счастье

да я в принципе уже через свою функцию блокирую двойное открытие формы, осталось разобраться как сделать ее активной при повторном обращении, буду благодарен если подскажете
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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