Программирование в X Window средствами Free Pascal
Шрифт:
1.1.10 Лабораторная работа #1 "Основные понятия Xlib"
1. Используя компилятор командной строки, выполните компиляцию примера из п. 1.1 и выполните полученную программу.
2. Настройте интегрированную среду Анюта для работы с кириллицей и выполните компиляцию в ней предыдущей программы.
3. На основе примера напишите программу, которая при нажатии клавиши мыши пишет сообщение Pressed, а при отпускании - Released.
4. Используя функции XFlush / XSync и delay, напишите программу без цикла обработки сообщений, отображающую черное окно размером 100х100 пикселей в течение 5 секунд.
1.2 Текст и графика
В данном разделе описываются возможности, которые имеет программист для вывода текста и произвольных графических изображений. Особенностью X является то, что рисовать можно не только в окне, но и в специально подготовленной области памяти. Данная область называется картой пикселей и идентифицируется целым числом, имеющим тип TPixmap. Карта толщиной в один бит имеет специальное название - битовая.
1.2.1 Графический контекст
Прежде чем начать работу с графикой, программа должна выделить себе специальную структуру данных и получить указатель на нее. Эта структура называется графическим контекстом (Graphic Context (GC)). Указатель на GC используется в качестве одного из параметров при вызове "рисующих" функций X. Графический контекст содержит ряд атрибутов, влияющих на отображение объектов: текста, линий, фигур и др. Выделенный GC должен быть освобожден до завершения работы программы.
Графический контекст создается процедурой XCreateGC, имеющей следующий прототип:
Первый аргумент - это указатель на структуру типа TDisplay, который программа получает после вызова XOpenDisplay; второй - идентификатор окна (или карты пикселей), в котором программа будет рисовать; третий - битовая маска, определяющая, какие атрибуты GC задаются; последний аргумент - структура типа TXGCValues, определяемая следующим образом:
Третий Генерал: Тома I-II
1. Третий Генерал
Фантастика:
городское фэнтези
попаданцы
аниме
сказочная фантастика
рейтинг книги
Двенадцатая реинкарнация. Трилогия
Фантастика:
боевая фантастика
рейтинг книги
Конфликт чести. Агент перемен. Лови день
Золотая библиотека фантастики
Фантастика:
боевая фантастика
рейтинг книги
Маркс и Энгельс
421. Жизнь замечательных людей
Документальная литература:
биографии и мемуары
рейтинг книги
Волки на границе
26. Боевые роботы — BattleTech
Фантастика:
боевая фантастика
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 7
7. История Телепата
Фантастика:
аниме
фэнтези
попаданцы
альтернативная история
рейтинг книги
Анубис
Фантастика:
фэнтези
ужасы и мистика
рейтинг книги
Весь Фрэнк Герберт в одном томе. Компиляция
Абсолют
Фантастика:
героическая фантастика
боевая фантастика
рейтинг книги
Лоенгрин, рыцарь Лебедя
Фантастика:
фэнтези
боевая фантастика
рейтинг книги
Ведьмы Плоского мира
Фантастика:
юмористическая фантастика
рейтинг книги
Футуриф. Токсичная честность
Фантастика:
социально-философская фантастика
рейтинг книги