Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Дочерние окна [D6, D7, WinXP]


Heretic ©   (2004-06-24 11:31:00) 

Помогите ламеру. Есть главная форма (fsMDIForm) и есть куча дочерних (fsMDIChild). Как правильно открывать и закрывать дочерние окна, а то у меня постоянно какие-то ерроры при открытии или закрытии.
И еще, как проверить дочернее окно - открыто окно или нет (Show) и создано или отсутствует (Create).


Silver Alex   (2004-06-24 13:03:00) [1]

Я вот так делаю
function IsFormFoundEx(AFormClass :TFormClass) : boolean;
var
 i:integer;
begin
 Result:=False;

 for i:=0 to Screen.FormCount - 1 do
 if (Screen.Forms[i] is AFormClass) then begin
   (Screen.Forms[i] as TForm).BringToFront;
   Result:=True;
   break;
 end;

 if not Result then
   AFormClass.Create(Application);
end;

вызываешь форму

IsFormFoundEx(TfrmChildForm)

и на закрытие ChildForm в OnClose ставишь

action:= caFree;


Игорь Шевченко   (2004-06-24 12:59:00) [2]


> И еще, как проверить дочернее окно - открыто окно или нет
> (Show) и создано или отсутствует (Create).


У всех MDIChild'ов свойство Visible установлено в true, значит, если создано, то видимо.


Наверх

Титульная страница Поиск, карта сайта Написать письмо