![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как развернуть свое окно на весь экран если ;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);