Вниз
Скачать: CL | DM;

MDIChild   Найти похожие ветки 

← →
Dr.Karter   (2004-06-26 07:24) [0]

Вот по мере изучения Дельфи, и написания на ней программ, столкнулся с проблемой:

Есть окно MDIForm и ряд других обычных окон.
Я методом тыка нашел выход по открытию их ввиде MDIChild

  Form2.FormStyle:=fsMDIChild;
  Form2.Show;
Все замечательно, только закрывать не получается!!!
Я это делаю пока (пока вы не подскажете как это делать правильно)
спомощью
Событие OnClose     Form2.Destroy;
Но соответственно я открыть это окно больше не могу

Подскажите как это сделать правильно


← →
Dr.Karter   (2004-06-26 07:32) [1]

В FAQе я нашел эту функцию только как её реализовать у меня не получилось компилятор Выдает ошибку


← →
YurikGL ©   (2004-06-26 07:38) [2]

в OnClose action:=cafree а в следующий раз надо будет его создавать заново.


← →
jb   (2004-06-26 07:54) [3]

Вообще, MDIChild окно, следует создавать заново, при каждом создании (или открытии) документа, на то он и MDI.


← →
Dr.Karter   (2004-06-26 08:56) [4]

Если можно напишите код для создания(открытия формы), а то я писал так:

Form2.FormStyle:=fsMDIChild; (FormStyle до этого был Normal)
Form2.Show;

И закрытия формы.

На каманду action:=cafree в OnClose

!Выдает ошибку Incompatible types: "TBasicAction" and "TCloseAction"


← →
тихий вовочка ©   (2004-06-26 09:07) [5]

Обобщаю все вышесказанное.
Перед каждым выводом MDI-окна его надо создавать, например так:
TForm2.Create(Application), а для того, чтобы окошко у тебя закрывалось, а не минимизировалось, в обработчике TForm2.OnClose указывай Action := caFree;


← →
Dr.Karter   (2004-06-26 09:08) [6]

C Закрытием формы разобрался! Спасибо!
Как быть с

> jb   (26.06.04 07:54) [3]
> Вообще, MDIChild окно, следует создавать заново, при каждом
> создании (или открытии) документа, на то он и MDI.


← →
Dr.Karter   (2004-06-26 09:18) [7]

Если можно войдите в ситуацию:
вот что я написал: (это обработка кнопки)

procedure TFMain.nDetalClick(Sender: TObject);
begin
// Это до получения информации про    FkbDetal.Create(Application);

  FkbDetal.FormStyle:=fsMDIChild;
  Fkbdetal.Show;

end;

КУда теперь нужно впихнуть этот    FkbDetal.Create(Application);
???


← →
YurikGL ©   (2004-06-26 09:19) [8]


> Dr.Karter   (26.06.04 09:08) [6]

Суть в том, что заранее в инспекторе задать MDI окно или нет, потом при необходимости его отразить, - создавать его заново. А при закрытии - удалять


← →
Dr.Karter   (2004-06-26 09:37) [9]

Суть я понял! Я спрашиваю как эту суть в программный код конвертировать? :)
(: -А суть-то где?
  -А суть они сюда...прямо в песок! :)

Т.е где этот FkbDetal.Create(Application);
писать? (В обработчик нажатии на кнопку или OnCreate той формы)

Покажите плиз. код создания формы (То что у меня было я привел в Dr.Karter   (26.06.04 09:18) [7] )


← →
Dr.Karter   (2004-06-26 09:52) [10]

Получилось так:

При том что форма в панеле контроля задана уже как MDIChild

procedure TFMain.nDetalClick(Sender: TObject);
begin
  TFkbDetal.Create(Application);
end;

А если как в моем случае, что форма по началу имеет вид Normal, а уже в программе я меняю на MDIChild
Или тогда выход из ситуации что при запуске программы сразу открываются Child окна?


← →
YurikGL ©   (2004-06-26 09:54) [11]

1) задаем то, что окно MDIChild сразу в Инспекторе
2) в OnClose action:=cafree
3) Если необходимо отразить MDIChild-форму пишем FkbDetal:=TFkbDetal.create(application)


← →
Dr.Karter   (2004-06-26 12:53) [12]

Так все здорово работает! Только Child-форма на передний план вываливается при запуске программы (т.е запускается параллельно MDIForm), а таких форм у меня много.
Что сделать надо для этого?

Я делал превращение из Normal формы в MDIChild при обработке события нажатия на кнопку, но у меня получалось выводить это окно один раз.

Что делать чтобы эта(и) формы при запуске не отображались?


← →
YurikGL ©   (2004-06-26 13:02) [13]

меню Project-options- убери нужные формы из auto-create


← →
Dr.Karter   (2004-06-26 13:17) [14]

Все! :D теперь СУПЕР! Спасибо огромное!


← →
1   (2004-06-26 17:52) [15]

Action:=caFree;
Form2:=nil;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.02 c
1-1088149552
Maks Realov
2004-06-25 11:45
2004.07.11
Ещё один вопрос про ScanLine


14-1087993301
Igorek
2004-06-23 16:21
2004.07.11
Пара вопросов бывалым разработчикам


1-1088292852
Suomi
2004-06-27 03:34
2004.07.11
Инсталляция компонентов


3-1087296795
Aleksej
2004-06-15 14:53
2004.07.11
Запрос к 3 таблицам.


14-1087981579
ArhDD
2004-06-23 13:06
2004.07.11
Создание среды разработки при помощи WinApi




   Наверх