1.2.5 ΠΠΈΡΠΎΠ²ΡΠ΅ ΠΈ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠ°ΡΡΡ
Xlib Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΡΠ΅Π΄ΡΡΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠΎΡΠΌΠ°ΡΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ gif, jpeg ΠΈΠ»ΠΈ tiff. ΠΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° (ΠΈΠ»ΠΈ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ) ΠΎΡΡΠ°Π²Π»Π΅Π½ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠΈ ΡΠΎΡΠΌΠ°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠΎΡΠΌΠ°ΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π·Π½Π°ΠΊΠΎΠΌ X ΡΠ΅ΡΠ²Π΅Ρ - Π±ΠΈΡΠΎΠ²ΡΠΌΠΈ ΠΈ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΊΠ°ΡΡΠ°ΠΌΠΈ.
ΠΠΈΡΠΎΠ²Π°Ρ ΠΊΠ°ΡΡΠ° X - Π΄Π²ΡΡ ΡΠ²Π΅ΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΠΎΠ΅ Π² ΡΠΎΡΠΌΠ°ΡΠ΅, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π΄Π»Ρ X Window. Π‘ΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Π΅, Π΄Π°Π½Π½ΡΠ΅ Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΊΠ°ΡΡΡ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌΠΈ Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ» Π½Π° ΡΠ·ΡΠΊΠ΅ C. ΠΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΡ Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΌΠ°ΡΡΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ Π±ΠΈΡΠΎΠ²ΡΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ°Π²Π΅Π½ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΡΠΈΠ½Ρ Π½Π° Π²ΡΡΠΎΡΡ), ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π³ΠΎΡΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΈ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ).
ΠΠΈΠΊΡΠ΅Π»ΡΠ½Π°Ρ ΠΊΠ°ΡΡΠ° X - ΡΠΎΡΠΌΠ°Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΏΠ°ΠΌΡΡΠΈ Π₯ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠΎΡ ΡΠΎΡΠΌΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ½ΠΎ-Π±Π΅Π»ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (ΡΠ΅ ΠΆΠ΅ Π±ΠΈΡΠΎΠ²ΡΠ΅ ΠΊΠ°ΡΡΡ), ΡΠ°ΠΊ ΠΈ ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ X, ΠΈ Π»ΡΠ±ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½ΠΎ Π² ΡΡΠΎΡ ΡΠΎΡΠΌΠ°Ρ.
Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½Π°Ρ ΠΊΠ°ΡΡΠ° X ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΠΊΡΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΠ½ΠΎΠ³ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΎΠΊΠ½Π°Ρ , ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠ°ΡΡΠ°Ρ - Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ° ΠΎΠΊΠ½Π°. Π ΡΡΡΠ°Π½ΠΈΡΠ°Ρ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ TDrawable, Π½Π΅ TWindow, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°ΠΊ ΠΎΠΊΠ½Π° ΡΠ°ΠΊ ΠΈ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠ°ΡΡΡ - ΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΈ ΠΎΠ½ΠΈ ΠΎΠ±Π° ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠΈΡΠΎΠ²Π°ΡΡ Π² Π½ΠΈΡ ΡΠ°ΠΊΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, XDrawArc(), XDrawText(), ΠΈ Ρ.ΠΏ.
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ°ΠΉΠ»Π° Π² ΠΏΠ°ΠΌΡΡΡ - Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ #include ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΡΠ·ΡΠΊΠ° Π‘.
ΠΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΠΉΠ»Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ:
var
(* ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ *)
bitmap: TPixmap;
(* ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΠΎΠΉ Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΊΠ°ΡΡΡ *)
bitmap_width, bitmap_height: word;
(* ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π³ΠΎΡΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΠΎΠΉ Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΊΠ°ΡΡΡ *)
hotspot_x, hotspot_y: integer;
(* ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΡΠΊΡΠ°Π½Π°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠ°ΡΡΡ *)
root_win: TWindow;
rc: longint;
root_win:= XDefaultRootWindow(display);
(* Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ Π±ΠΈΡΠΎΠ²ΡΡ ΠΊΠ°ΡΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° "icon.bmp", ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠ°ΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠ²ΠΎΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π΅Π΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ bitmap *)
rc:= XReadBitmapFile(display, root_win, 'icon.bmp', @bitmap_width, @bitmap_height, @bitmap, @hotspot_x, @hotspot_y);
(* ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΠ΄Π°Π»ΠΎΡΡ Π»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠ°ΡΡΡ *)
case (rc) of
BitmapOpenFailed:
writeln('XReadBitmapFile - Π½Π΅ ΠΌΠΎΠ³Ρ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ» "icon.bmp"');
BitmapFileInvalid:
writeln('XReadBitmapFile - ΡΠ°ΠΉΠ» "icon.bmp" Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.');
BitmapNoMemory:
writeln('XReadBitmapFile - Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΠΏΠ°ΠΌΡΡΠΈ.');
BitmapSuccess:
(* Π±ΠΈΡΠΎΠ²Π°Ρ ΠΊΠ°ΡΡΠ° ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Π° - ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°Π΅ΠΌ Ρ Π½Π΅ΠΉβ¦ *)
.
.
end;
ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ root_win Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ Ρ Π΄Π°Π½Π½ΡΠΌ Π±ΠΈΡΠΎΠ²ΡΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ - Π±ΠΈΡΠΎΠ²Π°Ρ ΠΊΠ°ΡΡΠ° Π½Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ ΡΡΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ. ΠΡΠΎΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠ°ΡΡΡ. ΠΡΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ, ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½Π°Ρ ΠΊΠ°ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎ ΠΆΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²Π΅ΡΠΎΠ², ΡΡΠΎ ΠΈ ΡΠΊΡΠ°Π½.
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ· Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π΅ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΊΠ½Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ XCopyPlane(). ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ (ΠΎΠΊΠ½Π΅, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΠ΅) ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° Π΄Π°Π½Π½Π°Ρ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½Π°Ρ ΠΊΠ°ΡΡΠ°.
(* Π ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π½Π΅Π΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ Π±ΠΈΡΠΎΠ²ΡΡ ΠΊΠ°ΡΡΡ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅, Π² ΠΏΠΎΠ·ΠΈΡΠΈΠΈ x=100, y=50. ΠΡ Ρ ΠΎΡΠΈΠΌ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡ Π±ΠΈΡΠΎΠ²ΡΡ ΠΊΠ°ΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ x=0, y=0 Π΄Π»Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ Π½Π°ΡΠ°Π»Π° Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ *)
XCopyPlane(display, bitmap, win, gc, 0, 0, bitmap_width, bitmap_height, 100, 50, 1);
ΠΡ ΠΌΠΎΠ³Π»ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π΅Π΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ XCopyPlane() ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ»ΠΎΠΉ (ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΡ) ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠ΅Π»Π΅Π²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. ΠΠ»Ρ Π±ΠΈΡΠΎΠ²ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π²ΡΠ΅Π³Π΄Π° ΠΊΠΎΠΏΠΈΡΡΠ΅ΡΡΡ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΡ Π½ΠΎΠΌΠ΅Ρ 1.
Π§Π°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠ°ΡΡΡ, ΡΡΠΎΠ±Ρ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π² Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠ² (ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΡΡΠΎΠ³ΠΎ "Ρ ΠΎΠ»ΡΡΠ°" Π²ΡΠ·ΠΎΠ²Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅). ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ - ΠΌΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΠ°ΠΌΡΡΡ, ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠ°ΡΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΡΠΎΠΉ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΠ΅.
var
(* ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ *)
pixmap: TPixmap;
(* ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΡΠΊΡΠ°Π½Π°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠ°ΡΡΡ *)
root_win: TWindow;
(* ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π³Π»ΡΠ±ΠΈΠ½Ρ ΡΠ²Π΅ΡΠ° ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ - ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΠ²Π΅ΡΠ° Π² ΠΏΠ°Π»ΠΈΡΡΠ΅ (ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²Π΅ΡΠΎΠ² ΡΠ°Π²Π½ΠΎ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ Π³Π»ΡΠ±ΠΈΠ½Ρ) *)
depth: longint;
root_win:= XDefaultRootWindow(display);
depth:= XDefaultDepth(display, XDefaultScreen(display));
(* ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠ°ΡΡΡ ΡΠΈΡΠΈΠ½ΠΎΠΉ 30 ΠΈ Π²ΡΡΠΎΡΠΎΠΉ Π² 40 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ *)
pixmap:= XCreatePixmap(display, root_win, 30, 40, depth);
(* Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΡ ΠΎΡΡΡΠ΅Π½ΠΈΠΉ Π½Π°ΡΠΈΡΡΠ΅ΠΌ ΡΠΎΡΠΊΡ Π² ΡΠ΅Π½ΡΡΠ΅ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ *)
XDrawPoint(display, pixmap, gc, 15, 20);
ΠΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ° ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π΅Π΅ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΊΠ½Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ XCopyArea(). ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΠΎΠΊΠ½ΠΎ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΄ΡΡΠ³ΡΡ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠ°ΡΡΡ) ΠΈ Π² ΠΊΠ°ΠΊΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½Π°Ρ ΠΊΠ°ΡΡΠ° Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π°.
(* Π ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π½Π΅Π΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ Π±ΠΈΡΠΎΠ²ΡΡ ΠΊΠ°ΡΡΡ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅, Π² ΠΏΠΎΠ·ΠΈΡΠΈΠΈ x=100, y=50. ΠΡ Ρ ΠΎΡΠΈΠΌ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡ Π±ΠΈΡΠΎΠ²ΡΡ ΠΊΠ°ΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ x=0, y=0 Π΄Π»Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ Π½Π°ΡΠ°Π»Π° Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ *)
XCopyArea(display, bitmap, win, gc, 0, 0, bitmap_width, bitmap_height, 100, 50);
ΠΡ ΠΌΠΎΠ³Π»ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π΅Π΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΡΠΊΡΠ°Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠ°ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π³Π»ΡΠ±ΠΈΠ½. ΠΠΎΠ³Π΄Π° ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ Π² ΠΎΠΊΠ½ΠΎ ΠΈ Ρ.ΠΏ.), ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ Π³Π»ΡΠ±ΠΈΠ½Ρ. ΠΡΠ»ΠΈ ΠΈΡ Π³Π»ΡΠ±ΠΈΠ½Π° ΡΠ°Π·Π»ΠΈΡΠ°Π΅ΡΡΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π΅ ΡΠ΄Π°ΡΡΡΡ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ - ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠ°Π½Π΅Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ XCopyPlane(). Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΡ Π² ΠΎΠΊΠ½ΠΎ-ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ - Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π±ΠΈΡ Π² ΡΠ²Π΅ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Ρ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°Π±Π°Π²Π½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΡΠ΅ΠΊΡΠΎΠ².
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ, Π΅Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΡΡΡΡΡ Π₯ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ XFreePixmap():
(* ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠΌ *)
XFreePixmap(display, pixmap);
1.2.6 ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΠΌΡ ΠΌΡΡΠΈΠ½ΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΡΠ°
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΡΡΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΡΡ ΡΠΎΡΠΌΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΡΡΠΈ (ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ X) Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Π½ΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π½Π°Π΄ ΡΠ²ΠΎΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΏΠ΅ΡΠΎΡΠ½ΡΠ΅ ΡΠ°ΡΡ, ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ Π½Π°ΠΌΠ΅ΠΊ, ΡΡΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΆΠΈΠ΄Π°ΡΡ. ΠΠ΅Π· ΡΠ°ΠΊΠΎΠ³ΠΎ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΌΠ΅ΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠ³ Π±Ρ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠ»ΠΎ.
ΠΡΡΡ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΡΡΡΠΎΡΠΎΠ². ΠΠ΅ΡΠ²ΡΠΉ ΠΈΠ· Π½ΠΈΡ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡΠ° ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΡΡΡΠΎΡΠΎΠ², ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Ρ Xlib. ΠΡΠΎΡΠΎΠΉ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΡΠΎΠ²ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΡΠΈΡΡ "cursor" ΠΈ ΡΡΠ½ΠΊΡΠΈΡ XCreateFontCursor(). ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΡΠΌΡ, ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΊΡΡΡΠΎΡ. Π‘ΠΏΠΈΡΠΎΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΡΠΈΡΡΠΎΠ²ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ /usr/include/X11/cursorfont.h. ΠΡΠ΅Π³ΠΎ ΠΈΡ Π±ΠΎΠ»Π΅Π΅ 70; Π²ΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΠΊΡΡΡΠΎΡΠΎΠ²:
β’ XC_arrow - ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΊΡΡΡΠΎΡ Π² ΡΠΎΡΠΌΠ΅ ΡΡΡΠ΅Π»ΠΊΠΈ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠΉ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ.