                              5.

                .

      Turbo Vision ᯥ  ࠡ祩 窮    
ਪ ணࠬ,  ⠪  ⮡      ᪮業஢  
騢 ""  ணࠬ.     㬥  Turbo
Vision -    প  ஥     ࠢ ᮡﬨ.
 4      ,           뢠
஥ ணࠬ  ᮡ⨩.


                 饭 Turbo Vision  .

      㦥 ᠫ ணࠬ Turbo Vision, ࠢ塞 ᮡﬨ 
⪮ ।   ணࠬ  ॠ஢  ᮡ.


                    ⥭  짮⥫.

      ࠤ樮  ணࠬ    ᪠      筮   
横,   ⠥    짮⥫  ,  誨  
㣨 ன   ਭ  襭    ᭮  ⮣  
 横.      㤥  뢠  楤    㭪樨  
室     横    ⮣  ⮡   ᭮      
짮⥫:

     repeat
       B := ReadKey;
       case B of
         'i': InvertArray;
         'e': EditArrayParams;
         'g': GraphicDisplay;
         'q': Quit := true;
       end;
     until Quit;

     ணࠬ ࠢ塞   ᮡﬨ      祭  ⫨砥  
筮.  ᠬ ,  㤭 ࠧ ࠪ⨢  ணࠬ,
 ࠡ⠥   㣮.  ,   窨 ७ ணࠬ
ணࠬ ࠢ塞 ᮡﬨ 룫廊 .
      ணࠬ    Turbo  Vision        ⠥  
짮⥫ ᪮ Turbo  Vision        .  
ᮡࠥ       ᪠,  뢠 ᮡﬨ  ।
ᮡ ᮮ⢥騬  ⠬ ணࠬ.   砥,
   襬      ⮫쪮   ॡ         ࠡ
ᮮ⢥騩 .
     ਬ, ᫨ 짮⥫ ⬥砥 誮  ⨢ ,
Turbo Vision ⠥  誨,  頥      ᮡ  
뫠  ᮡ  ⨢ .
     ᫨    ࠤ樮 ணࠬ஢    
㬠 ᥩ:  ",       짮⥫.
      ᮡ  ⬥⪥ 誮   
᪠  ⨢   ⨢."  ⢨⥫쭮  
  ⠪  .
        ᠬ   ࠡ뢠   
짮⥫.    ,  ,  ६,
 ࠭,    ࠧ   㣮.    
, ⢮  짮⥫    .  
   ,    ⢮    ᮡ   
 梥.   ஫   㭪樮஢.  ⨢
  ᤥ ᥡ ⨢    襩 .
           ணࠬ?    㦭  ।
    묨 㭪ﬨ,     
।  ᮡ⨩  .    ⠪    
    ⪫      ⠭      
஢ ᮡ⢥      (ᮮ饭)   㣨   
⠬.   堭  㦥  :          - 
     ⠬   㦭 ᤥ
  㢨 .
       룫 ᮡ   襩  ணࠬ      Turbo
Vision ࠡ뢠 ?


                         த ᮡ⨩.

       ᥣ  ।⠢  ᥡ    訥  
ଠ樨, 뢠騥 ⤥ 砨 (樨)   
ணࠬ   ॠ஢.    ⨥   ,   
⢨ 誨    ᫮,  㥬 㣨 ⠬
ணࠬ,  ⤥쭮 ᮡ⨥.      ࠧ 
  ;  ⠪  짮⥫ ࠥ ᫮ -  
 ᮡ⨥,   ⤥ ᮡ⨩  .
      ꥪ⭮-ਥ஢     Turbo  Vision    ⭮
㬠,  ᮡ  ⮦ ꥪ.    ⠪.  ᮡ 
ந ⢨;    ⮫쪮  ᮤঠ  ଠ   㣨
ꥪ⮢  ⮬ ।⠢ ﬨ.
     ஬     ⨯  ᮡ⨥      What ⨯
᫮. ᫮  祭    What  뢠    ᮡ,   
⠢       ⨯   ᮡ⨥   ᮤন   ᯥ樠
ଠ  ⮬ ᮡ⨨.         ᮡ  
, ଠ    樨  誨    ﭨ     
ᮡ  誨  ..
     ᪮ ࠧ  ᮡ⨩ । ।砥 
ꥪ⠬ ࠧ묨  ᯮᮡ,    砫  ᬮਬ  
ᮡ⨩ ᯮ  Turbo Vision.


                            ᮡ⨩.

      ᬮਬ   祭 Event.What. 
4 ᭮     ᮡ⨩:  ᮡ  誨,  ᮡ 
, ᮡ ᮮ饭    ""  ᮡ.    
 ।   ,   ⠪       ꥪ    
।  ⨯ ᮡ 稫,     ⭮
. ਬ,    ⮣,  ⮡ ஢  4 ࠧ 
ᮡ⨩  誨,     ஢,   䫠 ᮡ
 ᪥. 

     if Event.What and (evMouseDown or evMouseUp or evMouseMove or
       evMouseAuto) <> 0 then ...

       ᯮ짮

     if Event.What and evMouse  <> 0 then ...

     㯭 ᫥騥 ᪨:  evNothing (  ""  ᮡ⨩),
evMouse,    ᮡ⨩      誨;  evKeyBoard,    ᮡ⨩  
  evMessage  ᮮ饭.
      ᪨ ᮡ⨩ ।  .5.5.

                 . 5.1.   TEvent.What.

      Event Flags Ŀ
     msb                           lsb
       evMessage   = $FF00
                     evKeyboard  = $0010
                      evMouse     = $000F
     ϻ
     Ѽ
                               evMouseDown = $0001
                              evMouseUp   = $0002
                             evMouseMove = $0004
                            evMouseAuto = $0008
                           evKeyDown   = $0010
                    evCommand   = $0100
                   evBroadcast = $0200

                           誨.

      4  ᮡ⨩   誨:  ⨥    ᪠
 ,   樨  "" ᮡ⨥.  ⨨ 
 誨    ᮡ⨥   evMouseDown.      
᪠    ᮡ⨥   evMouseUp.  ६饭  誨
 ᮡ⨥ evMouseMove.  ᫨   ন    ⮩,
Turbo Vision ਮ᪨  ᮡ⨥ evMouseAvto, 
襩 ணࠬ ⠪ ⢨    騩  ஫.  
 ᮡ⨩    誨    誨,  ⠪  ꥪ,
ࠡ뢠騩 ᮡ⨥   室 誠   .


                        .

             .      
, Turbo Vision  ᮡ⨥ evDown,  ஥  ᮤন
ଠ  ⮩ .


                         ᮮ饭.

      ᮮ饭 뢠 3 :  ,  騥 ᮮ饭 
짮⥫᪨  ᮮ饭.    ⫨  ࠡ⪮  㤥
᭥ .      What १ evCommand,
騥 ᮮ饭  १  evBroadcast    짮⥫᪨  ᮮ饭
⠭⮩ । 짮⥫.


                         "" ᮡ.

     "" ᮡ    ⢨⥫쭮  ᮡ.  
⠫  ᮡ⨥,  ᪮  ࠡ⠭. ᫨ 
What   ᮡ ᮤন 祭 evNothing,    
ᮤন  ଠ樨,  ॡ ࠡ⪨.
      ꥪ  Turbo  Vision 稢 ࠡ ᮡ,  
뢠  ⮤  ClearEvent,    ⠭    What  
evNothing,  㪠뢠    ᮡ⨥ 뫮 ࠡ⠭.  ꥪ 
 ஢ ᮡ evNothing, ᪮  㦥 ࠡ⠭
㣨 ꥪ⮬.


                          .

     設⢮ ᮡ⨩  筮 ⮣ ८ࠧ   ,
ਬ, ⬥⪠  誮      ப    
ᮡ⨥  誨.    㯠  ꥪ  "ப  ",
 ꥪ    ⪫      ᮡ⨥      誨,   
ᮡ⨥-  祭   Command,  ।塞  
易  ⮬ ப .  ⨥ 誮  Alt-X Exit
  cmQuit,    ணࠬ    
  ⥬  襭.


                         । ᮡ⨩.

       Turbo Vision  ࠡ    ਭ樯  "
⮫쪮      ⥡ ".    宦  ⨢ 
,   ᪮॥ ᨢ ,    ᮡ⨩  ᪠
,  ந諮 ᮡ⨥,  ஥ ॡ ⪫.
      ⮣ ⮡  ணࠬ  Turbo Vision    
,     ⮫쪮 ᪠  ⠬,  ,
 砥 । ᮡ⨥,          
ᮡ  ।      .    祭
ᮡ⨩  㦭  -   ࠢ쭠  ਧ  ᮡ⨩.
  ᮡ  ।  ᥬ  ⠬  ணࠬ,  㣨
ࠢ 筮  ।  ணࠬ.


                     㤠 室 ᮡ.

      ᪠   1,   横 ࠡ⪨  TApplication,
⮤ Run 뢠 TGroup.Execute,  ᭮  横:

     var E: TEvent;
     E.What := evNothing; { 㪠뢠   ᮡ⨩ }
     repeat
       if E.What <> evNothing then EventError(E);
       GetEvent(E);       { 㯠뢠  ᮡ }
       HandleEvent(E);    { ࠢ ᮡ⨥  㦭  }
     until EndState <> Continue;

       GetEvent ᬮ   ஢,   稫
   ,     ᮡ⨥.  ᫨ 稫,  GetEvent
ᮧ ᮮ⢥      ᮡ.    ⥬    HandleEvent
ࠢ ᮡ⨥  ᮮ⢥騥  . ᫨ ᮡ⨥
 ࠡ⠭ (  饭)  ६    ୥    
横,   뢠 EventError, ⮡ 㪠  㦭 ᮡ⨥.
 㬮砭 EventError 祣  .


                        㤠  ᮡ.

      ᥣ   稭  ᢮      ⥪饣  쭮
 .   ଠ  権    筮  砥
ꥪ "  ணࠬ".    믮 쭮 
,    -      .    
砥,     稭 ࠡ ᮡ. 㤠
ᮡ⨥     த ᮡ.
      ।      ᯮᮡ,   ᨬ 
 ᮡ.    ।: 樮஢, ⨢
 騥.    ।   ᮡ.


                    樮஢ ᮡ.

     樮஢ ᮡ     ᥣ   ᮡ      誨
(evMouse).
        砥  樮஢  ᮡ⨥
  稭 ᬠਢ ᢮   Z-浪  
          ᮤঠ騩  ,    ன
 ᮡ⨥.  (Z-冷 ᭥   4).  ⥬ 
  । ᮡ⨥ ⮬  . ᪮
      ४뢠,        窠
ਭ    祬      .    
Z-浪 ࠭   ᮡ⨥  ᠬ 孨 
, 騩  .
       த        
   । ᮡ,    -  ⮣,    
ନ     (    ⮢),    
 ⮢   ⮣  ᮡ (ਬ
⬥祭 ⮥  ࠭⢮      ).    
ᮡ⨥ ⨣  ꥪ,          樮஢
ᮡ⨥  ꥪ ࠡ뢠 ᮡ⨥.


                         ⨢ ᮡ.

     ⨢ ᮡ     (evKeyDown)    
(evCommand)   ।      ⨢  楯窥.  (⠫쭮
ᠭ ⨢  ⮢  ⨢ 楯窨  ਢ 
"࠭  ⨢  "  4).
     騩     砥  ⨢  ᮡ⨥
  ।   ࠭ .  ᫨  
ᮤন ࠭ ,   ।  ᮡ⨥  .  
த           㤥  ⨣  ନ
 :   ⨢   .  ⨢  
 砥  ࠡ뢠 ⨢ ᮡ⨥.
     ᫨ ⨢      ࠡ -
 祭  ᮡ⨩,    ।  ᮡ⨥      ⨢
楯窥 ᢮ .            
ᮡ⨥   㤥  ࠡ⠭    ᭮    ⨣ 쭮
 .  ᫨          
ࠡ   襥   ᮡ⨥,    뢠  EventError.  
 - 㦭 ᮡ⨥.  (⨢      
ࠡ뢠 ⨢ ᮡ. . ࠧ "".)
          ਭ樯  ⨢  ᮡ⨩
ᮢ襭 ᭮.  ਬ,  ⥣஢ । Turbo Pascal 
   ᪮쪮  䠩      ।.     
 ,        䠩      ᨬ.
 ᬮਬ  Turbo Vision ᯥ稢 .
     ⨥        ᮡ⨥   evKeyDown,   ஥
㯠    ⥪騩            -    ꥪ
TApplication. TApplication   뫠   ᮡ⨥  ᢮  ࠭
 -  ࠭ ( ࠭ - ᥣ  ࠭ 
TApplication).   ࠭  뫠  ᮡ⨥  ᢮ ࠭
   -  ⨢    (    ࠬ).   
। ⠪     - ࠬ,   ஫ 
  ஫.      ࠭ ⮫쪮  (
᫥⥫쭮 ࠭   㬮砭),  ⮬ ᮡ⨥  
室  .  - ।   ⮢  
  ࠡ ᨬ  ᮡ⨨ evKeyDown.


                          騥 ᮡ.

     騥 ᮡ  筮 騥 ᮮ饭   짮⥫᪨
ᮮ饭.
     騥 ᮡ    ࠢ     樮஢   
⨢ ᮡ.    ।  訥  ᮡ    ᢮
祭   뫠   ᥬ      ⠬   ⥪饣
쭮  .
     騩    砥 ᮡ⨥   稭
।    ⠬    Z-浪.  ᫨      
⮢ - 㯯,   ⠪ । ᮡ⨥ ᢮ ⠬
 ⠪    Z-浪.    த       
   ਭ騥  (אַ    ᢥ)  쭮
    ᮮ饭.
     騥 ᮮ饭 筮 ᯮ  ⢨ 
⮢. ਬ,        ⬥砥    ஫  
ᬮ 䠩,  ஫  ᪠  
ᬮ,       ᥡ.   
   뤠 饥 ᮮ饭 " !", 㣨
 ,      ⥪,      ᮮ饭  
ॠ஢   .  ⥫  ⠫  ᬮ      ࠧ
"⭮ ⢨".
     ਬ砭: 騥  ᮮ饭      ࠢ  ꥪ
㭪樥 Message.


                 । 짮⥫.

      ⮫쪮     Turbo  Vision    ᮡﬨ,  
 ।  ⥣ ᮡ⨩, ᯮ 訥 
 What  ᮡ.    㬮砭  Turbo  Vision  ࠢ
⠪ ᮡ  騥 ᮡ.      ᤥ
騥 ᮡ  ⨢묨    樮஢묨    Turbo  Vision
।⠢ 堭, 騩 ᤥ .
     Turbo Vision  ।    ᪨  Positional     Focused,
 ᮤঠ    ᮮ⢥騥 ᮡ   What 
ᮡ,    ࠢ   樮஢  
⨢ ᮮ⢥⢥.   㬮砭 Positional ᮤন  
evMouse,  Focused ᮤন evKeyBoard.  ᫨  । 㣮
         ᮡ,  ஥      ࠢ  
樮஢   ⨢,      ਡ      
ᮮ⢥饩 ᪥.  (  ⠬   ᪥  
 10).


                       ᪨஢ ᮡ⨩.

          ⮢  EventMask,  ஥
ᯮ   ।,    ᮡ  㤥  ࠡ뢠
   .      EventMask   ᮮ⢥   ⠬  
TEvent.What.  ᫨     ᮡ ⠭, 
  㤥  ਭ   ᮡ  ࠡ⪨.  ᫨ 
   ᮡ 饭,   㤥 ஢
  ᮡ⨩.


                               .

      樨        ⮡    
⫨   ⨢  ࠡ뢠  ⨢  ᮡ (ᮡ 
). ਬ,   ᬮ ⥪  ஫㥬   
   ᯮ짮   ஫ ⥪,  
᪮ ⥪⮢   ⨢  ,  ᮡ  
 室   ,     ᠬ ஫,   
஫  .
      Turbo Vision ।⠢ 堭 騩 
⠬ ⫨   ⨢        ࠡ뢠
⨢ ᮡ.    ।  ᠭ    ࠧ  "⨢
ᮡ" ᮫⭮ ४⭠,    ᪫祭  筮
宦 ⨢ 楯窨.
             砥      ࠡ⪨
⨢ ᮡ⨥, । 믮   "䠧":
     - ⨥  뫠  ᥬ  ⠬  (  Z-浪),   
 ⠭ 䫠 ofPreProcess.
     - ᫨ ᮡ⨥    饭        ,    ᮡ⨥
뫠  ⨢  .
     - ᫨ ᮡ⨥    饭,   뫠  Z-浪
ᥬ ⠬  ⠭ 䫠 ofPostProcess.
       ।饬 ਬ,  ᫨   ஫  室
 ,       ।祭   ⨢   ⥪⮢
,   ஫         樠஢   
⠭ 䫠 ofPreProcess.  ᫨  ᬮ  ணࠬ
TVDEMO09.PAS          ஫      
⮢    ⠭묨  ofPostProcess.  ᫨
     ⠪,  ⮡        ⠭,
஫   㤥 饭.
     ⨬ ⠪   ⮬ ਬ  让 ࠧ,    
⠭ -  ofPreProcess    ofPostProcess.  ᪮ ⨢
   ⮬ 砥    ࠡ뢠    ᮡ⨥  (ᠬ
TScroller 祣     ﬨ ),   ஫
   ᮡ    ⠪    ᫥  ⮣,    ᮡ⨥
।  ஫.
        ᯮ짮    ⠪     ofPostProcess,
᪮    ।⠢    .      
   ,   ஢ ⨥ ,  ᫨
   ᯮ짮 ᮩ ஫,   ⮣  
 祭  ⨢  ⮬  (ofPreProcess),    
  㤥 ॠ஢  .

     ਬ砭:        ॡ  墠  ⨢
ᮡ⨩  ⮣  ⨢  砥  ,    ,
⠢    㯭 ⥩, ᪮  (
- )  ᫥        ⮣  ꥪ  
饬.


                             Phase.

      㯯      Phase,   ஥   ਭ   
祭:  phFocused,  phPreProcess  phPostProcess.  ஢ 䫠
Phase ,           ᪠,   㤥   
ࠡ뢠  ᮡ⨥  ⨢  ᮡ⨥  ,   ६  ᫥
।.   室,  ..     
 ࠧ  ᮡ    ॠ   ᮡ 
ࠧ,  ᨬ  䠧.
     ᬮਬ 砩 ⮣  ,  ஥ ᮤন
ப     ⪮ "All right"  ⪨ ஬ "A".
 ࠢ騬  ⠬  筮            
⢨⥫쭮        䠧.  設⢮  ⮢
ࠢ   ofPostProcess ⠭  㬮砭, ⮬
  (⨢ ᮡ)  ।  ,  
墠뢠   ⨢,  ᫨  뫠    ⪠  .
⨥ "" । ⨢  "All right".
      ।   ⨢ ப ,  ⠪  
 ࠡ뢠  ⠢ ப .  ⨥ 
"" ⠢  ""    ப       㢨 
ᮡ⨥, ᪮ ⨢   ࠡ⠫ .  ᫨  
 ।⥫  ࠡ    ""   ,  
ᬮ 墠뢠     ⮣      ࠡ⠥
⨢  .  ᮦ      㪢
""  ப !
     襭 祭 : ᤥ ஢    ࠧ
⪨    ᫥ ⮣    ⨢    ࠡ⠥
ᮡ⨥.   㬮砭  ᬠਢ ᢮   
ଥ Alt-㪢     ଥ  㪢  ᫥  .  
祬   ᯮ짮 ⪨  Alt-㪢  
,   ࠡ뢠  㪢  ⮫쪮    ⨢
 ࠢ  "" .
       ᤥ.   㬮砭     ⠭
ofPreProcess  ofPostProcess, ⠪   ⨢ ᮡ   
᫥ ⨢  ,      ⮤  HandleEvent
 ஢      ⮫쪮  ᫨ ⨢ 
ࠢ 㦥  ᮡ⨥:

     evKeyDown: {    case }
       begin
         C := HotKey(Title^);
         if (Event.KeyCode = GetAltCode(C)) or
            (Owner^.Phase = phPostProcess) and (C <> #0) and
            (upcase(Event.CharCode) = C) or
         (State and sfFocused <> 0) and (Event.CharCode = ' ') then
         begin
           PressButton;
           ClearEvent(Event);
         end;
       end;


                             .

     設⢮ 樮஢  ⨢ ᮡ⨩ ࠭᫨
ࠡ뢠騬    ꥪ⠬      .   ..  ꥪ  
⪫   ⬥  誮      樥   ᮡ
.
     ਬ, ⬥⨢  ப  ணࠬ   Turbo  Vision
  樮 ( 誨) ᮡ⨥. ணࠬ ।
 ⬥⪠ 뫠  樮஢      ࠢ塞  ப
  । ᮡ⨥  ꥪ ப  StatusLine.
     StatusLine ।    ⮢  ࠢ  
⬥祭   ⠥     ⮣ .  
 筮  易      StatusLine  ᮧ
      What,  ⠭  evCommand   
Command,  ⠭  ,    뫠  易    ⨬
⮬ . ⥬  頥 ᮡ⨥  誨,  砥
  ᫥饥  ᮡ⨥  㦥  GetEvent  㤥  ⮫쪮  
ᣥ஢ ᮡ⨥ .


                        । .

     Turbo Vision   ।।        
।     ᢮.      ᮧ    
,  ⠪ ᮧ ,  ᯮ  맮
⮣  .     ந쭮, 
 ᮣ襭 Turbo Vision 䨪   稭
 "cm".  堭  ᮧ      -    ⮫쪮  ᮧ
⠭:

     const
       cmConfuseTheCat = 100;

     Turbo Vision  १ࢨ     0  99   256  999
 ᮡ⢥ ᯮ짮.   ணࠬ   ᯮ짮
    100  255   1000  65535.
     稭 ⮣         ⮫쪮  
⮬       0   255   饭.  Turbo Vision
१ࢨ   ,        饭  
            饭    ᢮
⠭   ७ ࠡ.      ஫
 ⠢訬 .

             5.1.   Turbo Vision.

     
          १ࢨ஢    
                                    饭
     
     0..99                            
     100..255                        
     256..999                         
     1000..65535                     
     


                        뢠 .

        ᮧ    ப       ,   
뢠   .  짮⥫ 롨ࠥ  ,
  ᮡ   What ⠭   evCommand
  Command ⠭  祭 易 . 
   ⠭⭮     Turbo   Vision      
। .   ,   뢠   
⮬   ப ,   ⠪   易    
祩 襩.  ..  짮⥫  맢 ,  
 ⪮   誮.
     ਬ砭:          ।    
㪠뢠   ⢨      믮,    
     ᮡ.      ᪠ ᮮ⢥騬
ꥪ⠬,  ⪫   .


                  襭  饭 .

      室,  ⮡      뫨 㯭
짮⥫ ।  ६.  ਬ,       ,
᫥ ࠧ    짮⥫   ஢   ⠭
   cmClose.  Turbo Vision  ।⠢  ᯮᮡ
  ࠧ  .
      ࠧ襭  饭   ᯮ    ⨯
TCommandSet,    ⢮  ᥫ    0
 255.  ( 祬    ⮫쪮      
0..255). 騩  頥 㯯  5  :

     var
       WindowCommands: TCommandSet;
     begin
       WindowCommands := [cmNext, cmPrev, cmZoom, cmResize,
                          cmClose];
       DisableCommands(WindowCommands);
     end;


                        ࠡ⪠ ᮡ⨩.

     ᫥ ⮣,    ।     ⠭  
ࠢ,      - ਬ,      
   -  㦭     , 
ॠ஢,    .
        ᫥  ⮤  HandleEvent,  
㦥 ,    ॠ஢       짮⥫.
᫨  ,  ⮡     -  ᯥ᪮
 襩 ணࠬ,  室 ४ HandleEvent  
 HandleEvent  頬 -  ⪫  । 
     ⪫  ᮡ  誨   㦭
 ࠧ.
     ⮤ HandleEvent  ।   . 
   묨 ⮤ HandleEvent  
⪫    ᮡ.      ஦  ⨯ 
,   筮 ,  ⮡       
ᮮ⢥⢮    ।    묨  ﬨ.  
⮩ ᯮᮡ  ⮣ - 맢 HandleEvent ।   ⮤
HandleEvent  ꥪ.
     騩  HandleEvent ᫥:

     procedure NewDescendant.HandleEvent(var Event: TEvent);
     begin
       {, 騩  ࠭稢騩 㭠᫥
        }
       Parent.HandleEvent(Event);
       {, 믮騩 ⥫ 㭪樨}
     end;

      Parent - ⨯ ।.
     㣨 ᫮,   ᫨      ,   ⮡     ꥪ
ࠡ뢠 ᮡ  ⠪,       ।,    
墠 ।   ᮡ    ।  ᮡ    ⮤
HandleEvent ।.  ᫨  ,  ⮡     ꥪ  
ᥡ ⠪,      ।,    ⥫묨 㭪ﬨ,  
   ᫥ 맮 楤 HandleEvent ।.


                           ᮡ.

      ⮣       ⮩    㦤  ⥮᪨
ᯥ ᮡ.   ਫ  ⮬,    ࠧ    ᮡ⨩
(誠, ,  ᮮ饭  "") ।   What
ᮡ.  ⠪  ⪮ 㤨 ᯮ짮   Command  
ᮡ⨩-.
      ᠬ  ६  㤨    룫廊    ᮡ.
 DRIVERS.TPU   Turbo Vision । ⨯ TEvent  
 ਠ⠬:

     TEvent = record
       What: Word;
       case Word of
         evNothing: ();
         evMouse: (
           Buttons: Byte;
           Double: Boolean;
           Where: TPoint);
         evKeyDown: (
           case Integer of
             0: (KeyCode: Word);
             1: (CharCode: Char; ScanCode: Byte));
         evMessage: (
           Command: Word;
           case Word of
             0: (InfoPtr: Pointer);
             1: (InfoLong: Longint);
             2: (InfoWord: Word);
             3: (InfoInt: Integer);
             4: (InfoByte: Byte);
             5: (InfoChar: Char));
     end;

        ਠ⠬ ᬠਢ  祭  What.
, ᫨ TEvent.What -  evMouseDown,  TEvent ᮤন:

     Buttons: Byte;
     Double: Boolean;
     Where: TPoint;

     ᫨ TEvent.What -    evKeyDown,      
   

     KeyCode: Word;

      

     CharCode: Char;
     ScanCode: Byte;

     ᫥ ਠ   ᮡ  ࠭ 祭 ⨯
Pointer, LongInt,   Word,   Integer,   Byte     Char.    
ᯮ  Turbo Vision ࠧ묨 ᯮᮡ.   
 ᠬ  ஢  ᮡ    뫠    㣨  
⠬.   ⮬  砥      ᯮ     InfoPtr.
⢨   ⮢    InfoPtr ᠭ  ࠧ
"⢨  ⮢".


                         ⪠ ᮡ⨩.

      ⮤  Handle     ࠡ⠫ ᮡ⨥,  
稢     맮  ⮤  ClearEvent.  ClearEvent
⠭   Event.What  ࠢ  evNothing  Event.InfoPtr 
@Self,  㪠뢠  饭 ᮡ⨥.  ᫨  ᮡ⨥  㤥
।  㣮  ꥪ,        ஢  "⮥"
ᮡ⨥.


                         㦭 ᮡ.

     筮   ᮡ⨥  ࠡ뢠  -   
⮢ 襩 ணࠬ.  ᫨       ⮢  
ࠡ⠫ ᮡ⨥,      뢠 EventError.
EventError 뢠 EventError     ⠪ 
 ,   㤥 맢 TApplication.EventError.
     TApplication.EventError  㬮砭  祣    .  
室   ४ EventError  맮 
  訡   ᨣ.  ᪮  짮⥫
襩 ணࠬ    ⢥砥   訡 ணࠬ,  ࠡ뢠饩
ᮡ⨥, ⠪    ⭮      㤠  
᪮ ᨨ ணࠬ.
     ClearEvent ⠪    ⠬ ⢮
   㣮.    ,       ࠡ
ᮡ   ,   맮 ClearEvent.


                  䨪 堭 ᮡ⨩.

     楬 ⥪饣  쭮      横
⨯:

     var
       E: TEvent;
     begin
       E.What := evNothing;
       repeat
         if E.What <> evNothing then EventError(E);
         GetEvent(E);
         HandleEvent(E);
       until EndState <> Continue;
     end;


                   ࠫ ᡮ ᮡ⨩.

         ⨦  ணࠬ஢  ࠢ塞
ᮡﬨ   ⮬,            㤠 㯠
ᮡ. ਬ,  ꥪ   ⮫쪮 ,     
   ᮡ⨨    cmClose,      .   
     㯨  ⬥⪨    뢠饩
,     롮  ,    祩 ,   諮
ᮮ饭  㣮 ꥪ ணࠬ.     ᯮ  
⮬, ।砫    .  ⮫쪮   
ࠡ  ᮡ⨥  ࠡ뢠 .
         ⮬   "୮  騪"  ᮡ⨩  -  ⮤  GetEvent
ணࠬ. GetEvent -   ⢥    ணࠬ,  
 筨  ᮡ⨩.  ꥪ  襩  ணࠬ 
뢠 GetEvent     ᮡ    誨,    
ᣥ஢ 㣨 ꥪ⠬.
     ᫨   ᮧ    ᮡ⨩  (ਬ,  ⥭
ᨬ    ᫥⥫쭮   )       ४뢠
TApplication.GetEvent  襩 ணࠬ.     㢨  
TProgram.GetEvent   APP.PAS  横    GetEvent  ᪠   
,  ⥬ 뢠 Idle.  ⮡ ⠢    筨
ᮡ⨩,       ४ Idle  ᬮ ᨬ 
᫥⥫쭮   樨  ᮡ⨩,  ᭮    
ᨬ,     ४    ᠬ    GetEvent,    ⮡   
GetComEvent(Event)   横,    GetComEvent   頥   
ᮡ, ᫨ 㯥 ᨬ  ᫥⥫쭮 .


                       ४⨥ GetEvent.

     GetEvent ⥪饣  쭮         뢠
GetEvent    ⠪  室    ॢ 
⮢  TApplication.GetEvent,   ᫥饥 ॠ쭮
ᮡ⨥.
     ᪮ Turbo Vision ᥣ ᯮ TApplication.GetEvent
 ᪠  ᮡ⨩,      ஢ ᮡ ᥩ 襩
ணࠬ, ४뢠 ⮫쪮  ⮤.  ਬ,   ॠ樨
      ᬠਢ ᮡ,  頥
GetEvent, 墠뢠 ।     ࠧ뢠
  .   窨 ७ ⠫쭮 ணࠬ ⮪ ᮡ⨩ 㤥
室 אַ  짮⥫.

     procedure TMyApp.GetEvent(var Event: TEvent);
     begin
       TApplication.GetEvent(Event);
     end;


                      ᯮ짮 ६.

     㣮 २⢮ 業ࠫ쭮 ⮭宦 TApplication.
GetEvent  ⮬,    뢠 ⮤ TApplication.Idle,  ᫨ 
⮢ ᮡ⨩.  TApplication.Idle -  ⮩ ⮤,   
 ४   ⮣,  ⮡ 믮 ࠫ ࠡ
६  ⥪騬  ⮬.
     ਬ ।,  ।  , 
THeapView,   ᯮ   ⮤   UpDate      ⮡ࠦ
㯭         .  (ਬ  ᬮ 
祭   樮  ணࠬ        ਡ⨢
᪠.) ᫨    ४뢠 TApplication.Idle,  ᫥騬 
짮⥫ ᬮ 㢨 ⮡ࠦ 㯭    
ᨬ   宦  ணࠬ.

     procedure TMyApp.Idle;
     begin
       HeapViewer.Update;
     end;


                 ⢨  ⮢.

     ணࠬ Turbo  Vision  㫨஢  ꥪ   
 ⮫쪮   ꥪ⮢.  , ᫨  ꥪ⠬  ॡ  
ଠ樥   㣨  ꥪ⠬  襩 ணࠬ?   ࠤ樮
ணࠬ   ⭮  㤥  ஢  ଠ      
   .  ꥪ⭮-ਥ஢ ணࠬ 
  ,  ᪮ ꥪ   ,    
㣨 ꥪ.
     ⢨  ⮢  -        ।
   ﬨ  筮 ணࠬ  ᪠.  ( 2 
筮 ணࠬ      ᪠              
㭪樮쭮     ⮢  Turbo Vision).
     ᫨  室 ⢨    ⮢, 
 -   ࠢ쭮   ࠧ    묨
⠬. ஡           -    ࠢ쭮
஥஢ ணࠬ.  ⭮  2    
ꥤ                
   ६饭  㣮  .


                            ।.

     ᫨ ணࠬ ஥஢  ࠢ쭮      
ॡ ⢨    ᮡ,      ᯮᮡ - ᮧ
஬  .
     ਬ, ।,          ꥪ  ஭
⠡  ꥪ ⥪⮢       
⠢ -    ஭ ⠡  ⥪⮢  
.  ணࠬ Turbo Vision   믮    
⢨   ⮢.   ।,    
   ⮩ 㯯 ꥪ⮢,  ᪠,   
⠢         .    ⮬  砥   ॡ
㡫஢ , ⠭   묨  ꥪ⠬
  3 ꥪ.
     襥 襭 -  ⠭ ஬  .
 ⮬  砥,  ᪠,  "ଠ".  ꥪ   ⮫쪮 
஢ -     ଠ      ⠢  -  
ଠ.    ᨬ    ⮣,  ᪮쪮    ꥪ⮢  
  㯯,  ⢨   ⠭  ᫮,
祬 ᥩ.


               饭  묨 ⠬.

     ᫨  ⥫쭮 ஠஢  ,  訫, 
ணࠬ ஥஢ ࠢ쭮     ॡ ᮧ
஬ ,             ॠ     ⮥
⢨   묨 ⠬.
      ⮣,        ᬮ  ⢮
 㣨,   ।  室 㣮  
 ⭮  㡥,   㣮    
 ६.
     砫 ਬ.    Stddlg   ᮤন      
TFileDialog (      뢠   ⥣஢
।,    㧨    䠩).  TFileDialog  
TFileList,  뢠 ࠢ筨  ᪥,  䠩 InputLine
⮡ࠦ ⥪騩   䠩      㧪.      ࠧ,   
짮⥫  롨ࠥ  㣮  䠩    FileList,  FileList 
᪠ FilInputLine 뢥   䠩.
      ⮬  砥  FileList   㢥७,   FileInputLine
, ᪮  樠஢      ꥪ
FileDialog.    FileList   ᬮ   ᪠   FileInputLine,  
짮⥫ ࠫ  ?
     FileList ᮧ     뫠  ᮮ饭.  FileList.FocusItem
뫠 ᮮ饭,  FileInputLine.HandleEvent 砥 :

    procedure TFileList.FocusItem(Item: Integer);
    var
      Event: TEvent;
    begin
      TSortedListBox.FocusItem(Item);   { 砫 뢠
                                          ᫥㥬 ⮤ }
      Message(TopView, evBroadcast, cmFileFocused, List^.At(Item));
      { TopView 㪠뢠 ⥪騩    }
    end;

    procedure TFileInputLine.HandleEvent(var Event:TEvent);
    var
       Name: NameStr;
    begin
      TInputLine.HandleEvent(Event);
      if (Event.What = evBroadcast) and
        (Event.Command = cmFileFocused) and
        (State and sfSelected = 0) then
      begin
        if PSearchRec(Event.InfoPtr)^.Attr and Directory <> 0 then
           Data^ := PSearchRec(Event.InfoPtr)^.Name + '\' +
              PFileDialog(Owner)^.WildCard
        else Data^ := PSearchRec(Event.InfoPtr)^.Name;
        DrawView;
      end;
    end;

     Message -  㭪,    ᮡ⨥ ᮮ饭 
頥 㪠⥫  ꥪ (᫨ ),   ࠡ⠫  
ᮡ⨥.
     ⨬,    TFileList.FocusItem   ᯮ    ७
ᨭ⠪ Turbo   Pascal   (४⨢      $X+),   ⮡
ᯮ짮 㭪 Message   楤,  ᪮  १,
頥 Message,  㦥.


                  ࠡ뢠 騥 ᮮ饭?

     ।,  ॡ ।,  室   
࠭ ⮥  ०,  祬 믮  ⢨. 
 ᤥ?     ᫠ 饥 ᮡ⨥,  ஥ 
    ⢥.   "",  ⠢  ꥪ⮬,  
ࠡ⠫  ᮡ⨥, 㤥    (᫨ ) ࠡ⠫
.


                          -?

      ਬ.    IDE  Turbo  Pascal, ᫨   짮⥫
訢     ᬮ,  ,   뢠 
ᬮ,  ஢    㦥   ᬮ. ᫨
,  뢠 ; ᫨ , ७ .
     । 饣 ᮮ饭 :

     AreYouThere := Message(DeskTop, evBroadcast, cmFindWindow,
                            nil);

      ⮤  HandleEvent    ᬮ  ஢ઠ  ⪫
(⪠ ᮡ)   cmFindWindow:

     case Event.Command of
       ...
       cmFindWindow: ClearEvent(Event);
       ...
     end;

     ᯮ,  ClearEvent   ⮫쪮  ⠭    What
 ᮡ  evNothing,   ⠪  ⠭  InfoPtr 
@Self. Message ⠥   ,  ᫨  ᮡ⨥  뫮  ࠡ⠭,
頥 㪠⥫  ꥪ,  ࠡ⠢訩 ᮡ⨥-ᮮ饭.  
 砥   ᬮ.    ப,  뫠
ᮮ饭,  稬:

     if AreYouThere = nil then
       CreateWatchWindow
     else AreYouThere^.Select;

     ᪮   ᬮ  -  ⢥ ꥪ,  
  ⢥  饥 ᮮ饭 cmFindWindow,     
 㢥७,    믮, 㤥   ⮫쪮  
ᬮ  設   ⮢   ࠭.


                             ᢥ?

     ᯮ 孨,  ᠭ ࠭,  ⠪   ਬ
।,    孨     ⮢  
⨯   ࠭. ᪮ 饥 ᮮ饭 뫠 
 쭮        Z-浪   (冷
 ⠢),  ᠬ  ᫥  ⠢   -
 "孨"     ࠭.
     ᬮਬ ,      IDE,   짮⥫
  ᬮ,  ⮥  設  ࠭    ६
蠣 믮     ।.   ᬮ 
 ⨢  ( ࠬ),    믮    
 ॡ  ࠭    믮 .  ᫨  
࠭  ᪮쪮  ।,    ४뢠
,   IDE       । ।祭
 ஢.
     ⢥: 筮   ᠬ   孥      ।,   ஥
।  ᫥ ⠢.   ⮣,  ⮡ ।,
    "孥",  IDE 뫠 饥 ᮮ饭,  ⪫ 
஥  ⮫쪮  ।. ࢮ  ।, ஥
砥 饥   ᮮ饭     㤥  ᫥  ⠢;  
ࠡ⠥ ᮡ⨥,    ,      IDE   㧭      
ᯮ짮   ஢ ,   १,  饭
Message.


                        맮 HandleEvent.

      ⠪    ᮧ  ஢ ᮡ⨥,   ⥬
맢 HandleEvent .   ᤥ 3 ⨯ 맮:
     1.        ,  뢠騩 HandleEvent
ࠢ   אַ.  (""       -   
     楬).  饭   । 㣨
 ⠬.      אַ    ⮬  HandleEvent,  ⥬
ࠢ 頥  .
     2.    맢  HandleEvent  .  ⨥  㤥
⥬ ࠭   楯窥  ⮢.  (᫨ 
뢠  HandleEvent    襣  ᮡ⢥  HandleEvent,  
HandleEvent 㤥 뢠 ४ᨢ.) ࠢ । 
᫥ ࠡ⪨ ᮡ.
     3.     맢 HandleEvent    㣮
楯窨  ⮢.  ⨥ 㤥 ।   ⮩
楯窥    ⮢.   ࠢ   ।     ᫥
ࠡ⪨ ᮡ.


                        ⥪⭠ .

     Turbo Vision  ஥ 㬥,   
ॠ ⥪⭮-ਥ஢   襩 ணࠬ. 
     ⥪⭮  ᪠   
   ⠭ ⨢,    ᪠  ⠭
⥪騬 ஬ ⥪⭮ ᪠  ணࠬ.
     ⮡ ᮧ  ⥪⭮-ਥ஢ ᪠,
   ॠ  HelpView,     ⥪
᪠, । .    뢠  HelpView  (筮
⨥ F1  㣮 祩 ),     ᢮
  ⥪饬 ⥪ ᪠,  맢 ⮤  GetHelpCtx.
⥬ HelpView        ⮡ࠦ  ᮮ⢥騩 ⥪
᪠. ਬ HelpView 祭    ਡ⨢  ᪨  Turbo
Pascal.
     ⥪⭮-ਥ஢  -  ,  ⭮,    
᫥  ⥩,      㤥 ॠ뢠  襩
ணࠬ, ⮬  ꥪ   Turbo   Vision   樠   
⥪⮬ hcNoContext  㬮砭,   砥 ।।
⥪,    ⥪饣 ⥪.  室
   ࠧࠡ  ᪠,  ⥬ ⠢ ࠢ
  ᮮ⢥騩  ,  맢  SetHelpCtx  ࠧ
᫥ ᮧ  .
     ⥪⭠ ᪠ ⠪  ᯮ ப   
।,      ⮡ࠦ.  ᯮ,  
   ᮧ  ப  ,    뢠   NewStatusDef,
 ।    ⮢     
祭 ⥪⭮ .     ⠭
⨢, ⥪   ⮣  ।,   ப
 㤥 ⮡ࠦ.
