А. Полищук - Программирование в X Window средствами Free Pascal

Здесь есть возможность читать онлайн «А. Полищук - Программирование в X Window средствами Free Pascal» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Программирование в X Window средствами Free Pascal: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Программирование в X Window средствами Free Pascal»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Программирование в X Window средствами Free Pascal — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Программирование в X Window средствами Free Pascal», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Вместо имен объектов могут указываться их классы. Обычно класс имеет то же самое имя, что и объект, но начинается с заглавной буквы, например,

Myprog.dialogwnd.Background: Red

Часть объектов или классов в левой части строки, задающей ресурс, может заменяться символом '*', например, строка

myprog*background: Red

указывает, что для всех объектов программы myprog ресурс background имеет значение Red.

Связка с помощью символа '.' имеет больший приоритет, чем связка с помощью '*'. Так, если в файле, задающем ресурсы, есть две строки

myprog*background: Red

myprog.dialogwnd.background: Green

то все объекты программы будут иметь ресурс background равный Red, кроме объекта dialogwnd, для которого этот параметр есть Green.

1.4.2 Доступ к ресурсам программ

Пусть ресурсный файл подготовлен. Как получить доступ к его данным во время работы программы? Для этого X предоставляет набор процедур, которые совокупно называются менеджер ресурсов (Resource Manager), и специальную программу xrdb, которая позволяет считать любой ресурсный файл и включить его в общую таблицу ресурсов сервера. Последняя называется базой данных ресурсов сервера, и представляет собой область памяти, ассоциированную со свойством (property) XA_RESOURCE_MANAGER корневого окна экрана дисплея.

Наиболее простой является процедура XGetDefault(). Она получает имя программы, имя ресурса и определяет значение последнего. При этом она последовательно совершает следующие шаги:

• сначала ресурс ищется в базе данных сервера (в свойстве XA_RESOURCE_MANAGER);

• если он не найден, то значение ресурса определяется по файлу ".Xdefaults", который ищется в домашней (home) директории пользователя;

• если задана переменная среды XENVIRONMENT, то ресурс ищется в файле, на который указывает эта переменная.

Если ресурс одновременно встречается в ".Xdefaults" и файле, определяемом XENVIRONMENT, то берется последнее значение.

В примере, приводимом ниже, используется XGetDefault(), чтобы получить строку, которую надо напечатать в окне программы. Предполагается, что имя программы - "hello", а строка - ресурс с именем "helloWorld", т.е. в файле ".Xdefaults" должна быть помещена, например, следующая запись:

hello.helloWorld: Hello, World!

Фрагмент программы, выполняющий чтение из файла ресурсов, будет выглядеть следующим образом:

prDisplay: PDisplay;

prGC: TGC;

nWnd: TWindow;

psString: PChar;

….

(* Устанавливаем связь с сервером, получаем номер экрана…*)

….

(* Выбираем события, обрабатываемые программой *)

XSelectInput (prDisplay, nWnd, ExposureMask ORKeyPressMask);

(* Получаем рисуемую строку *)

psString:= XGetDefault (prDisplay, 'hello', 'helloWorld');

….

XDrawString (prDisplay, nWnd, prGC, 10, 50, psString,

strlen (psString));

….

Обратите внимание на то, что после изменения файла ".Xdefaults" он должен быть обработан программой xrdb для того, чтобы X сервер включил в свою таблицу обновленные ресурсы.

Функция XGetDefault() проста в обращении, но недостаточно гибка. Так, например, с ее помощью нельзя прочитать содержимое произвольного файла ресурсов. Рассмотрим другие более развитые возможности.

Вызов XrmInitialize() инициализирует менеджер ресурсов. Обращение к этой функции предшествует вызовам остальных процедур.

procedure XrmParseCommand(

prDB: TXrmDatabase {database} ;

prOptRec: TXrmOptionDescList {table} ;

nOptRecNum: integer {table_count} ;

psProgName: pchar {name} ;

argc: pointer {argc_in_out} ;

argv: ppchar {argv_in_out}

); cdecl; external;

сканирует строку, с помощью которой вызвана программа, и "достает" из нее ресурсы и их значения, при этом создается специальная структура данных - база данных ресурсов. Ресурсы и их значения помещаются в нее. Указатель на базу данных передается программе через переменную prDB. Параметр psProgName содержит имя программы, argc - число опций в командной строке, argv - сами опции. Аргумент prOptRec определяет, как разбирать командную строку. nOptRecNum задает число элементов массива prOptRec.

В примере, приводимом ниже, определяется, что в командной строке опция "-bg" задает цвет фона; "-fg" - цвет переднего плана, а опция "-xrm" позволяет задать в командной строке любой ресурс программы.

….

const

rOptRec: array [0…2] of TXrmOptionDescRec = ( ('-bg', '*background', XrmoptionSepArg, 'Red'), ('-fg', '*foreground', XrmoptionSepArg, 'White'), ('-xrm', NIL, XrmoptionResArg, NIL), );

var

rDB: TXrmDatabase;

//void main (int argc, char **argv)

begin

XrmInitialize();

XrmParseCommand (rDB, rOptRec,

sizeof (rOptRec) / sizeof (rOptRec[0]),

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Программирование в X Window средствами Free Pascal»

Представляем Вашему вниманию похожие книги на «Программирование в X Window средствами Free Pascal» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


libcat.ru: книга без обложки
Александр Цветков
libcat.ru: книга без обложки
Gene Wolfe
Отзывы о книге «Программирование в X Window средствами Free Pascal»

Обсуждение, отзывы о книге «Программирование в X Window средствами Free Pascal» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x