Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизОкно поверх всех окон Найти похожие ветки
← →
webpauk (2004-05-11 15:25) [0]
SetWindowPos(wnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);
- годится только для главной формы
← →
webpauk (2004-05-11 15:27) [1]а для неглавной?
какие будут мнения?
← →
webpauk (2004-05-11 15:37) [2]FormStyle:=fsStayOnTop - тоже не годится
← →
WebErr © (2004-05-11 15:46) [3]
> webpauk (11.05.04 15:37) [2]
Почему?
← →
webpauk (2004-05-11 15:47) [4]а ты попробуй
← →
WebErr © (2004-05-11 15:51) [5]Вы пробуете MDIChild загнать в StayOnTop? :)
← →
webpauk (2004-05-11 15:57) [6]какой MDIChild?
formstyle = (fsMDIChild, fsMDIForm, fsNormal, fsStayOnTop)
можно только что-либо одно
MainForm устанавливается в StayOnTop, остальные формы - нет
← →
Sur © (2004-05-11 15:58) [7]SetForegroundWindow(Handle) или
BringWindowToTop(Handle)
← →
ssk © (2004-05-11 16:14) [8]SetWindowPos(handle, hwnd_topmost, 0, 0, 0, 0, swp_nomove or swp_nosize);
← →
webpauk (2004-05-11 16:17) [9]>ssk
ну я же в начале уже говрил, что это не канает для второстепенных окон. Проверь прежде чем советовать
← →
ssk © (2004-05-11 16:31) [10]ок, тогда давай так попробуй:
procedure SetAsMainForm(Form: TForm);
var
P: Pointer;
begin
P:=@Application.Mainform;
Pointer(P^):=Form;
end;
и в OnShow нужной формы выполни этот код
← →
ssk © (2004-05-11 16:34) [11]а за этой процедурой сразу и SetWindowPos(handle, hwnd_topmost, 0, 0, 0, 0, swp_nomove or swp_nosize);
З.Ы. у меня работает
← →
webpauk (2004-05-11 16:49) [12]>ssk спсб
← →
Игорь Шевченко © (2004-05-11 23:41) [13]webpauk (11.05.04 16:17)
Для того, чтобы это работало для неглавной формы, форма должна иметь Parent HWND_DESKTOP и иметь стиль WS_POPUP. Все это задается в CreateParams у формы.
ЗЫ: Я пробовал.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c