Инструменты пользователя

Инструменты сайта


pro_pol:исправление_в_коде_статьи_программирование_в_x_window_средствами_free_pascal._полищук_а._п._семериков_с._а

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
pro_pol:исправление_в_коде_статьи_программирование_в_x_window_средствами_free_pascal._полищук_а._п._семериков_с._а [2021/06/19 10:19] dwadminpro_pol:исправление_в_коде_статьи_программирование_в_x_window_средствами_free_pascal._полищук_а._п._семериков_с._а [2022/02/16 20:40] (текущий) dwadmin
Строка 9: Строка 9:
  
 https://coderoad.ru/49491918/%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8-%D0%BA%D0%BB%D1%8E%D1%87%D0%B0-%D0%B8%D0%B7-keycode-X11-XGrabKey https://coderoad.ru/49491918/%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8-%D0%BA%D0%BB%D1%8E%D1%87%D0%B0-%D0%B8%D0%B7-keycode-X11-XGrabKey
 +
 +https://github.com/skeeto/pure-linux-threads-demo
 +https://nullprogram.com/blog/2015/05/15/
  
 https://evileg.com/ru/post/170/ https://evileg.com/ru/post/170/
Строка 18: Строка 21:
  
 http://dfe.petrsu.ru/koi/posob/X/index.html http://dfe.petrsu.ru/koi/posob/X/index.html
 +
 +https://specifications.freedesktop.org/shared-mime-info-spec/latest/
 +
 +https://www.linux.org.ru/forum/development/578330?cid=578951
  
 ====== Исправление в коде статьи Программирование в X Window средствами Free Pascal. Полищук А. П., Семериков С. А. ====== ====== Исправление в коде статьи Программирование в X Window средствами Free Pascal. Полищук А. П., Семериков С. А. ======
Строка 97: Строка 104:
  rEvent: TXEvent;  rEvent: TXEvent;
  nWnd: TWindow;  nWnd: TWindow;
 +atom1, atom2 : TAtom;
  
 begin begin
Строка 116: Строка 124:
  SetWindowManagerHints(prDisplay, PRG_CLASS, argv, argc, nWnd, WND_X, WND_Y, WND_WDT, WND_HGH, WND_MIN_WDT, WND_MIN_HGH, WND_TITLE, WND_ICON_TITLE, 0);  SetWindowManagerHints(prDisplay, PRG_CLASS, argv, argc, nWnd, WND_X, WND_Y, WND_WDT, WND_HGH, WND_MIN_WDT, WND_MIN_HGH, WND_TITLE, WND_ICON_TITLE, 0);
  (* Выбираем события, обрабатываемые программой *)  (* Выбираем события, обрабатываемые программой *)
- XSelectInput(prDisplay, nWnd, ExposureMask OR KeyPressMask);+ XSelectInput(prDisplay, nWnd, ExposureMask OR KeyPressMask OR StructureNotifyMask OR ButtonPressMask);
  (* Показываем окно *)  (* Показываем окно *)
  XMapWindow(prDisplay, nWnd);  XMapWindow(prDisplay, nWnd);
 +
 +(* Добавляем возможность корректного закрытия окна *)
 +atom1 := XInternAtom(prdisplay, 'WM_PROTOCOLS', 0);
 +atom2 := XInternAtom(prdisplay, 'WM_DELETE_WINDOW', 0);
 +XSetWMProtocols(prdisplay, nwnd, @atom2, 1);
  
  (* Цикл получения и обработки событий *)  (* Цикл получения и обработки событий *)
Строка 134: Строка 147:
    XFreeGC (prDisplay, prGC);    XFreeGC (prDisplay, prGC);
 end; end;
 +DestroyNotify,
  KeyPress:  KeyPress:
    begin    begin
Строка 140: Строка 154:
     halt(0);     halt(0);
    end;    end;
 + ClientMessage: begin
 + if((revent.xclient.message_type = atom1) and (revent.xclient.data.l[0] = atom2))
 +      then begin
 +          XDestroyWindow(prdisplay, nwnd);
 +      end;
 +break;
 + end;
 end; end;
  end;  end;
pro_pol/исправление_в_коде_статьи_программирование_в_x_window_средствами_free_pascal._полищук_а._п._семериков_с._а.1624087181.txt.gz · Последнее изменение: 2021/06/19 10:19 — dwadmin

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: GNU Free Documentation License 1.3
GNU Free Documentation License 1.3 Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki