Помогите победить ActiveForm
Модератор: Модераторы
- Vesyolyi
- новенький
- Сообщения: 26
- Зарегистрирован: 10.09.2008 12:09:50
- Откуда: г. Слободской
- Контактная информация:
Помогите победить ActiveForm
Добрый день! ... может кто подскажет толкового, а то своими силами не могу сладить, вообщем создаю 2 формы, одна при запуске атотматический создается (Application.CreateForm(TForm1, Form1);), вторую к примеру создаю по нажатии на кнопку
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2:=TForm2.Create (form1);
form2.Show;
end;
на второй форме есть компонент DateEdit1: TDateEdit;
так вот суть проблемы в том что при выборе даты, окно календаря отрисовывается на первой форме (да и не только с TDateEdit комопонетом так происходит, с любым выпадающим списком то же самое), я так понимаю главное окно всеравно активное остается, как это можно победить (пробовал и form2.SetFocus; и SetActiveWindow(form2.Handle ; - не помогло). Кто с таким уже сталкивался и нашел решение данного вопроса, прошу помочь или объяснить как сделать по другому....
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2:=TForm2.Create (form1);
form2.Show;
end;
на второй форме есть компонент DateEdit1: TDateEdit;
так вот суть проблемы в том что при выборе даты, окно календаря отрисовывается на первой форме (да и не только с TDateEdit комопонетом так происходит, с любым выпадающим списком то же самое), я так понимаю главное окно всеравно активное остается, как это можно победить (пробовал и form2.SetFocus; и SetActiveWindow(form2.Handle ; - не помогло). Кто с таким уже сталкивался и нашел решение данного вопроса, прошу помочь или объяснить как сделать по другому....
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
Странная проблема. Что за версия lazarus, widgetset?
Такого нету...
Всё адекватно работает, окна там, где надо, виджет gtk2
Может это чисто win32 прикол?
lazarus и fpc trunc
Может это чисто win32 прикол?
lazarus и fpc trunc
Ха... Действительно, под win32 есть такая штука. Только там всё ещё хуже - окошко календаря выбора даты появляется отдельно, не привязанное ни к одной форме. Это можно проверить сняв скриншот текущего окна - Alt+PrtScr.
А вот с выпадающим списком всё в порядке - расположен там где надо.
А вот с выпадающим списком всё в порядке - расположен там где надо.
не только с win32. QT 4.5 тоже открывает выбор даты в отдельном окне.
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
Проблема в свойстве ShowInTaskbar = True и том, что в настоящее время LCL не поддерживает Popup формы.
Более детальное описание проблемы:
Когда ShowInTaskbar = False, то Parent окна windows = Win32Widgetset.AppHandle (аналог Application.Handle в delphi)
Когда ShowInTaskbar = Tue, То Parent окна windows = 0
Мы имеем:
MainForm (Parent = AppHandle)
Form2 (Parent = 0)
Фома для календаря (Parent = AppHandle)
Когда показывается форма календаря то активируется их общий Parent и естественно вся группа этих форм. При этом другие группы окон уходят на задний план.
Более детальное описание проблемы:
Когда ShowInTaskbar = False, то Parent окна windows = Win32Widgetset.AppHandle (аналог Application.Handle в delphi)
Когда ShowInTaskbar = Tue, То Parent окна windows = 0
Мы имеем:
MainForm (Parent = AppHandle)
Form2 (Parent = 0)
Фома для календаря (Parent = AppHandle)
Когда показывается форма календаря то активируется их общий Parent и естественно вся группа этих форм. При этом другие группы окон уходят на задний план.
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
Убрать ShowOnTaskbar у формы2
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
Добавить меню Окна в главную форму.
