Полноэкранный режим Linux

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

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

Полноэкранный режим Linux

Сообщение Bibmaster » 21.02.2011 05:00:50

Доброго времени суток! Стоит операционная система Linux Ubuntu на ней установлен Lazarus. Подскажите пожалуйста, каким образом можно сделать полноэкранную форму, чтобы при запуске исполняемого файла она разворачивалась на весь экран и закрывала бы нижние панели. Я не силен в этой теме, только начал разбираться, но пару примеров, которые нашел, были описаны для Windows CE, а не для Linux. Помогите пожалуйста!

Добавлено спустя 13 часов 52 минуты 3 секунды:
Ну игры же как-то пишутся? И приложения некоторые разворачиваются на весь экран..никто не знает(((?
Bibmaster
незнакомец
 
Сообщения: 6
Зарегистрирован: 21.02.2011 04:56:17

Re: Полноэкранный режим Linux

Сообщение Ism » 21.02.2011 19:59:04

Я делал окно StayOnTop, и maximized. (В delphi, но и для lazarus должно прокатить)
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Полноэкранный режим Linux

Сообщение WAYFARER » 21.02.2011 20:04:31

Bibmaster писал(а):Ну игры же как-то пишутся? И приложения некоторые разворачиваются на весь экран..никто не знает(((?

Легко и просто!
Код: Выделить всё
BorderStyle := bsNone;
  FormStyle   := fsStayOnTop;
  Left            := 0;
  Top            := 0;
  Height        := Screen.Height;
  Width         := Screen.Width;
 
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Полноэкранный режим Linux

Сообщение Bibmaster » 22.02.2011 09:14:32

А это где прописывать? В каком файле?
Bibmaster
незнакомец
 
Сообщения: 6
Зарегистрирован: 21.02.2011 04:56:17

Re: Полноэкранный режим Linux

Сообщение Polugut » 22.02.2011 10:41:11

Bibmaster писал(а):А это где прописывать? В каком файле?

В событиях, в нажатии кнопки, если надо кнопкой разворачивать окно, или в onCreate формы, если надо сразу при запуске программы.
Но предложенный код не обеспечивает настоящего полноэкранного режима, только разворачивает окно до размеров экрана, и убирает заголовок. В Gnome панели не перекрывает. в KDE не пробовал.
Последний раз редактировалось Polugut 22.02.2011 10:46:34, всего редактировалось 1 раз.
Polugut
новенький
 
Сообщения: 19
Зарегистрирован: 25.02.2010 23:50:29

Re: Полноэкранный режим Linux

Сообщение Maxizar » 22.02.2011 10:41:47

Bibmaster писал(а):А это где прописывать? В каком файле?

Вы меня убили.
Ну чтобы не отбить желание программировать все же напишу.
Код: Выделить всё
  BorderStyle := bsNone;
  FormStyle   := fsStayOnTop;
  Left            := 0;
  Top            := 0;
  Height        := Screen.Height;
  Width         := Screen.Width;

Все это - свойства и параметры формы. Тобишь чтобы форма приложения встала на весь экран, нужно изменить данные свойства таким вот образом.
Теперь по пунктам:
FormStyle .. Width -Открываем любую книгу по Delphi и читаем что это значит, а лучше прочитать всю главу о Forms (Формах)
Где это писать:
1. Если хотите чтобы сразу при старте было во весь экран то в событии: OnCreate. (у формы)
2. Просто скажем при нажатии кнопки:
Код: Выделить всё
procedure TForm1.Button2Click(Sender: TObject);
begin
  BorderStyle := bsNone;
  FormStyle   := fsStayOnTop;
  Left            := 0;
  Top            := 0;
  Height        := Screen.Height;
  Width         := Screen.Width;
end;   

3.Чтобы вернуть все назад:
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
begin
  BorderStyle := bsSizeable;
  FormStyle   := fsNormal;
  Left            := 100;
  Top            := 100;
  Height        := 200;
  Width         := 200;
end;

Ну ширину, и высоты. Я написал на угад... У вас должны наверное быть свои параметры.
Maxizar
постоялец
 
Сообщения: 385
Зарегистрирован: 20.03.2010 19:48:14

Re: Полноэкранный режим Linux

Сообщение WAYFARER » 22.02.2011 16:48:52

Polugut писал(а): В Gnome панели не перекрывает.

Перекрывает, только что попробовал:)
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Полноэкранный режим Linux

Сообщение Bibmaster » 22.02.2011 17:14:45

Maxizar писал(а):Вы меня убили.
Ну чтобы не отбить желание программировать все же напишу.
Ну ширину, и высоты. Я написал на угад... У вас должны наверное быть свои параметры.

Спасибо больше! Сейчас буду пробовать! Очень приятно, что есть люди, которые осознавая со своего уровня всю тупость вопроса не посылают тупо читать ман, а могут толково и внятно объяснить на примере!
Bibmaster
незнакомец
 
Сообщения: 6
Зарегистрирован: 21.02.2011 04:56:17

Re: Полноэкранный режим Linux

Сообщение Maxizar » 22.02.2011 17:47:06

Просто я искренне надеюсь, что и Вы овладев определенным опытом, поможете новичку.
Не я один, отмечали, что именно на этом форуме, пускай не сразу, но все же придет ответ (люди помогут).
Что касается тех, кто говорит погугли, прочитай манн.. Это невежды и …. Просто представьте себе ситуацию, подходит к этому человеку дочка и спрашивает, папа а почему 2+1=3,: Да чему вас только в школе учат… иди вон книга лежит по алгебре… И кто после этого вырастит, девушка с Тверской.

Что же касается, Вас, Вы не сели играть в КС 5 часов кряду, вы не ушли бухать… Вы сели заниматься самоучением, Вы программируете. Так почему вам не помочь… Я сам помню себя, когда написал программу (форма и одна кнопка) и когда жмешь на кнопку форма закрывается, Я прыгал как ребенок… Те люди которые забывают что все так когда то начинали.. для них есть поговорка: Кто не помнит своей истории не имеет будущего.

Но стоит так же оговорится, что не нужно наглеть и задавать уж совсем глупые вопросы или такие скажем как в одной из тем (Мол блин мама заругает напишите курсовую) (Я их хоть и читаю, но игнорирую ответ). Нужно почитать, погуглить, и попытаться разобраться и уже после этого задать вопрос по коду (Конкретный вопрос). А писать: "не могу сделать…", это не хорошо.. Нужно чтобы мы увидели что человек пытался(привести код), но не получилось…
Maxizar
постоялец
 
Сообщения: 385
Зарегистрирован: 20.03.2010 19:48:14

Re: Полноэкранный режим Linux

Сообщение Bibmaster » 22.02.2011 18:13:49

Maxizar писал(а):Просто я искренне надеюсь, что и Вы овладев определенным опытом, поможете новичку.
Не я один, отмечали, что именно на этом форуме, пускай не сразу, но все же придет ответ (люди помогут).

Да, побольше бы таких отзывчивых! И вправду, человек,знающий себе цену никогда не станет загибать пальцы. Вот кстати, сделал, как Вы сказали все супер! Только жаль, что кнопочку свернуть не сделал))) параметр OnTop рулит..Кстати там нет функции OnCreate. Есть отдельный файл в директории проекта, куда вписаны данные о форме, работает только со статическими элементами, а при прописании в нем Screen.Height выдает ошибку компиляции(
Bibmaster
незнакомец
 
Сообщения: 6
Зарегистрирован: 21.02.2011 04:56:17

Re: Полноэкранный режим Linux

Сообщение WAYFARER » 22.02.2011 18:32:54

Bibmaster писал(а):OnCreate.

Это событие которое происходит при создании формы. Нужно создать обработчик этого события. Загляните в инспектор объектов на вкладку события.

Вот, весьма поучительная книжечка "Основы программирования в среде Lazarus", написанная одним из постоянных посетителей данного ресурса, рекомендую.
http://freepascal.ru/download/pdf/osnov ... azarus.pdf
ЗЫ. Жалко, что когда я начинал, еще никаких книг небыло:)

Добавлено спустя 3 минуты 11 секунд:
Ну и вообще бы неплохо почитать что нибудь об ООП...
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Полноэкранный режим Linux

Сообщение Сквозняк » 23.02.2011 19:19:52

WAYFARER писал(а):Вот, весьма поучительная книжечка
Книжка поучительная, использую как справочник, но увы страдает типичной болезнью _учебников_ по программированию на паскале. Даются основы а после тонна примеров решения задач с формулами и графиками - то, чему школьников учат. А чтобы сделать полноценную гуёвину с менюшкой, зазорами между кнопками, несколькими формами и прочим что может понадобиться в реальном проекте - идите в гугл, там вас научат. А потом бывшие паскалисты говорят что на паскале ничего толкового сделать нельзя, он только для обучения. Но ведь можно было прицепить к электронным версиям учебников материал для факультативного изучения а не только то, за что оценки ставят.
Сквозняк
энтузиаст
 
Сообщения: 1123
Зарегистрирован: 29.06.2006 22:08:32

Re: Полноэкранный режим Linux

Сообщение Kitayets » 23.02.2011 19:41:08

Bibmaster писал(а):Доброго времени суток! Стоит операционная система Linux Ubuntu на ней установлен Lazarus. Подскажите пожалуйста, каким образом можно сделать полноэкранную форму, чтобы при запуске исполняемого файла она разворачивалась на весь экран и закрывала бы нижние панели.
<поскипано>

Добавлено спустя 13 часов 52 минуты 3 секунды:
Ну игры же как-то пишутся? И приложения некоторые разворачиваются на весь экран..никто не знает(((?


Ну в общем случае в линуксе окнами занимается оконный менеджер, и если какой-либо конкретный оконный менеджер не хочет чтоб окна перекрывали панели - вы их не перекроете.

Тут нужно использовать функции конкретной системы - и такой код естественно не может быть кросс платформенным (т.е. под widows можно такое поведение окна получить используя winapi в Linux, возможно, используя низкоуровневые интерфейсы X Window System или api оконных менеджеров). Что касается перехода в полноэкарнный режим, как это делают игры, то это тоже делается различно на разных системах.
Но существуют кросс платформенные графические библиотеки которые поддерживают различные системы - можно воспользоваться ими. самые известные это openGL и SDL.
Kitayets
постоялец
 
Сообщения: 171
Зарегистрирован: 05.05.2010 21:15:24

Re: Полноэкранный режим Linux

Сообщение Protopopulus » 23.02.2011 20:31:31

Если в Linux делать полноэкранный режим, то надо использовать возможности конкретного WM, а не stayOnTop-ы. Так приложение будет корректно работать в системе, не крашась и само не вызывая проблем.
Аватара пользователя
Protopopulus
новенький
 
Сообщения: 24
Зарегистрирован: 25.11.2010 09:58:07


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 38

Рейтинг@Mail.ru
cron