Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² X Window срСдствами Free PascalΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 16

Автор А. ΠŸΠΎΠ»ΠΈΡ‰ΡƒΠΊ

    if (rEvent.xclient.data.l[0] = pnProtocol[0]) then

     writeln('Receiving the input focus.')

    else

     if (rEvent.xclient.data.l[0] = pnProtocol[1]) then

     begin

      XCloseDisplay (prDisplay);

      halt(0);

     end;

    end;

   end;

…

  end;

 end;

…

ЗаказываСтся рСакция Π½Π° Π΄Π²Π° события: ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ фокуса Π²Π²ΠΎΠ΄Π° (WM_TAKE_FOCUS) ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (WM_SAVE_YOURSELF). Когда сСрвСр посылаСт событиС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π·Π°Π΄Π°Ρ‡Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС Π½Π° устройства Π²Ρ‹Π²ΠΎΠ΄Π°. ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π΅ события Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ связь с сСрвСром ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.

1.5.3 Лабораторная Ρ€Π°Π±ΠΎΡ‚Π° #5 "ΠœΠ΅ΠΆΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΎΠ΅ взаимодСйствиС"

1. Π‘ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ фокуса Π²Π²ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ своС ΠΎΠΊΠ½ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ†Π²Π΅Ρ‚.

2. Π‘ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΡƒΡŽ Π΄Π²Π° располоТСнных рядом Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΠΎΠΊΠ½Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ sin(x) Π½Π° ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ΅ [0; 2?] ΠΈ exp(x) Π½Π° ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ΅ [-2; 2]. Π“Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ ΠΎΠΊΠΎΠ½.


3. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π΅Π΅ свои Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ΡˆΡŒ всСгда Π±Ρ‹Π»Π° Π² Π΅Π³ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π΅.

4. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ, "ΡƒΠ±Π΅Π³Π°ΡŽΡ‰Π΅Π΅" ΠΎΡ‚ указатСля ΠΌΡ‹ΡˆΠΈ.


5. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ клавиши ΠΌΡ‹ΡˆΠΈ Π² основном ΠΎΠΊΠ½Π΅ создаСт Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ (Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 100 ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ), Π° ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ клавиши ΠΌΡ‹ΡˆΠΈ Π² Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌ ΠΎΠΊΠ½Π΅ удаляСт Π΅Π³ΠΎ. Если Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π΅ ΠΎΠΊΠ½ΠΎ сущСствуСт Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°ΠΌΠΎΡƒΠ΄Π°Π»ΡΡ‚ΡŒΡΡ.


6. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ модСлирования ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ ΠΊΠ»Π΅Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° "Π–ΠΈΠ·Π½ΡŒ", ячСйки ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ имСю Π΄Π²Π° состояния: пусто ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ. Если рядом с пустой ячСйкой Ρ‚Ρ€ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ…, ΠΎΠ½Π° заполняСтся. Если рядом с Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ячСйкой мСньшС Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ большС Ρ‚Ρ€Π΅Ρ… Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ…, ячСйка становится пустой. Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ модСльного поля - 64Γ—64 ячСйки, Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΏΠΎΠ»Π΅ пустоС. По Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ любой ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ состояниС ячСйки мСняСтся Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅, ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ ΠΏΡ€ΠΎΠ±Π΅Π»Π° осущСствляСтся ΠΎΠ΄ΠΈΠ½ шаг ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ, Π° ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Escape - Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°

ΠŸΠΎΠ»ΠΈΡ‰ΡƒΠΊ А.П., Π‘Π΅ΠΌΠ΅Ρ€ΠΈΠΊΠΎΠ² Π‘.А. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² X Window. - ΠšΡ€ΠΈΠ²ΠΎΠΉ Π ΠΎΠ³: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΎΡ‚Π΄Π΅Π» ΠšΠ“ΠŸΠ£, 2003. - 192 с.

ΠŸΠΎΠ»ΠΈΡ‰ΡƒΠΊ А.П., Π‘Π΅ΠΌΠ΅Ρ€ΠΈΠΊΠΎΠ² Π‘.А. Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠΉΠ½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. - ΠšΡ€ΠΈΠ²ΠΎΠΉ Π ΠΎΠ³: ΠšΠ“ΠŸΠ£, 2001. - 336 с.

РобачСвский А.М. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма UNIX. - К.: Π‘Π₯Π’, 2000. - 518 с.

Adrian Nye. Volume 0: X Protocol Reference Manual, 4rd Edition. - O'Reilly & Associates, 1990. - 446 p.

Adrian Nye. Volume 1: Xlib Programming Manual, 3rd Edition. - O'Reilly & Associates, 1992. - 821 p.

Adrian Nye. Volume 2: Xlib Reference Manual. - O'Reilly & Associates, 1992. - 935 p.

Robert W. Scheifler & James Gettys. X Window System: The Complete Reference to Xlib, X Protocol, ICCCM, XLFD. X Version 11, Release 4. - Digital Press, 1992. - 711 p.