Кто знает подскажите, что в Линуксе что в Виндовсе есть понятие панели задач, (может не так выражусь под Гномом их 2 сверху снизу),
есть обьект Screen у него 2 свойства Width и height они возращают размеры экрана,
вопрос а как определить размеры экрана без пространства занимаемое панелями, т.е размеры самой рабочей части экрана, было бы некрасиво если бы форма уходила за края экрана
TaskBar
Модератор: Модераторы
Form1.WindowState := wsMaximized; - может быть как вариант решения проблемы.
Добавлено спустя 59 минут 59 секунд:
Вот пример, который показывает высоту Десктопа и максимальную высоту окна (можно использовать при старте программы. Окно появляется на доли секунды)
У меня (KDE) получилось соответственно Desktop = 800; MaxWindowHeight = 737
Добавлено спустя 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
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);
И, наконец, чтобы форма не вылазила за монитор вы можете вызвать Form1.MakeFullyVisible(Form1.Monitor, True);
