Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MDI 
:(
    Опции темы
Petro123
Дата 10.8.2007, 07:16 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Есть главная форма Form1, FormStyle:= fsMDIForm,
Добавляю 2-ю форму Form2, FormStyle:= fsMDIChild, ставлю у нее Visible:=false
При запуске приложения обе формы стают видимыми. Почему?
Чтобы избавиться от этого свойство формы2 делаю  FormStyle:= FsNormal, затем в 
OnClick кнопки на форме1 добавляю Form2.FormStyle:= fsMDIChild, visible:= true.
теперь при нажатии на кнопку дочерняя форма становится видимой,
 Далее при закрытии формы2, она не закрывается а сворачивается, 
Эту проблему решаю так. В обработчике OnClose формы2 параметр action:=cafree;  
Однако затем после нажатия на кнопку форма 2 уже не появляется. Почему?
И вообще работа с дочерними окнами отличается от работы с нормальными, Почему Visible не работает.
И как сделать чтобы по клику дочерняя форма открывалась, и нормально закрывалась 


PM MAIL   Вверх
Petro123
Дата 10.8.2007, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Походу вопрос настолько ламерский, что мараться ответом никто не  хочет
PM MAIL   Вверх
ALeXandrK
  Дата 10.8.2007, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 1
Всего: 6



Так ты бы почитал для начала что такое эти MDI...
Зачем ты применяешь скрывание формы, да и при том хочешь, чтобы
она была одна...
Эти окна рассчитаны на то, чтобы их было бесконечно много!
Т.е. если бы тебе нужно было 40 окон, ты бы что их создал, а потом
везде Visible := false написал. Нет так не пойдет.
Создается одна форма шаблон! А в процессе работы ты можешь
этих шаблонов хоть ... создать (пока памяти хватает).

Твоя главная ошибка: нужно не делать видимой/невидимой дочернюю форму,
а создавать/уничтожать её.
Т.е.
На кнопке к-нибудь Новое пишешь обработчик события OnClick:
Код

begin
  Application.CreateForm(TForm2, Form2);
end;


Для Form2 пишешь обработчик события OnClose:
Код

begin
  Action := caFree;
end;


Цитата

Эту проблему решаю так


Ты ее не решаешь, а создаешь!.
...подумай что делает Visible и caFree с формой???!!!



--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
Petro123
Дата 11.8.2007, 07:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Да торможу чего то я, спасибо за советы
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0414 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.