Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.039 c
8-1083141345
Marina_S
2004-04-28 12:35
2004.07.11
Исходник JPEG


14-1087761409
Yegorchic
2004-06-20 23:56
2004.07.11
Принтер и цвет...


1-1088161464
MacroDenS
2004-06-25 15:04
2004.07.11
TCanvas, DLL - по ходу не догоняю


1-1088102299
georg
2004-06-24 22:38
2004.07.11
1С: бухгалтерия, или вопрос немного не в тему


14-1087853882
Marser
2004-06-22 01:38
2004.07.11
Сегодня 22-е июня





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский