Помогите победить ActiveForm

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Помогите победить ActiveForm

Сообщение Vesyolyi » 11.05.2009 18:29:48

Добрый день! ... может кто подскажет толкового, а то своими силами не могу сладить, вообщем создаю 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 ; - не помогло). Кто с таким уже сталкивался и нашел решение данного вопроса, прошу помочь или объяснить как сделать по другому....
Аватара пользователя
Vesyolyi
новенький
 
Сообщения: 26
Зарегистрирован: 10.09.2008 12:09:50
Откуда: г. Слободской

Re: Помогите победить ActiveForm

Сообщение Павел Ишенин » 11.05.2009 18:46:39

Странная проблема. Что за версия lazarus, widgetset?
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

Re: Помогите победить ActiveForm

Сообщение Vesyolyi » 11.05.2009 18:48:38

Последная сборка из SVN... работаю под вяндой
Аватара пользователя
Vesyolyi
новенький
 
Сообщения: 26
Зарегистрирован: 10.09.2008 12:09:50
Откуда: г. Слободской

Re: Помогите победить ActiveForm

Сообщение wavebvg » 11.05.2009 20:35:59

Такого нету...
wavebvg
постоялец
 
Сообщения: 354
Зарегистрирован: 28.02.2008 04:57:35

Re: Помогите победить ActiveForm

Сообщение Vesyolyi » 11.05.2009 20:44:48

выкладываю пример исходника
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Vesyolyi
новенький
 
Сообщения: 26
Зарегистрирован: 10.09.2008 12:09:50
Откуда: г. Слободской

Re: Помогите победить ActiveForm

Сообщение wavebvg » 11.05.2009 21:58:32

Всё адекватно работает, окна там, где надо, виджет gtk2
Может это чисто win32 прикол?
lazarus и fpc trunc
wavebvg
постоялец
 
Сообщения: 354
Зарегистрирован: 28.02.2008 04:57:35

Re: Помогите победить ActiveForm

Сообщение Vadim » 12.05.2009 06:28:34

Ха... Действительно, под win32 есть такая штука. Только там всё ещё хуже - окошко календаря выбора даты появляется отдельно, не привязанное ни к одной форме. Это можно проверить сняв скриншот текущего окна - Alt+PrtScr.
А вот с выпадающим списком всё в порядке - расположен там где надо.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Помогите победить ActiveForm

Сообщение VirtUX » 12.05.2009 10:13:40

не только с win32. QT 4.5 тоже открывает выбор даты в отдельном окне.
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 880
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта

Re: Помогите победить ActiveForm

Сообщение Павел Ишенин » 12.05.2009 10:34:25

Проблема в свойстве 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 и естественно вся группа этих форм. При этом другие группы окон уходят на задний план.
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

Re: Помогите победить ActiveForm

Сообщение Vesyolyi » 12.05.2009 19:31:49

И все же вопрос остался открытым, как это дело победить???
Аватара пользователя
Vesyolyi
новенький
 
Сообщения: 26
Зарегистрирован: 10.09.2008 12:09:50
Откуда: г. Слободской

Re: Помогите победить ActiveForm

Сообщение Павел Ишенин » 13.05.2009 03:22:39

Убрать ShowOnTaskbar у формы2
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

Re: Помогите победить ActiveForm

Сообщение Vesyolyi » 18.05.2009 10:42:13

А как быть с навигацией по открытым формам???
Аватара пользователя
Vesyolyi
новенький
 
Сообщения: 26
Зарегистрирован: 10.09.2008 12:09:50
Откуда: г. Слободской

Re: Помогите победить ActiveForm

Сообщение Павел Ишенин » 18.05.2009 12:33:26

Добавить меню Окна в главную форму.
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 19

Рейтинг@Mail.ru