win_width, win_height: word; (* высота и ширина нового окна *)
display_name: array [0..30] of Char;
name: string;
i: integer;
win_attr: TXWindowAttributes;
xx, y, scr_x, scr_y: integer;
child_win: TWindow;
(* переменная для хранения дескриптора родительского окна *)
parent_win: TWindow;
(* эта переменная будет хранить дескриптор корневого окна *)
(* экрана, на котором отображено наше окно *)
root_win: TWindow;
(* эта переменная будет хранить массив дескрипторов *)
(* дочерних окон нашего окна, *)
child_windows: PWindow;
(* а эта - их количество *)
num_child_windows: integer;
begin
name := getenv('DISPLAY'); (* имя Х дисплея *)
for i:=1 to byte(name[0]) do
display_name[i-1]:=name[i];
display_name[byte(name[0])]:=#0;
(* устанавливаем соединение с Х сервером *)
display := XOpenDisplay(display_name);
if (display = NIL) then begin
writeln(paramstr(0),': не могу соединиться с Х сервером ',
display_name);
halt(1);
end;
(* получаем геометрию экрана по умолчанию для нашего дисплея *)
screen_num := XDefaultScreen(display);
display_width := XDisplayWidth(display, screen_num);
display_height := XDisplayHeight(display, screen_num);
(* создаем новое окно в 1/9 площади экрана *)
win_width := (display_width div 3);
win_height := (display_height div 3);
(* отладочная печать в стандартный вывод *)
writeln('ширина окна - ', win_width, '; высота - ', win_height);
(* создаем простое окно как прямой потомок корневого окна экрана, *)
(* используя черный и белый цвета в качестве основного и фонового, и*)
(* размещая новое окно в верхнем левом углу по заданным координатам *)
win := create_simple_window(display, win_width, win_height, 0, 0);
XFlush(display);
(* отдохнем после трудов праведных *)
delay(3000);
(* пример изменения размеров окна *)
(* в цикле уменьшаем окно *)
for i:=0 to 39 do begin
dec(win_width,3);
dec(win_height,3);
XResizeWindow(display, win, win_width, win_height);
delay(20);
(* в цикле увеличиваем окно *)
inc(win_width,3);
inc(win_height,3);
delay(1000);
(* пример перемещения окна *)
(* вначале получаем текущие атрибуты окна *)
XGetWindowAttributes(display, win, @win_attr);
xx := win_attr.x;
y := win_attr.y;
(* затем находим окно родителя *)
(* выполним запрос необходимых значений *)
XQueryTree(display, win,
@root_win,
@parent_win,
@child_windows, @num_child_windows);
(* мы должны освободить список дочерних дескрипторов, *)
(* так как он был динамически выделен XQueryTree() *)
XFree(child_windows);
(* Транслируем локальные координаты в экранные, используя *)
(* корневое окно как окно, относительно которого выполняется *)
(* трансляция. Это работает потому, что корневое окно всегда *)
(*занимает весь экран, и его левый верхний угол совпадает *)
(* с левым верхним углом экрана *)
XTranslateCoordinates(display,
parent_win, win_attr.root,
xx, y,
@scr_x, @scr_y,
@child_win);
(* перемещаем окно влево *)
dec(scr_x,3);
XMoveWindow(display, win, scr_x, scr_y);
(* перемещаем окно вниз *)
inc(scr_y,3);
(* перемещаем окно вправо *)
inc(scr_x,3);
(* перемещаем окно вверх *)
dec(scr_y,3);
(* пример сворачивания и восстановления окна *)
(* сворачиваем окно *)
XIconifyWindow(display, win, XDefaultScreen(display));
delay(2000);
(* восстанавливаем окно *)
XMapWindow(display, win);
(* короткая передышка *)
(* закрываем соединение с Х сервером *)
XCloseDisplay(display);
end.
Задание №4 «Текстовый процессор MS WORD»
Создание таблицы. Перемещение по таблице. Вставка строк и столбцов в таблицу. Сортировка данных в таблице. Изменение ширины и высоты ячеек.
Создание таблицы
Создание новой таблицы можно осуществить тремя способами:
? Нарисовать
? Вставить
? Создание на основе существующих данных (текста, чисел)
1. Нарисовать (создать) таблицу
Для создания таблицы со сложным заголовком целесообразно использовать способ Нарисовать таблицу, выбрав команду Таблица / Нарисовать таблицу. Появится плавающая панель инструментов Таблицы и границы, с помощью которой можно создать таблицу и осуществить ее редактирование и форматирование.
Ввод данных и перемещение по таблице
Ввод данных (текст или числа) в таблицу производится с помощью клавиатуры. Если введено больше символов, чем может поместиться в одной строке, Word автоматически перенесет символы, которые не поместились в текущей строке, на следующую строку в той же ячейке.
Наиболее простой способ перемещения по ячейкам таблицы заключается в использовании мыши. Для того чтобы перейти в требуемую ячейку, достаточно установить на нее указатель мыши и нажать левую кнопку. Ниже приведены клавиши, позволяющие перемещаться по таблице.
Комбинация клавиш
Назначение
Tab
Перемещает курсор вправо на одну ячейку. Добавляет новую строку, если курсор расположен в последней ячейке
Shift + Tab
Перемещает курсор влево на одну ячейку
"стрелка вверх" и "стрелка вниз"
Перемещает курсор в последующую или предыдущую строку соответственно
<-- и -->
Перемещает курсор на один символ в пределах ячейки. Нажатие этих клавиш соответственно в начале и конце ячейки приведет к перемещению в предыдущую или последующую ячейки
Alt + Ноmе и Alt + End
Перемещает курсор в первую или последнюю ячейку строки соответственно
Alt + PgUp и Alt + PgDn
Перемещает курсор в первую или последнюю строку столбца соответственно
Для вставки новых строк/столбцов в таблицу необходимо: выделить в таблице столько строк/столбцов, сколько необходимо добавить, выбрать пункт Меню=>Таблица? Добавить строки (Добавить столбцы), если такой команды нет, то выделение строк/столбцов выполнено некорректно.
Новые строки/столбцы будут вставлены перед выделенными областями.
Для вставки строк в конец таблицы поместите курсор в начало абзаца, следующего за таблицей и выберите пункт Меню=>Таблица=>Добавить строки. В диалоговом окне “Добавление строк” задайте число вставляемых строк (новые строки будут иметь формат последней строки таблицы).
Чтобы расширить таблицу вправо, вставляя новые столбцы, выделите область с правой сторона таблицы, выберите пункт Меню=>Таблица=>Добавить столбцы. В результате таблица будет расширена вправо на один столбец.
Добавление ячеек осуществляется аналогично добавлению строк и столбцов в таблицу, но при этом в диалоговом окне “Добавление ячеек” необходимо выбрать один из способов вставки новых ячеек.
Для удаления ячеек, строк или столбцов выделите соответствующую область в таблице и в меню выберите подходящий пункт Меню=>Таблица=>Удалить ячейки (Удалить строки, Удалить столбцы). Для удаления строки (столбца) можно встать в любую ячейку этой строки (столбца), выбрать пункт “Удалить ячейки” и в открывшемся окне поставить переключатель “Удалить всю строку” (“Удалить весь столбец”).
Страницы: 1, 2, 3, 4