Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];




Вниз

Форма на весь экран 


MK   (2002-02-16 18:28) [0]

Приветствую! Подскажите, пожалуйста, как развернуть форму на весь экран (fullscreen) и чтобы она была поверх всех.



MK   (2002-02-16 18:54) [1]

Забыл уточнить... Форма должна "перекрыть" панель задач Windows и окна других прог, установленных поверх остальных.



LLL   (2002-02-16 19:52) [2]

FormStyle fsStayOnTop

procedure TForm1.FormCreate(Sender: TObject);
begin
Top:=0;
Left:=0;
Height:=Screen.Height;
Width:=Screen.Width;
end;



Yr2   (2002-02-16 20:55) [3]

еще проще: установить свойство формы WindowState:=wsMaximized;
см. также свойство Position



MK   (2002-02-16 21:49) [4]

К сожалению не работает ни то не другое. Нужно, чтобы форма была поверх панели задач Windows, поверх ВСЕХ окон всех приложений. Что-то слышал про SetWindowPos, но как и его ее использовать - не знаю.



panov (M)   (2002-02-16 22:16) [5]

Как вариант:
MainForm.Width := Screen.Width;
MainForm.Height := Screen.Height;

по таймеру выполнять:
SetWindowPos
SetActiveWindow
Application.Restore



MK   (2002-02-16 22:29) [6]

Этот "как вариант" как раз развернет форму на весь экран, но не накроет панель задач (это и требуется).



Набережных С.   (2002-02-16 22:39) [7]

SetWindowPos(Handle,HWND_TOPMOST,0,0,Screen.Width,Screen.Height,0);


BorderStyle:=bsNone.



MK   (2002-02-16 22:47) [8]

SetWindowPos поместил в OnCreate, в результате панель задач все таки осталась наверху - не пойму в чем дело...



Набережных С.   (2002-02-16 22:58) [9]

Попробуй "посадить" в OnShow.



MK   (2002-02-16 23:03) [10]

"Посадил" в OnShow - ничего... Буду дальше думать, наверно я достал всех уже...



Набережных С.   (2002-02-16 23:24) [11]

Проверь еще WindowState := wsNormal



panov (M)   (2002-02-16 23:26) [12]

>MK (16.02.02 22:29)
С чего это он не перекроет панель задач?



panov (M)   (2002-02-16 23:27) [13]

И проверь вот это пример:
SetWindowPos(Application.MainForm.Handle,HWND_TOPMOST,0,0,Screen.Width,Screen.Height,SWP_SHOWWINDOW);
SetActiveWindow(Application.MainForm.Handle);
Application.Restore;



Almaz   (2002-02-16 23:28) [14]

Попробуйте такой вариант:
Для формы устанавливаем:
BorderStyle := bsNone;
FormStyle := fsStayOnTop;


Затем в обработчике OnCreate пишем:
procedure TForm1.FormCreate(Sender: TObject);
begin
WindowState := wsMaximized;
end;


Получаем форму на весь экран и поверх всего, что можно.

Удачи.



Набережных С.   (2002-02-16 23:30) [15]

>Almaz © (16.02.02 23:28)

IMHO ничего не получаем.



Almaz   (2002-02-16 23:41) [16]

>Набережных С.
А вы проверьте сначала...



Набережных С.   (2002-02-16 23:50) [17]


> Almaz © (16.02.02 23:41)
> >Набережных С.
> А вы проверьте сначала...


Да не требуется - и так ясно. А Вы проверьте.



panov (M)   (2002-02-16 23:50) [18]

>Almaz © (16.02.02 23:41)
Могут быть и другие подобные формы... У других приложений...
В этом случае может и не получиться.



Набережных С.   (2002-02-16 23:57) [19]


> panov (M) (16.02.02 23:50)


Любая форма другого приложения может перекрыть такое окно.



panov (M)   (2002-02-17 00:04) [20]

>Набережных С. (16.02.02 23:57)
У меня эту форму никакая другая перкрыть не может.
К тому же выполняется ээтот ког в обработчике таймера...



Набережных С.   (2002-02-17 00:13) [21]

Иду пробовать



Almaz   (2002-02-17 00:14) [22]

>Набережных С. (16.02.02 23:50)
>Да не требуется - и так ясно. А Вы проверьте.
Слишком вы самоуверены. Потрудитесь все-таки сначала проверять, потом говорить.



Набережных С.   (2002-02-17 00:37) [23]

>Almaz ©
>panov (M)
Приношу извинения и посыпаю голову пеплом! Большой сюрприз для меня, надо будет разобраться.



Pat   (2002-02-17 00:55) [24]

Вроде работает:

procedure TForm1.FormCreate(Sender: TObject);
var Rect:TRect;
begin
borderstyle:=bsnone;
left:=0;
top:=0;
width:=screen.Width;
height:=screen.Height;
GetWindowRect(handle,Rect);
SetWindowPos(Handle,HWND_TOPMOST,Rect.Left,Rect.Top,Rect.Right-Rect.Left,Rect.Bottom-Rect.Top, SWP_SHOWWINDOW);
end;



LLL   (2002-02-17 14:49) [25]

Странно, я проверял свой вариант.
Работает.
А вот в след. не перекывается панель задач.



MK   (2002-02-17 18:12) [26]

>Pat Спасибо! Работает!!!
Всем спасибо, кто отозвался!



Almas   (2002-02-19 06:05) [27]

а что если воспользоваться своиством формы align:=alClient




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.75 MB
Время: 0.043 c
1-19218           Lokk                  2002-02-19 14:45  2002.03.07  
Ttimer


6-19288           greenrul              2001-12-21 17:36  2002.03.07  
Помогите с отсылкой POST из программы в скрипт


14-19324          SES                   2002-01-22 17:08  2002.03.07  
:)


14-19349          Лана Розанова         2002-01-18 13:38  2002.03.07  
Компоненты


14-19348          Сержик                2002-01-24 15:59  2002.03.07  
А чё, правда, что Delphi6 на русском языке бывает?