Показать полную графическую версию : [решено] "Склеенные" формы
Malfatto
16-08-2011, 16:51
В моей программе имеется несколько форм, в том числе и динамических. При этом каждая форма отображается в панели задач, однако, если из панели задач "достать" лишь одну форму - на передний план выходят все формы программы, а не только та, что нужна.
Как это исправить?
поподробнее, какой язык, какая среда программирования, пример кода?
Malfatto
16-08-2011, 17:47
ferget,
Delphi
язык, написано в заголовке
среда программирования - delphi 2010
пример кода »
создаём 2 формы, Form1 и Form2. для Form1:
procedure TForm1.FormShow(Sender: TObject);
begin
Form2.Show;
end;
для Form2
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.ExStyle:=Params.ExStyle or WS_EX_APPWINDOW;
end;
результат - обе формы на таскбаре, при клике по одной вторая также выносится "вперёд".
здесь посмотрите
http://delphi.about.com/od/formsdialogs/l/aa073101b.htm
Malfatto
16-08-2011, 18:41
ferget,
Params.WndParent:=GetDesktopWindow;
помогло, спасибо :)
и что бы не создавать новую тему, спрошу здесь.
в Windows 7 есть такая фишка - можно на таскбаре нажать на кнопку программы средней кнопкой мыши (колёсиком), после чего открывается новый экземпляр программы.
однако, у меня оно не срабатывает, т.е. нажатие не даёт никакого эффекта.
хотя, если программу закрепить на таскбаре, то всё отлично работает.
такая проблема со всеми программами на delphi.
Delirium
16-08-2011, 19:08
хотя, если программу закрепить на таскбаре, то всё отлично работает. »
Такое поведение у многих программ, не только с делфи. Точно также ведет себя IE 9 - пока не закрепишь, новые экземпляры не открываются.
Malfatto
16-08-2011, 19:16
Delirium, у меня с IE9 всё отлично, только что проверил.
кстати, заметил, что запуская программу через ярлык, то всё в порядке.
думаю, это баг операционки, а не delphi :)
всем спасибо
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.