Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2009, 17:51   #1
north
Пользователь Подтвердите свой е-майл
 
Регистрация: 06.11.2007
Сообщений: 68
По умолчанию Delphi, дочерние формы

Есть форма(Form2), Form.Style = fsMDIChild. Создается несколько дочерних форм "при помощи Create"(TForm2.Create(Self)). Как сделать, чтобы каждая форма выполнила процедуру какую-нибудь?
north вне форума Ответить с цитированием
Старый 22.04.2009, 17:59   #2
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

TForm2.OnCreate:=MyProc;+описать MyProc
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 22.04.2009, 19:06   #3
north
Пользователь Подтвердите свой е-майл
 
Регистрация: 06.11.2007
Сообщений: 68
По умолчанию

Мне нужно, чтобы не при создании выполнялась процедура, а тогда, когда у меня есть несколько уже созданных форм(процедура должна выполнятся для каждой дочерней формы)
north вне форума Ответить с цитированием
Старый 22.04.2009, 19:11   #4
]Wowan[
Delphi forever
Форумчанин
 
Аватар для ]Wowan[
 
Регистрация: 13.01.2009
Сообщений: 113
По умолчанию

на событие OnActivate каждой из форм сделай проверку существует ли другая форма (мы) (проверяй свойство Form1.active если true значит форма уже существует).
Программы на заказ Delphi, Pascal.
ася: 415 253 529. Мыло: wowan141750@gmail.com.
]Wowan[ вне форума Ответить с цитированием
Старый 22.04.2009, 20:03   #5
north
Пользователь Подтвердите свой е-майл
 
Регистрация: 06.11.2007
Сообщений: 68
По умолчанию

Эмм.. У нескольких форм одинаковое имя, как реализовать эту проверку? Указатель может какой форме каждой присваивается?
north вне форума Ответить с цитированием
Старый 23.04.2009, 08:21   #6
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Цитата:
У нескольких форм одинаковое имя, как реализовать эту проверку?
У форм не может быть одинакового имени, или я не прав?
во время создания формы присваиваете ей имя с инексом
(к примеру Form1, Form2,). Потом делаете проверку, допустим если Form5 активна, то выполняется процедура.
S@fer вне форума Ответить с цитированием
Старый 23.04.2009, 12:03   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
или я не прав?
Частично. Дизайнер не допускает такого, но в коде можно приписать примерно такое:
Код:
var       f1,f2:TForm1;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormClick(Sender: TObject);
begin
   f1:=Create(nil); f1.Name:='q';
 f2:=Create(nil); f2.Name:='q';

  show;
  f1.show;
  f2.Show;
end;
Но естесственно это делать не рекомендуется
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.04.2009, 13:45   #8
north
Пользователь Подтвердите свой е-майл
 
Регистрация: 06.11.2007
Сообщений: 68
По умолчанию

У меня есть главная форма (Form1, FormStyle = fsMDIForm), и я создаю неколько дочерних (Form2, FormStyle = fsMDIChild), у всех дочерних будет имя Form2.
north вне форума Ответить с цитированием
Старый 23.04.2009, 14:07   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
у всех дочерних будет имя Form2.
Это нежелательно. Добавляй к ним уникальный индекс или записывай их в массив типа форма.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.11.2010, 17:29   #10
Paskal1
Пользователь
 
Аватар для Paskal1
 
Регистрация: 22.10.2010
Сообщений: 69
По умолчанию

Я не знаю в тему ли я но я так понял что если к примеру открыто 2-е дочерних формы то выполнить нужно процедуру если да то может вот так-------->
Код:
procedure TForm2.FormCreate(Sender: TObject);
begin
if diChildCount = 2 then
твоя поцедура
end;
Paskal1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в XML Schema правильно описать дочерние элементы Stilet HTML и CSS 4 21.11.2007 15:04
Дочерние окна XATAB Общие вопросы Delphi 3 14.11.2007 20:52
К существующим узлам TreeView пытаюсь добавить дочерние AlDelta Компоненты Delphi 2 05.11.2007 23:06
Не отображаюся дочерние записи siarhei БД в Delphi 0 25.05.2007 10:51
Как при скрытом чужом окне сделать его дочерние окна(сообщения) видимыми ? Starwarrior Win Api 1 20.03.2007 09:51