Полноэкранный режим Linux
Модератор: Модераторы
Полноэкранный режим Linux
Доброго времени суток! Стоит операционная система Linux Ubuntu на ней установлен Lazarus. Подскажите пожалуйста, каким образом можно сделать полноэкранную форму, чтобы при запуске исполняемого файла она разворачивалась на весь экран и закрывала бы нижние панели. Я не силен в этой теме, только начал разбираться, но пару примеров, которые нашел, были описаны для Windows CE, а не для Linux. Помогите пожалуйста!
Добавлено спустя 13 часов 52 минуты 3 секунды:
Ну игры же как-то пишутся? И приложения некоторые разворачиваются на весь экран..никто не знает(((?
Добавлено спустя 13 часов 52 минуты 3 секунды:
Ну игры же как-то пишутся? И приложения некоторые разворачиваются на весь экран..никто не знает(((?
Я делал окно StayOnTop, и maximized. (В delphi, но и для lazarus должно прокатить)
Bibmaster писал(а):Ну игры же как-то пишутся? И приложения некоторые разворачиваются на весь экран..никто не знает(((?
Легко и просто!
Код: Выделить всё
BorderStyle := bsNone;
FormStyle := fsStayOnTop;
Left := 0;
Top := 0;
Height := Screen.Height;
Width := Screen.Width;
А это где прописывать? В каком файле?
Bibmaster писал(а):А это где прописывать? В каком файле?
В событиях, в нажатии кнопки, если надо кнопкой разворачивать окно, или в onCreate формы, если надо сразу при запуске программы.
Но предложенный код не обеспечивает настоящего полноэкранного режима, только разворачивает окно до размеров экрана, и убирает заголовок. В Gnome панели не перекрывает. в KDE не пробовал.
Последний раз редактировалось Polugut 22.02.2011 09:46:34, всего редактировалось 1 раз.
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;
Ну ширину, и высоты. Я написал на угад... У вас должны наверное быть свои параметры.
Polugut писал(а): В Gnome панели не перекрывает.
Перекрывает, только что попробовал:)
Maxizar писал(а):Вы меня убили.
Ну чтобы не отбить желание программировать все же напишу.
Ну ширину, и высоты. Я написал на угад... У вас должны наверное быть свои параметры.
Спасибо больше! Сейчас буду пробовать! Очень приятно, что есть люди, которые осознавая со своего уровня всю тупость вопроса не посылают тупо читать ман, а могут толково и внятно объяснить на примере!
Просто я искренне надеюсь, что и Вы овладев определенным опытом, поможете новичку.
Не я один, отмечали, что именно на этом форуме, пускай не сразу, но все же придет ответ (люди помогут).
Что касается тех, кто говорит погугли, прочитай манн.. Это невежды и …. Просто представьте себе ситуацию, подходит к этому человеку дочка и спрашивает, папа а почему 2+1=3,: Да чему вас только в школе учат… иди вон книга лежит по алгебре… И кто после этого вырастит, девушка с Тверской.
Что же касается, Вас, Вы не сели играть в КС 5 часов кряду, вы не ушли бухать… Вы сели заниматься самоучением, Вы программируете. Так почему вам не помочь… Я сам помню себя, когда написал программу (форма и одна кнопка) и когда жмешь на кнопку форма закрывается, Я прыгал как ребенок… Те люди которые забывают что все так когда то начинали.. для них есть поговорка: Кто не помнит своей истории не имеет будущего.
Но стоит так же оговорится, что не нужно наглеть и задавать уж совсем глупые вопросы или такие скажем как в одной из тем (Мол блин мама заругает напишите курсовую) (Я их хоть и читаю, но игнорирую ответ). Нужно почитать, погуглить, и попытаться разобраться и уже после этого задать вопрос по коду (Конкретный вопрос). А писать: "не могу сделать…", это не хорошо.. Нужно чтобы мы увидели что человек пытался(привести код), но не получилось…
Не я один, отмечали, что именно на этом форуме, пускай не сразу, но все же придет ответ (люди помогут).
Что касается тех, кто говорит погугли, прочитай манн.. Это невежды и …. Просто представьте себе ситуацию, подходит к этому человеку дочка и спрашивает, папа а почему 2+1=3,: Да чему вас только в школе учат… иди вон книга лежит по алгебре… И кто после этого вырастит, девушка с Тверской.
Что же касается, Вас, Вы не сели играть в КС 5 часов кряду, вы не ушли бухать… Вы сели заниматься самоучением, Вы программируете. Так почему вам не помочь… Я сам помню себя, когда написал программу (форма и одна кнопка) и когда жмешь на кнопку форма закрывается, Я прыгал как ребенок… Те люди которые забывают что все так когда то начинали.. для них есть поговорка: Кто не помнит своей истории не имеет будущего.
Но стоит так же оговорится, что не нужно наглеть и задавать уж совсем глупые вопросы или такие скажем как в одной из тем (Мол блин мама заругает напишите курсовую) (Я их хоть и читаю, но игнорирую ответ). Нужно почитать, погуглить, и попытаться разобраться и уже после этого задать вопрос по коду (Конкретный вопрос). А писать: "не могу сделать…", это не хорошо.. Нужно чтобы мы увидели что человек пытался(привести код), но не получилось…
Maxizar писал(а):Просто я искренне надеюсь, что и Вы овладев определенным опытом, поможете новичку.
Не я один, отмечали, что именно на этом форуме, пускай не сразу, но все же придет ответ (люди помогут).
…
Да, побольше бы таких отзывчивых! И вправду, человек,знающий себе цену никогда не станет загибать пальцы. Вот кстати, сделал, как Вы сказали все супер! Только жаль, что кнопочку свернуть не сделал))) параметр OnTop рулит..Кстати там нет функции OnCreate. Есть отдельный файл в директории проекта, куда вписаны данные о форме, работает только со статическими элементами, а при прописании в нем Screen.Height выдает ошибку компиляции(
Bibmaster писал(а):OnCreate.
Это событие которое происходит при создании формы. Нужно создать обработчик этого события. Загляните в инспектор объектов на вкладку события.
Вот, весьма поучительная книжечка "Основы программирования в среде Lazarus", написанная одним из постоянных посетителей данного ресурса, рекомендую.
http://freepascal.ru/download/pdf/osnov ... azarus.pdf
ЗЫ. Жалко, что когда я начинал, еще никаких книг небыло:)
Добавлено спустя 3 минуты 11 секунд:
Ну и вообще бы неплохо почитать что нибудь об ООП...
Книжка поучительная, использую как справочник, но увы страдает типичной болезнью _учебников_ по программированию на паскале. Даются основы а после тонна примеров решения задач с формулами и графиками - то, чему школьников учат. А чтобы сделать полноценную гуёвину с менюшкой, зазорами между кнопками, несколькими формами и прочим что может понадобиться в реальном проекте - идите в гугл, там вас научат. А потом бывшие паскалисты говорят что на паскале ничего толкового сделать нельзя, он только для обучения. Но ведь можно было прицепить к электронным версиям учебников материал для факультативного изучения а не только то, за что оценки ставят.WAYFARER писал(а):Вот, весьма поучительная книжечка
Bibmaster писал(а):Доброго времени суток! Стоит операционная система Linux Ubuntu на ней установлен Lazarus. Подскажите пожалуйста, каким образом можно сделать полноэкранную форму, чтобы при запуске исполняемого файла она разворачивалась на весь экран и закрывала бы нижние панели.
<поскипано>
Добавлено спустя 13 часов 52 минуты 3 секунды:
Ну игры же как-то пишутся? И приложения некоторые разворачиваются на весь экран..никто не знает(((?
Ну в общем случае в линуксе окнами занимается оконный менеджер, и если какой-либо конкретный оконный менеджер не хочет чтоб окна перекрывали панели - вы их не перекроете.
Тут нужно использовать функции конкретной системы - и такой код естественно не может быть кросс платформенным (т.е. под widows можно такое поведение окна получить используя winapi в Linux, возможно, используя низкоуровневые интерфейсы X Window System или api оконных менеджеров). Что касается перехода в полноэкарнный режим, как это делают игры, то это тоже делается различно на разных системах.
Но существуют кросс платформенные графические библиотеки которые поддерживают различные системы - можно воспользоваться ими. самые известные это openGL и SDL.
- Protopopulus
- новенький
- Сообщения: 24
- Зарегистрирован: 25.11.2010 08:58:07
Если в Linux делать полноэкранный режим, то надо использовать возможности конкретного WM, а не stayOnTop-ы. Так приложение будет корректно работать в системе, не крашась и само не вызывая проблем.
