![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
winapi owner, parent delphi-?
aab © (2004-10-26 21:00:00)В winapi существуют два типа взаимоотношений межу окнам owner и parent , какие аналоги в delphi?
Германн (2004-10-29 03:02:00) [1]2 Юрий Зотов © (28.10.04 07:55) [14]
Ваша выдержка повествует о Dialog Box'ах. А по сабжу с разъяснениями - речь о них не идет.
А в остальном согласен.
Юрий Зотов (2004-10-28 07:55:00) [2]> Германн © (28.10.04 03:46) [13]
> Владелец не может быть закрыт! Владелец - понятие
> невизуальное!
Для компонентов Delphi - да. Для окон Windows - нет. Вот выдержка из справки API (топик Owner Window): " Windows uses the owner to determine the position of the dialog box in the Z order so that the dialog box is always positioned above its owner".
> aab
Если форм всего две, то у одной из них можно просто выставить fsStayOnTop. Если больше, то в каждой можно обрабатывать WM_ACTIVATE (либо повесить обработчик на Screen.OnActiveFormChange или на Application.OnMessage) и принудительно выставлять нужный Z-order (SetWindowPos).
Германн (2004-10-28 03:46:00) [3]А может заменишь формы на компоненты?
На одну форму кинешь две панели, на котороые разместишь элементы ввода?
Как ни щелкай нижняя панель никогда не станет верхней и наоборот.
А вообще в
aab (26.10.04 21:00)
В winapi существуют два типа взаимоотношений межу окнам owner и parent , какие аналоги в delphi?
aab (26.10.04 21:34) [2]
Мне надо чтобы было как в owner в winapi, т.е чтобы окно полноценное, но было только одно ограниение-владелец ВСЕГДА зарыт теми окнами, чем он владеет.
полная белиберда!
Владелец не может быть закрыт! Владелец - понятие невизуальное! Закрыт может быть только родитель! Или его "дочернее окно".
aab (2004-10-27 14:51:00) [4]>GuAV © (27.10.04 13:25) [11]
>Начально Form1 видна Form2 нет.
>Делаю
>procedure TForm1.Button1Click(Sender: TObject);
>begin
> Form2.ShowModal;
>end;
>и у меня работает Form1 как owner.
Так Form1 недоступна для пользователя, а мне надо чтобы обе были доступны- кнопки нажимать и .т.п.
GuAV (2004-10-27 13:25:00) [5]aab (27.10.04 12:00) [7]
Нет, так формы равноправные, щёлкнеш по form1 она и будет выше form2, а мне нужно щёлкнешь по form1, она фокус ввода возьмёт, е неверх не идёт, так и остаётся частично(ли полностью перекрытой) окном form2.
Начально Form1 видна Form2 нет.
Делаю
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.ShowModal;
end;
и у меня работает Form1 как owner.
Smithson (2004-10-27 12:06:00) [6]MDI-приложение ему нужно.
aab (2004-10-27 12:00:00) [7]>GuAV © (27.10.04 01:05) [5]
>Form2.ShowModal ?
Нет, так формы равноправные, щёлкнеш по form1 она и будет выше form2, а мне нужно щёлкнешь по form1, она фокус ввода возьмёт, е неверх не идёт, так и остаётся частично(ли полностью перекрытой) окном form2.
Это и есть отношение owner в winapi, что окно которым владеют всегда выше в z order по отношению к владельцу.
aab (2004-10-27 12:00:00) [8]Удалено модератором
Примечание: Дубль
aab (2004-10-27 12:00:00) [9]Удалено модератором
Примечание: Дубль
Германн (2004-10-27 03:50:00) [10]2 aab (26.10.04 21:34) [2]
Не советую!
>владелец ВСЕГДА зарыт теми окнами, чем он владеет
Хочешь быть "зарытым"?
GuAV (2004-10-27 01:05:00) [11]
Form2.ShowModal?
jack128 (2004-10-26 22:56:00) [12]может те alCliеnt нужен??
Rouse_ (2004-10-26 22:35:00) [13]Так вроде оно так и работает, или я не до конца понял?
aab (2004-10-26 21:34:00) [14]Мне надо чтобы было как в owner в winapi, т.е чтобы окно полноценное, но было только одно ограниение-владелец ВСЕГДА зарыт теми окнами, чем он владеет.
Rouse_ (2004-10-26 21:25:00) [15]Такие же :)