Читаем Программирование в X Window средствами Free Pascal полностью

 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.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных