Форум: "Основная";
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];
ВнизКак поднять окно своего приложения поверх всех окон в win2k. Найти похожие ветки
← →
AVT (2002-03-13 17:54) [0]Привет всем!
Есть до неприличия избитый вопрос: как поднять окно своего приложения поверх всех окон (win2k). Все примеры из win98 не работают.
Есть просто форма и на ней таймер (1 сек.). В таймере надо просто поднять окно. Перепробовал кучу вариантов, в т.ч.:
1.
procedure TForm1.Timer1Timer(Sender: TObject);
var
OldTimeOut: DWORD;
hWnd: Integer;
begin
hWnd := GetForegroundWindow;
if hWnd = Handle then Exit;
SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @OldTimeOut, 0);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, Pointer(000), 0);
SetForegroundWindow(Handle);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, Pointer(OldTimeOut), 0);
end;
2.
procedure TForm1.CreateParams(var CreateParams: TCreateParams);
begin
inherited CreateParams(CreateParams);
CreateParams.ExStyle := CreateParams.ExStyle or WS_EX_TOPMOST;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Form1.SetFocus;
end;
3.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Application.Restore;
Application.BringToFront;
end;
4.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ShowWindow(Handle, sw_ShowNormal);
SetWindowPos(Handle, HWND_TOP, 0,0,0,0,
SWP_NOSIZE or SWP_NOMOVE);
end;
5. FormStyle = StayOnTop
и т.д.
1, 3 – мигает кнопка на панели задач;
2, 5 – она всегда наверху (так нельзя);
4 – никаких вообще движений.
Заранее благодарен.
AVT.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c