![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Always on Top [D5, Win2k]
id_privin © (2002-10-14 12:42:00)Есть приложение. В нем дофига форм. Одна из них навигатор для всех остальных. Как сделать так что-бы эта форма всегда висела поверх остальных (как аська или таск менаджер). Как это сделать для формы которая отдельное приложение очевидно.
Но как это сделать в рамках одного приложения ???
Игорь Шевченко (2002-10-14 15:07:00) [1]В кладовке, в разделе "Готовые программы" лежит программа StayOnTop - может, чем поможет ?
saxon (2002-10-14 14:38:00) [2]это для "окон других приложений" (Song © (14.10.02 14:28))
procedure Form1.CreateParams(var Params: TCreateParams);
begin
inherited;
with Params do begin
Style := (Style or WS_POPUP) and (not WS_CHILD);
WndParent := HWND_DESKTOP;
end;
end;
procedure Form1.FormActivate(Sender: TObject);
begin
SetWindowPos (Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE OR SWP_NOSIZE);
end;
Song (2002-10-14 14:28:00) [3]Для того чтобы быть выше форм своего проекта достаточно fsStayOnTop. Для окон других приложений нужно использовать SetWindowPos()
[NIKEL] (2002-10-14 13:07:00) [4]а если не будет работать Крот(14.10.02 12:59)
то добавь Application.RestoreTopMosts в обработчик события формы OnPaint
Крот (2002-10-14 12:59:00) [5]FormStyle := fsStayOnTop;
id_privin (2002-10-14 12:57:00) [6]Вопрос вроде как можно переформулироть так :
Как показать неактивную форму выше активной? Если это сделать нельзя, то как в одном приложении сделать две активных формы?
AL2002 (2002-10-14 12:52:00) [7]Чё-то там Parent Top вроде.