ΠΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ΄ ΡΠ²ΠΎΠΉΡΡΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π΄Π°Π½Π½ΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ. ΠΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ - ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π·Π°ΡΡΠ»ΠΊΠΈ Π² ΡΡΠ΅ΠΊ: ΠΏΠΎΡΡΠ΄ΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΊΠ½Π° ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π΄ΡΡΠ³ Π½Π°Π΄ Π΄ΡΡΠ³ΠΎΠΌ. ΠΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ ΠΎΠΊΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ»Π°Π½Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° Π²Π΅ΡΡ Π΅ ΡΡΠ΅ΠΊΠ°, Π° ΠΎΠΊΠ½ΠΎ Π·Π°Π΄Π½Π΅Π³ΠΎ ΠΏΠ»Π°Π½Π° - Π½Π° Π΄Π½Π΅ ΡΡΠ΅ΠΊΠ°. ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° Π½Π° Π²Π΅ΡΡΠΈΠ½Ρ ΡΡΠ΅ΠΊΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ XRaiseWindow(), ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° Π½Π° Π΄Π½ΠΎ ΡΡΠ΅ΠΊΠ° - ΡΡΠ½ΠΊΡΠΈΡ XLowerWindow().
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ XIconifyWindow() ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ²Π΅ΡΠ½ΡΡΠΎ, Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ XMapWindow() - Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Π΄Π»Ρ XIconifyWindow() Π½Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΎΠΊΠ½ΠΎ ΡΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΠ½ΠΎ ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ, Π° Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΎΠΊΠ½ΠΎ ΠΈΠΊΠΎΠ½ΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π΅Π³ΠΎ ΡΠ½ΠΎΠ²Π°. ΠΠΊΠΎΠ½ΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π΄ΡΡΠ³ΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ ΡΠΈΠ»ΡΠ½ΠΎ Ρ Π½Π°ΡΠΈΠΌ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ - ΡΡΠΎ Π½Π΅ Π΄ΡΡΠ³ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π°.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π°Π΄ ΠΎΠΊΠ½Π°ΠΌΠΈ:
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.
1.1.10 ΠΠ°Π±ΠΎΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° #1 "ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ Xlib"
1. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΈΠ· ΠΏ. 1.1 ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
2. ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ ΠΠ½ΡΡΠ° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΠ΅ΠΉ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π² Π½Π΅ΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
3. ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΌΡΡΠΈ ΠΏΠΈΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Pressed, Π° ΠΏΡΠΈ ΠΎΡΠΏΡΡΠΊΠ°Π½ΠΈΠΈ - Released.
4. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ XFlush() / XSync() ΠΈ delay(), Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±Π΅Π· ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 100Ρ 100 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 5 ΡΠ΅ΠΊΡΠ½Π΄.