Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как развернуть свое окно на весь экран если ;BorderStyle= bsNone?


kofman ©   (2002-11-15 23:08:00) 

Мастера, вопрос такой: какое сообщение надо отослать моему окну (BorderStyle= bsNone) что-бы оно максимизировалось?


kofman   (2002-11-18 14:21:00) [1]

Большое спасибо всем за советы.


Игорь Шевченко   (2002-11-18 12:20:00) [2]

var
WorkArea: TRect;
...
{ Рабочая область экрана }
SystemParametersInfo(SPI_GETWORKAREA,0,Pointer(@WorkArea),0);
...
И изменять размеры окна до этого прямоугольника, например, функцией SetWindowPos


Diamond Cat   (2002-11-18 00:33:00) [3]

а почему обязательно сообщение, можно и через setwindowpos. а размеры области не занимаемой таскбаром можно вычислить используя к примеру APPBARDATA


kofman   (2002-11-18 00:17:00) [4]

Мастера ну помогите как быть?


kofman   (2002-11-17 12:26:00) [5]

Это программа для скачивания web-сайтов (паук).


Николай Быков   (2002-11-17 11:41:00) [6]


> kofman © (17.11.02 11:14)

Не геморрой, а простая лень

+вот что эта программа делает?
Если это что-то вроде: поменять фон рабочего стола и добавить на него кнопки и прочию хрень, то можно сделать и по другому.

Я тебя спрашивал чо эта программа делать будет.


kofman   (2002-11-17 11:14:00) [7]

Да все просто, есть обычное окошко но без бордюра (BorderStyle= bsNone). На всю клиенскую часть окна натянут Image с фоновой картинкой - это и есть моя рабочая форма. Вверху как положено три кнопочки - тоже Image`ы. Одна из них это - развернуть на весь экран. Как вот, окошко хоть и без бордюра, но при развороте должно вести себя как нормальное т.е. не перекрывать таск бар. Лично я вижу только один выход: определить размер таск бара, его положение а уж потом развернуть форму вручную изменяя высоту и ширину формы.... но геморой это, и может криво выйти на разных компах. Может у кого-то еще соображения есть?


Николай Быков   (2002-11-17 07:04:00) [8]

А ты скажи что сделать хочешь, может по-другому это можно сделать


kofman   (2002-11-17 01:13:00) [9]

Большое спасибо за советы и за примеры - все работает. Но вот окошко перекрывает таск бар, а это делать никак нельзя. Как это дело победить?


Nikolay   (2002-11-16 23:27:00) [10]

криво но работает

var
a,b:integer;
begin
SendMessage(Form1.Handle,WM_SYSCOMMAND,SC_MAXIMIZE,0);
a:=form1.Height;
b:=form1.Width;
Form1.BorderStyle:=bsNone;
form1.Height:=a;
form1.Width:=b;


Николай Быков   (2002-11-16 20:12:00) [11]


> kofman © (16.11.02 20:06)
> >Николай Быков спасибо.

Потому что обычное окно имеет бордюры, а если поставить bsNone то бордюров не будет


kofman   (2002-11-16 20:06:00) [12]

>Николай Быков спасибо. А почему если в обычном окне нажать максимизацию, то окно не перекрывает таск бар?


Николай Быков   (2002-11-16 19:08:00) [13]


> kofman © (16.11.02 14:44)

На весь экран так посылать сообщениеSendMessage(Form1.Handle,WM_SYSCOMMAND,SC_MAXIMIZE,0);

А таскбар перекрывать будет, т.к. оно бордюров не имеет.

Щас посмотрю в хелпе по WinAPI. Может есть что-нибудь подходящее для тебя


Nikolay   (2002-11-16 18:09:00) [14]

можно.


kofman   (2002-11-16 14:44:00) [15]

form1.WindowState:=wsMaximized помогло, но окно разворачивается на весь экран и при этом перекрывает таск бар, как быть. Я вообщето думал может PostMessage использовать?


friker!   (2002-11-16 08:59:00) [16]

Примерно так..! form1.BorderStyle:=bsNone;
form1.WindowState:=wsMaximized


AngeL B.   (2002-11-15 23:56:00) [17]

Если изменение свойства WindowState не помогает, то просто поменяй размеры свой формы вручную в соответствие с текущим разрешением экрана (Screen.Width ,Screen.Height);


Наверх

Титульная страница Поиск, карта сайта Написать письмо