Внешняя память компьютера. Работа с таблицами в EXCEL и MS WORD
Следующий пример демонстрирует использование операций над окнами:
uses x,xlib,xutil,crt,dos;
(* create_simple_window - создает окно с белым фоном заданного размера.
Принимает в качестве параметров дисплей, размер окна (в пикселях)
и положение окна (также в пикселях). Возвращает дескриптор окна.
Окно создается с черной рамкой шириной в 2 пикселя и автоматичсеки
отображает
ся после создания.*)
function create_simple_window(display : PDisplay;
width, height, x, y : integer): TWindow;
var
screen_num, win_border_width: integer;
win: TWindow;
begin
screen_num := XDefaultScreen(display);
win_border_width := 2;
(* создаем простое окно как прямой потомок корневого окна экрана, используя черный и белый цвета в качестве основного и фонового, и размещая новое окно в верхнем левом углу по заданным координатам*)
win := XCreateSimpleWindow(display, XRootWindow(display, screen_num),
x, y, width, height, win_border_width,
XBlackPixel(display, screen_num),
XWhitePixel(display, screen_num));
(* Отображаем окно на экране. *)
XMapWindow(display, win);
(* Заставляем выполниться все запросы к Х серверу. *)
XFlush(display);
create_simple_window:=win;
end;
//void main(int argc, char* argv[])
var
display: PDisplay; (* указатель на структуру дисплея Х *)
screen_num: integer; (* количество экранов для размещения окон *)
win: TWindow; (* дескриптор создаваемого окна *)
display_width, display_height: word; (* высота и ширина Х дисплея *)
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);
(* пример изменения размеров окна *)
begin
(* в цикле уменьшаем окно *)
for i:=0 to 39 do begin
dec(win_width,3);
dec(win_height,3);
XResizeWindow(display, win, win_width, win_height);
XFlush(display);
delay(20);
end;
(* в цикле увеличиваем окно *)
for i:=0 to 39 do begin
inc(win_width,3);
inc(win_height,3);
XResizeWindow(display, win, win_width, win_height);
XFlush(display);
delay(20);
end;
end;
delay(1000);
(* пример перемещения окна *)
begin
(* вначале получаем текущие атрибуты окна *)
XGetWindowAttributes(display, win, @win_attr);
xx := win_attr.x;
y := win_attr.y;
(* затем находим окно родителя *)
begin
(* выполним запрос необходимых значений *)
XQueryTree(display, win,
@root_win,
@parent_win,
@child_windows, @num_child_windows);
(* мы должны освободить список дочерних дескрипторов, *)
(* так как он был динамически выделен XQueryTree() *)
XFree(child_windows);
end;
(* Транслируем локальные координаты в экранные, используя *)
(* корневое окно как окно, относительно которого выполняется *)
(* трансляция. Это работает потому, что корневое окно всегда *)
(*занимает весь экран, и его левый верхний угол совпадает *)
(* с левым верхним углом экрана *)
XTranslateCoordinates(display,
parent_win, win_attr.root,
xx, y,
@scr_x, @scr_y,
@child_win);
(* перемещаем окно влево *)
for i:=0 to 39 do begin
dec(scr_x,3);
XMoveWindow(display, win, scr_x, scr_y);
XFlush(display);
delay(20);
end;
(* перемещаем окно вниз *)
for i:=0 to 39 do begin
inc(scr_y,3);
XMoveWindow(display, win, scr_x, scr_y);
XFlush(display);
delay(20);
end;
(* перемещаем окно вправо *)
for i:=0 to 39 do begin
inc(scr_x,3);
XMoveWindow(display, win, scr_x, scr_y);
XFlush(display);
delay(20);
end;
(* перемещаем окно вверх *)
for i:=0 to 39 do begin
dec(scr_y,3);
XMoveWindow(display, win, scr_x, scr_y);
XFlush(display);
delay(20);
end;
end;
delay(1000);
(* пример сворачивания и восстановления окна *)
begin
(* сворачиваем окно *)
XIconifyWindow(display, win, XDefaultScreen(display));
XFlush(display);
delay(2000);
(* восстанавливаем окно *)
XMapWindow(display, win);
XFlush(display);
delay(2000);
end;
XFlush(display);
(* короткая передышка *)
delay(2000);
(* закрываем соединение с Х сервером *)
XCloseDisplay(display);
end.
Задание №4 «ТекстовыйпроцессорMS WORD»
Создание таблицы. Перемещение по таблице. Вставка строк и столбцов в таблицу. Сортировка данных в таблице. Изменение ширины и высоты ячеек.
Создание таблицы
Создание новой таблицы можно осуществить тремя способами:
Нарисовать
Вставить
Создание на основе существующих данных (текста, чисел)
1. Нарисовать (создать) таблицу
Для создания таблицы со сложным заголовком целесообразно использовать способ Нарисовать таблицу, выбрав команду Таблица / Нарисовать таблицу. Появится плавающая панель инструментов Таблицы и границы, с помощью которой можно создать таблицу и осуществить ее редактирование и форматирование.
Ввод данных и перемещение по таблице
Ввод данных (текст или числа) в таблицу производится с помощью клавиатуры. Если введено больше символов, чем может поместиться в одной строке, Word автоматически перенесет символы, которые не поместились в текущей строке, на следующую строку в той же ячейке.
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности