![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поверх всех окон [D6, Win2k]
badaxe © (2003-01-24 14:46:00)Как сделать так чтоб форма моя появлялась из tray поверх всех остальных открытых окон?
Спасибо.
Palladin (2003-01-24 15:10:00) [1]2 Андрей Сенченко
у меня окно при Application.Restore после
ShowWindow(Application.HANDLE,SW_HIDE)
не всегда выходило на передний план.
Приходилось именно BringToFront делать.
Код восстановления окна на экране (если конечно на нем нет окон Always on top)
ShowWindow(Application.HANDLE,SW_SHOW);
Application.Restore;
Application.BringToFront;
Андрей Сенченко (2003-01-24 15:02:00) [2]На самом деле если Ты активизируешь приложение на экран из трея - его окно само по себе встанет поверх всех. Если же Тебе нужно сделать "Совсем поверх всех и там оставить как в аське" ...
Вот так сделано у меня ( по клику кнопки - поверх всех или на панель ):
procedure TFmMain.BtnWindowStyleClick(Sender: TObject);
begin
If BtnWindowStyle.Caption = "Поверх всех"
Then
Begin
Setwindowpos( Application.MainForm.Handle,
HWND_TOPMOST,
Application.MainForm.Left,
Application.MainForm.Top,
Application.MainForm.Width,
Application.MainForm.Height,
SWP_SHOWWINDOW);
BtnWindowStyle.Caption := "На панель"
End
Else
Begin
Setwindowpos( Application.MainForm.Handle,
HWND_BOTTOM,
Application.MainForm.Left,
Application.MainForm.Top,
Application.MainForm.Width,
Application.MainForm.Height,
SWP_SHOWWINDOW);
BtnWindowStyle.Caption := "Поверх всех"
End;
end;
Андрей Сенченко (2003-01-24 14:59:00) [3]в FAQ есть совершенно роскошный пример
Palladin (2003-01-24 14:57:00) [4]попробуй
Application.BringToFront;