TaskBar

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
grigoreo
постоялец
Сообщения: 195
Зарегистрирован: 10.03.2009 14:43:43
Откуда: С нашей Раши

TaskBar

Сообщение grigoreo »

Кто знает подскажите, что в Линуксе что в Виндовсе есть понятие панели задач, (может не так выражусь под Гномом их 2 сверху снизу),
есть обьект Screen у него 2 свойства Width и height они возращают размеры экрана,

вопрос а как определить размеры экрана без пространства занимаемое панелями, т.е размеры самой рабочей части экрана, было бы некрасиво если бы форма уходила за края экрана
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

Form1.WindowState := wsMaximized; - может быть как вариант решения проблемы.

Добавлено спустя 59 минут 59 секунд:
Вот пример, который показывает высоту Десктопа и максимальную высоту окна (можно использовать при старте программы. Окно появляется на доли секунды)

Код: Выделить всё

procedure ShowH;
var ff: TForm;
    ii: integer;
begin
  ff := TForm.Create(Application);
  ff.WindowState:= wsMaximized;
  ff.Show;
  ff.Hide;
  ii := ff.Height;
  FreeAndNil(ff);
  ShowMessage('Desktop = ' + IntToStr(Screen.DesktopHeight) + '; MaxWindowHeight = ' + IntToStr(ii));
end;

У меня (KDE) получилось соответственно Desktop = 800; MaxWindowHeight = 737
Аватара пользователя
grigoreo
постоялец
Сообщения: 195
Зарегистрирован: 10.03.2009 14:43:43
Откуда: С нашей Раши

Сообщение grigoreo »

VirtUX писал(а):Form1.WindowState := wsMaximized; - может быть как вариант решения проблемы.[/b]


Как вариант подходит ))
Павел Ишенин
постоялец
Сообщения: 475
Зарегистрирован: 24.03.2007 09:16:52

Сообщение Павел Ишенин »

В Lazarus 0.9.27 есть у формы свойство Monitor. Также у Screen есть Monitors. У этого класса есть 2 свойств BoundsRect и WorkareaRect. Вам нужно второе свойство.

И, наконец, чтобы форма не вылазила за монитор вы можете вызвать Form1.MakeFullyVisible(Form1.Monitor, True);
Ответить