Определить размера рабочей области Desktop'а |
Previous Top Next |
Иногда важно знать, какую часть экрана можно занимать, не перекрывая тем самым такие окна, как TaskBar. Эта программа разворачивает окно на всю рабочую область Desktop'а.
Code: |
procedure TForm1.Button1Click(Sender: TObject); var r : TRect; begin SystemParametersInfo(SPI_GETWORKAREA, 0, Addr(r), 0); Form1.Left := r.Left; Form1.Top := r.Top; Form1.Width := r.Right - r.Left; Form1.Height := r.Bottom - r.Top; end; |
©Drkb::01829
Автор советов: Даниил Карапетян
e-mail: delphi4all@narod.ru
Автор справки: Алексей Денисов
e-mail: aleksey@sch103.krasnoyarsk.su
Воспользуйтесь функцией SystemParametersInfo(), переслав ей в качестве параметров - SPI_GETWORKAREA и адрес структуры типа TRect, куда будут передан полученный результат:
Code: |
procedure TForm1.Button1Click(Sender: TObject); var r: TRect; begin SystemParametersInfo(SPI_GETWORKAREA, 0, @r, 0); Memo1.Lines.Add(IntToStr(r.Top)); Memo1.Lines.Add(IntToStr(r.Left)); Memo1.Lines.Add(IntToStr(r.Bottom)); Memo1.Lines.Add(IntToStr(r.Right)); end; |
©Drkb::01830
DelphiWorld 6.0
Code: |
{ **** UBPFD *********** by delphibase.endimus.com **** >> Получение координат области Рабочего стола, не скрытой Панелью задач
Зависимости: Windows Автор: Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург Copyright: Dimka Maslov Дата: 4 ноября 2002 г. ***************************************************** }
function GetDesktopRect: TRect; var RgnDesktop, RgnTrayWnd: HRGN;
function CreateWindowRgn(Handle: HWND): HRGN; var R: TRect; begin GetWindowRect(Handle, R); with R do Result := CreateRectRgn(Left, Top, Right, Bottom); end;
begin RgnDesktop := CreateWindowRgn(GetDesktopWindow); try RgnTrayWnd := CreateWindowRgn(FindWindow('Shell_TrayWnd', '')); try CombineRgn(RgnDesktop, RgnDesktop, RgnTrayWnd, RGN_DIFF); GetRgnBox(RgnDesktop, Result); finally DeleteObject(RgnTrayWnd); end; finally DeleteObject(RgnDesktop); end; end; |
©Drkb::01831