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

Вниз

Подчиненные окна   Найти похожие ветки 

 
Heretic ©   (2004-06-23 17:12) [0]

У меня есть главное окно FormStyle=fsMDIForm и есть подчиненная ему форма FormStyle=fsMDIChild. При запуске открываются сразу оба окна, а мне надо, чтобы подчиненное окно открывалось только по какому-либо событию (нажатие кнопки например). Для этого я убрал из окна проекта строку "Application.CreateForm(TForm2,Form2);" А в событии "OnClick" пишу "Form2:=TForm2.Create(Self);". В событии Form2.OnClose пишу "Form2.Free". Вроде все начинает работать, но! Теперь я не могу открыть форму Form2 модально. А мне необходимо выполнить по событию "OnClick" определенные действия, передать управление в Form2, затем по закрытию Form2 продолжить выполнение действий "OnClick".


 
ламер ©   (2004-06-23 17:26) [1]

э-э-э... насколько я понимаю, MDI-child формы не могут быть модальными. именно потому что они MDI-child.


 
Heretic ©   (2004-06-23 17:35) [2]

А как же тогда?
Мне необходимо:

Procedure TForm1.OnClick....
begin
<че-то делаем>
Form2=TForm2.Create(Self)
<че-то делаем>
end;

Другими словами необходимо в первой форме выполнить определенные операции, запустить Form2, выполнить действия в Form2 (настройка параметров), продолжить выполнение операций в Form1 c учетом выполненных действий из Form2.


 
TUser ©   (2004-06-23 18:21) [3]

Если она модальная - так ли важно ей быть к тому же MdiChild? Все равно, другие формы приложения не активны, пока эта шоу модал.


 
ламер ©   (2004-06-23 18:28) [4]

> Heretic ©   (23.06.04 17:35) [2]
> А как же тогда?

Form2.FormStyle := fsNormal;


 
Heretic ©   (2004-06-23 19:15) [5]

Это все замечательно, но мне желательно, чтобы окно Form2, находилось в окне Form1. Не хотел описывать ситуацию полностью...
Ситуация:

Назначение программы - работа с БД
Есть главное окно (Form0) с менюшкой.
Одно подменю вызывает дочернее окно "Факультеты" (Form2), где находится база данных по факультетам.
Другое подменю вызывает дочернее окно "Кафедры" (Form1), где находится база данных по кафедрам, причем БД "Кафедры" содержит ключ из БД "Факультеты" (Типа к какому факультету относится кафедра).
И для выбора ключа факультета в БД "Кафедры" я хочу открывать окно с БД "Факультеты" для выбора.

Помогите, а?


 
Alexey Leonchik   (2004-06-30 06:15) [6]

1. Убрать форму из автоматически загружаемых: Project Options -> вкладка Forms

2. Обрабатываем любое событие, например щелчок по меню:
////////////////
// Общий журнал
procedure TfMain.mnuMainJurClick(Sender: TObject);
begin
   if not Assigned(fJurnal) then // если не создана
   begin
    fJurnal := TfJurnal.Create(self); // создание формы
       fJurnal.Show;
   end
   else // если создана
       MessageDlg(LISHNEE_OKNO, mtInformation, [mbOk], 0);
end;

А заодно запрещаем открывать два одинаковых окна.

3. В форме (журнала в моем случае - fJurnal) в событии OnClose
// освобождение экземпляра формы при ее закрытии
Action := caFree;

4. В форме (журнала в моем случае - fJurnal) в событии OnDestroy
// сброс значения переменной при уничтожении формы
fJurnal := Nil;


 
ЮЮ ©   (2004-06-30 06:28) [7]

>И для выбора ключа факультета в БД "Кафедры" я хочу открывать окно с БД "Факультеты" для выбора

А не лучше просто использовать DBLookupCombo на форме "Кафедры", чеи "открывать окно с БД "Факультеты" для выбора", тем более, что поведение при работе с окном "Факультеты" будет разным, а визуально они отличаться не будут, что вряд ли пойдет на пользу юзверю


 
Defunct ©   (2004-06-30 08:39) [8]

2 Heretic: Запускаем MS-Access, классический пример MDI приложения. Нет никаких модальных MDI Child, модальные окна выполнены в виде диалогов.


 
Ozone ©   (2004-06-30 09:25) [9]

Visible := false у MDIChild



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

Форум: "Основная";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.034 c
14-1087559102
Dmitriy O.
2004-06-18 15:45
2004.07.11
А вот хотите Upgrade now Delphi !?


3-1086756262
maxi
2004-06-09 08:44
2004.07.11
SQL запрос


8-1082696342
_newver_
2004-04-23 08:59
2004.07.11
DirectShow


14-1087986481
Tornado
2004-06-23 14:28
2004.07.11
Программы не запускаются....что за глюк???


3-1087281540
AlexXn
2004-06-15 10:39
2004.07.11
Картинки в БД





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский