Форум: "Начинающим";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];
ВнизМногооконная программаю. Модал - немодал Найти похожие ветки
← →
Стас (2007-07-04 11:16) [0]Ситуация такая: есть главная форма - FormMain, несколько форм, вызываемых из главной в модальном режиме - FormM1, FormM2 и т.д. И есть форма - FormSet, которая может быть вызвана из любой из выше перечисленных форм в немодальном режиме. Т.е., она должна находиться на экране и из любой формы в нее можно войти.
Сначала сделал просто:procedure TFormMain.Menu_settingsClick(Sender: TObject);
begin
FormSet.Show;
end;
И аналогично в модальных формах. Но тогда с формой FormSet можно было работать только из того окна, где она была Show. Если закрыть ее из этого окна и открыть из другого, она работала из другого.
Тогда я сделал так: перед обращением к модальному окну закрывал FormSet, а при открытии модального окна вновь его "показывал".
procedure TFormMain.ButM1Click(Sender: TObject);
begin
...
if FormSet.Showing then begin FormSet.Close; FormSet.tag := 1; end
else FormSet.tag := 0;
FormM1.ShowModal;
...
end;
А в модуле M1:
procedure TFormM1.FormShow(Sender: TObject);
begin
...
if FormSet.tag = 1 then FormSet.Show;
...
end;
Может это можно сделать как-то по-другому?
← →
Правильный Вася (2007-07-04 11:27) [1]каша какая-то, ага, с борщом и компотом
получаются помои
ЗЫ не делай так
← →
{RASkov} © (2007-07-04 15:35) [2]> [0] Стас (04.07.07 11:16)
Модальное окно оно для того и модальное, чтобы отбирать фокус у всех...
В твоем слачае
> есть главная форма - FormMain, несколько форм, вызываемых
> из главной в модальном режиме - FormM1, FormM2 и т.д. И
> есть форма - FormSet, которая может быть вызвана из любой
> из выше перечисленных форм в немодальном режиме
можно поступить иначе.... показывать все бывшие модальные формы в немодальном виде(Show), а на время их показа отключать главную (MainFormEnabled:=False).... Возможно еще и сделать их fsStayOnTop (поверх всех), ну и ФормСет тоже фсСтэйОнТоп...
А твой способ это извращение... можно так же простым вызовом рекреатевнд решить эту проблему... но, имхо, не верное это....
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c