Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.11;
Скачать: 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 вся ветка

Текущий архив: 2004.07.11;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.041 c
1-1088423856
Masloff
2004-06-28 15:57
2004.07.11
Процедура копирования файла


14-1087991370
AlexG
2004-06-23 15:49
2004.07.11
Еще вопрос про сжатие...


14-1087838328
MacroDenS
2004-06-21 21:18
2004.07.11
Матак Пати......


14-1087924591
Zeqfreed
2004-06-22 21:16
2004.07.11
bmp2txt


4-1086175357
eRoR_rrr
2004-06-02 15:22
2004.07.11
ProgresBar при копировании