home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / spezial / 22 / saa / mnuitems.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1991-01-04  |  16.7 KB  |  575 lines

  1. (* ----------------------------------------------------- *)
  2. (*                      MNUITEMS.PAS                     *)
  3. (*                                                       *)
  4. (* ■ MenuItem: Erweitert SAAItem um HelpString; prüft, ob*)
  5. (*   Enter gedrückt wurde, übernimmt Darstellung.        *)
  6. (* ■ PopUpItem: Prüft zusätzlich nur, ob Cursor hoch oder*)
  7. (*   runter gedrückt wurde.                              *)
  8. (* ■ ExeItem: "Ausführbarer" Item, Item, der bei seiner  *)
  9. (*   Wahl Aktion auslösen soll; falls gewählt, ReturnCode*)
  10. (*   ItSelected.                                         *)
  11. (* ■ DirectExeItem: Enthält zusätzlich Tastaturcode, mit *)
  12. (*   dem der Item direkt, ohne dass er oder sein "Über-  *)
  13. (*   menü" aktiv sind, ReturnCode=ItDirectSelected.      *)
  14. (* ■ SwitchItem: Item, der On oder Off sein kann, gibt   *)
  15. (*   den ReturnCode ItEvAccepted zurück.                 *)
  16. (* ■ GlobalSwitchItem: Ändert direkt Flag ausserhalb des *)
  17. (*   Objekts, enthält also einen Zeiger darauf.          *)
  18. (* ■ LineItem: Keinerlei "Wahl" mit Tastatur möglich,    *)
  19. (*   falls mit Maus gewählt wird, ReturnCode=ItFinish.   *)
  20. (* ■ SlideBarItem: Für horizontales Menu, prüft nur, ob  *)
  21. (*   Pfeil links oder rechts oder Enter gedrückt wurde.  *)
  22. (*   Dient als Item, bei dessesn Wahl ein PopUpMenu ge-  *)
  23. (*   öffnet wird, ReturnCode=ItSelected.                 *)
  24. (*                                                       *)
  25. (*           (c) 1991 by R.Reichert & toolbox            *)
  26. (* ----------------------------------------------------- *)
  27. UNIT MnuItems;
  28.  
  29. INTERFACE
  30.  
  31. USES Stuff, MouKey, WinVSM, SAAItemD;
  32.  
  33. CONST
  34.   ItOk            = 0; { Alles in Ordnung                 }
  35.   ItEvNotMine     = 1; { Event passt mir nicht            }
  36.   ItEvAccepted    = 2; { Event angenommen, => weitermachen}
  37.   ItFinish        = 3; { beenden, Abbruch                 }
  38.   ItSelected      = 4; { wurde gewählt                    }
  39.   ItActPrev       = 5; { aktiviere vorhergehenden Item    }
  40.   ItActNext       = 6; { aktiviere nächsten Item          }
  41.   ItDirectSelected= 7; { Item des Typs DirectExeItem wurde
  42.                          angewählt                        }
  43.  
  44.   MenuHotKeyCol   : BYTE = $0F;
  45.   MenuItemColor   : BYTE = $07;
  46.   ActiveItemColor : BYTE = $70;
  47.   HelpStrColor    : BYTE = $07;
  48.   UnenabledItemCol: BYTE = $01;
  49.   SwitchChrColor  : BYTE = $07;
  50.   MenuFrameColor  : BYTE = $07;
  51.  
  52. TYPE
  53.   BooleanPtr = ^Boolean;
  54.  
  55.   MenuItemPtr = ^MenuItem;
  56.   MenuItem = OBJECT (SAAItem)
  57.  
  58.     MenuActive : BOOLEAN;
  59.     ActCol,
  60.     HelpCol,
  61.     hx, hy     : BYTE;
  62.     HelpStr    : ^STRING;
  63.  
  64.     CONSTRUCTOR Init (nx, ny : BYTE;
  65.                       N      : STRING;
  66.                       AltHKC : WORD;
  67.                       nhx,nhy: BYTE;
  68.                       H      : STRING;
  69.                       NewVSM : WExtVSMPtr);
  70.     PROCEDURE SetColors (NC, NHKC, NAC, NHC : BYTE);
  71.     PROCEDURE SetMenu (Act : BOOLEAN);             VIRTUAL;
  72.     PROCEDURE Display;                             VIRTUAL;
  73.     PROCEDURE SetPassive;                          VIRTUAL;
  74.     PROCEDURE CheckKeyEv (VAR Ev : EventObj);      VIRTUAL;
  75.  
  76.     FUNCTION GetActCol : BYTE;                     VIRTUAL;
  77.     FUNCTION GetHelpCol: BYTE;                     VIRTUAL;
  78.     FUNCTION GetHelpX : BYTE;                      VIRTUAL;
  79.     FUNCTION GetHelpY : BYTE;                      VIRTUAL;
  80.     FUNCTION GetHelpStr : STRING;                  VIRTUAL;
  81.     DESTRUCTOR Done;                               VIRTUAL;
  82.   END;
  83.  
  84.   PopUpItemPtr = ^PopUpItem;
  85.   PopUpItem    = OBJECT (MenuItem)
  86.     PROCEDURE CheckKeyEv (VAR Ev : EventObj);      VIRTUAL;
  87.   END;
  88.  
  89.   ExeItemPtr = ^ExeItem;
  90.   ExeItem    = OBJECT (PopUpItem)
  91.  
  92.     UnAblCol: BYTE;
  93.     Enabled : BOOLEAN;
  94.  
  95.     CONSTRUCTOR Init (nx, ny : BYTE;
  96.                       N      : STRING;
  97.                       AltHKC : WORD;
  98.                       nhx,nhy: BYTE;
  99.                       H      : STRING;
  100.                       NEnabled: BOOLEAN;
  101.                       NewVSM : WExtVSMPtr);
  102.     PROCEDURE SetColors (NC, NHKC, NAC, NHC, NUC : BYTE);
  103.     PROCEDURE Display;                             VIRTUAL;
  104.     PROCEDURE CheckEvent (VAR Ev : EventObj);      VIRTUAL;
  105.     PROCEDURE SetActive;                           VIRTUAL;
  106.     PROCEDURE SetEnabled (On : BOOLEAN);           VIRTUAL;
  107.  
  108.     FUNCTION GetEnabled : BOOLEAN;                 VIRTUAL;
  109.     FUNCTION GetUnenabledCol : BYTE;               VIRTUAL;
  110.   END;
  111.  
  112.   DirectExeItemPtr = ^DirectExeItem;
  113.   DirectExeItem    = OBJECT (ExeItem)
  114.  
  115.     DirectCode : WORD;
  116.  
  117.     CONSTRUCTOR Init (nx, ny : BYTE;
  118.                       N      : STRING;
  119.                       AltHKC : WORD;
  120.                       DC     : WORD;
  121.                       nhx,nhy: BYTE;
  122.                       H      : STRING;
  123.                       NEnabl : BOOLEAN;
  124.                       NewVSM : WExtVSMPtr);
  125.  
  126.     PROCEDURE CheckKeyEv (VAR Ev : EventObj);      VIRTUAL;
  127.   END;
  128.  
  129.   SwitchItemPtr = ^SwitchItem;
  130.   SwitchItem    = OBJECT (PopUpItem)
  131.  
  132.     SwChrCol : BYTE;
  133.     On       : BOOLEAN;
  134.     SaveFl   : BOOLEAN;
  135.  
  136.     CONSTRUCTOR Init (nx, ny : BYTE;
  137.                       N      : STRING;
  138.                       AltHKC : WORD;
  139.                       nhx,nhy: BYTE;
  140.                       H      : STRING;
  141.                       NOn    : BOOLEAN;
  142.                       NewVSM : WExtVSMPtr);
  143.     PROCEDURE SetColors (NC, NHKC, NAC, NHC, NSC : BYTE);
  144.     PROCEDURE Display;                             VIRTUAL;
  145.     PROCEDURE CheckEvent (VAR Ev : EventObj);      VIRTUAL;
  146.     PROCEDURE SaveConfiguration;                   VIRTUAL;
  147.     PROCEDURE RestoreConfiguration;                VIRTUAL;
  148.  
  149.     FUNCTION GetState : BOOLEAN;                   VIRTUAL;
  150.     FUNCTION GetSwChrCol : BYTE;                   VIRTUAL;
  151.   END;
  152.  
  153.   GlobalSwitchItemPtr = ^GlobalSwitchItem;
  154.   GlobalSwitchItem    = OBJECT (SwitchItem)
  155.  
  156.     OnPtr : BooleanPtr;
  157.  
  158.     CONSTRUCTOR Init (nx, ny : BYTE;
  159.                       N      : STRING;
  160.                       AltHKC : WORD;
  161.                       nhx,nhy: BYTE;
  162.                       H      : STRING;
  163.                       NOnPtr : BooleanPtr;
  164.                       NewVSM : WExtVSMPtr);
  165.     PROCEDURE CheckEvent (VAR Ev : EventObj);      VIRTUAL;
  166.     PROCEDURE SaveConfiguration;                   VIRTUAL;
  167.     PROCEDURE RestoreConfiguration;                VIRTUAL;
  168.  
  169.     FUNCTION GetState : BOOLEAN;                   VIRTUAL;
  170.   END;
  171.  
  172.   LineItemPtr = ^LineItem;
  173.   LineItem = OBJECT (PopUpItem)
  174.  
  175.     FrameCol : BYTE;
  176.  
  177.     CONSTRUCTOR Init (x1,y1,x2 : BYTE;
  178.                       NewVSM   : WExtVSMPtr);
  179.     PROCEDURE SetColors (NFC : BYTE);
  180.     PROCEDURE Display;                             VIRTUAL;
  181.     PROCEDURE SetActive;                           VIRTUAL;
  182.     PROCEDURE CheckEvent (VAR Ev : EventObj);      VIRTUAL;
  183.   END;
  184.  
  185.   SlideBarItemPtr = ^SlideBarItem;
  186.   SlideBarItem    = OBJECT (MenuItem)
  187.     PROCEDURE CheckKeyEv (VAR Ev : EventObj);      VIRTUAL;
  188.   END;
  189.  
  190. IMPLEMENTATION
  191.  
  192. (* ───────────────────────────────────────────────────── *)
  193. (*                Implementation von MenuItem            *)
  194. (* ───────────────────────────────────────────────────── *)
  195. CONSTRUCTOR MenuItem.Init (nx, ny : BYTE;
  196.                            N      : STRING;
  197.                            AltHKC : WORD;
  198.                            nhx,nhy: BYTE;
  199.                            H      : STRING;
  200.                            NewVSM : WExtVSMPtr);
  201. BEGIN
  202.   IF N[1]<>' ' THEN N := ' '+N;
  203.   IF SAAItem.Init (nx, ny, N, AltHKC, NewVSM) THEN BEGIN
  204.     ActCol := ActiveItemColor;  HelpCol := HelpStrColor;
  205.     HKCol := MenuHotKeyCol;     Col := MenuItemColor;
  206.     hx := nhx;  hy := nhy;
  207.     GetMem (HelpStr, Succ (Length (H)));  HelpStr^ := H;
  208.   END ELSE
  209.     Fail
  210. END;
  211.  
  212. PROCEDURE MenuItem.SetColors (NC, NHKC, NAC, NHC : BYTE);
  213. BEGIN
  214.   SAAItem.SetColors (NC, NHKC);
  215.   ActCol := NAC;  HelpCol := NHC;
  216. END;
  217.  
  218. PROCEDURE MenuItem.SetMenu (Act : BOOLEAN);
  219. BEGIN
  220.   MenuActive := Act;
  221. END;
  222.  
  223. PROCEDURE MenuItem.Display;
  224. BEGIN
  225.   SAAItem.Display;
  226.   SAAItem.DisplayHotKey;
  227.   Mouse^.Hide;
  228.   IF Active THEN BEGIN
  229.     VSM^.FillPart (hx, hy, VSM^.GetXLength, hy,
  230.                    HelpCol, ' ');
  231.     VSM^.WriteStr (hx, hy, HelpCol, HelpStr^);
  232.   END;
  233.   IF Active THEN
  234.     VSM^.FillPartAttr (x, y, Pred (x+Length (Name^)), y,
  235.                        ActCol);
  236.   Mouse^.Show;
  237. END;
  238.  
  239. PROCEDURE MenuItem.SetPassive;
  240. BEGIN
  241.   SAAItem.SetPassive;
  242.   Display;
  243. END;
  244.  
  245. PROCEDURE MenuItem.CheckKeyEv (VAR Ev : EventObj);
  246. BEGIN
  247.   ReturnCode := ItEvNotMine;
  248.   SAAItem.CheckKeyEv (Ev);
  249.   IF (ReturnCode=ItEvNotMine) AND
  250.      (Ev.EventType=EvKeyPressed) AND
  251.      (Ev.Key=Enter) AND (Active) THEN
  252.     ReturnCode := ItSelected;
  253. END;
  254.  
  255. FUNCTION MenuItem.GetActCol : BYTE;
  256. BEGIN
  257.   GetActCol := ActCol;
  258. END;
  259.  
  260. FUNCTION MenuItem.GetHelpCol: BYTE;
  261. BEGIN
  262.   GetHelpCol := HelpCol;
  263. END;
  264.  
  265. FUNCTION MenuItem.GetHelpX : BYTE;
  266. BEGIN
  267.   GetHelpX := Hx;
  268. END;
  269.  
  270. FUNCTION MenuItem.GetHelpY : BYTE;
  271. BEGIN
  272.   GetHelpY := hy;
  273. END;
  274.  
  275. FUNCTION MenuItem.GetHelpStr : STRING;
  276. BEGIN
  277.   GetHelpStr := HelpStr^;
  278. END;
  279.  
  280. DESTRUCTOR MenuItem.Done;
  281. BEGIN
  282.   SAAItem.Done;
  283.   IF HelpStr<>NIL THEN
  284.     FreeMem (HelpStr, Succ (Length (HelpStr^)));
  285. END;
  286.  
  287. (* ───────────────────────────────────────────────────── *)
  288. (*              Implementation von PopUpItem             *)
  289. (* ───────────────────────────────────────────────────── *)
  290. PROCEDURE PopUpItem.CheckKeyEv (VAR Ev : EventObj);
  291. BEGIN
  292.   IF MenuActive THEN BEGIN
  293.     MenuItem.CheckKeyEv (Ev);
  294.     IF (ReturnCode=ItEvNotMine) AND
  295.        (Ev.EventType=EvKeyPressed) AND
  296.        (Active) THEN BEGIN
  297.       IF Ev.Key=CurUp THEN BEGIN
  298.         SetPassive;
  299.         ReturnCode := ItActPrev;
  300.       END ELSE
  301.         IF Ev.Key=CurDown THEN BEGIN
  302.           SetPassive;
  303.           ReturnCode := ItActNext;
  304.         END;
  305.     END
  306.   END ELSE
  307.     ReturnCode := ItEvNotMine;
  308. END;
  309.  
  310. (* ───────────────────────────────────────────────────── *)
  311. (*              Implementation von ExeItem               *)
  312. (* ───────────────────────────────────────────────────── *)
  313. CONSTRUCTOR ExeItem.Init (nx, ny : BYTE;
  314.                           N      : STRING;
  315.                           AltHKC : WORD;
  316.                           nhx,nhy: BYTE;
  317.                           H      : STRING;
  318.                           NEnabled: BOOLEAN;
  319.                           NewVSM : WExtVSMPtr);
  320. BEGIN
  321.   IF PopUpItem.Init (nx, ny, N, AltHKC,
  322.                      nhx, nhy, H, NewVSM) THEN BEGIN
  323.     Enabled := NEnabled;  UnAblCol := UnenabledItemCol;
  324.   END ELSE
  325.     Fail;
  326. END;
  327.  
  328. PROCEDURE ExeItem.SetColors (NC,NHKC,NAC,NHC,NUC:BYTE);
  329. BEGIN
  330.   PopUpItem.SetColors (NC, NHKC, NAC, NHC);
  331.   UnAblCol := NUC;
  332. END;
  333.  
  334. PROCEDURE ExeItem.Display;
  335. BEGIN
  336.   IF Enabled THEN
  337.     PopUpItem.Display
  338.   ELSE BEGIN
  339.     Mouse^.Hide;
  340.     VSM^.WriteStr (x, y, UnAblCol, Name^);
  341.     Mouse^.Show;
  342.   END;
  343. END;
  344.  
  345. PROCEDURE ExeItem.CheckEvent (VAR Ev : EventObj);
  346. BEGIN
  347.   IF Enabled THEN PopUpItem.CheckEvent (Ev)
  348.              ELSE ReturnCode := ItEvNotMine;
  349. END;
  350.  
  351. PROCEDURE ExeItem.SetActive;
  352. BEGIN
  353.   IF Enabled THEN PopUpItem.SetActive;
  354. END;
  355.  
  356. PROCEDURE ExeItem.SetEnabled (On : BOOLEAN);
  357. BEGIN
  358.   Enabled := On;
  359. END;
  360.  
  361. FUNCTION ExeItem.GetEnabled : BOOLEAN;
  362. BEGIN
  363.   GetEnabled := Enabled;
  364. END;
  365.  
  366. FUNCTION ExeItem.GetUnenabledCol : BYTE;
  367. BEGIN
  368.   GetUnenabledCol := UnAblCol;
  369. END;
  370.  
  371. (* ───────────────────────────────────────────────────── *)
  372. (*            Implementation von DirectExeItem           *)
  373. (* ───────────────────────────────────────────────────── *)
  374. CONSTRUCTOR DirectExeItem.Init (nx, ny : BYTE;
  375.                                 N      : STRING;
  376.                                 AltHKC : WORD;
  377.                                 DC     : WORD;
  378.                                 nhx,nhy: BYTE;
  379.                                 H      : STRING;
  380.                                 NEnabl : BOOLEAN;
  381.                                 NewVSM : WExtVSMPtr);
  382. BEGIN
  383.   IF ExeItem.Init (nx,ny,N,AltHKC,
  384.                    nhx,nhy,H,NEnabl,NewVSM) THEN
  385.     DirectCode := DC
  386.   ELSE
  387.     Fail;
  388. END;
  389.  
  390. PROCEDURE DirectExeItem.CheckKeyEv (VAR Ev : EventObj);
  391. BEGIN
  392.   IF MenuActive THEN
  393.     ExeItem.CheckKeyEv (Ev)
  394.   ELSE
  395.     IF (ReturnCode=ItEvNotMine) AND
  396.        (Ev.EventType=EvKeyPressed) AND
  397.        (Ev.Key=DirectCode) THEN BEGIN
  398.       ReturnCode := ItDirectSelected;
  399.     END;
  400. END;
  401.  
  402. (* ───────────────────────────────────────────────────── *)
  403. (*             Implementation von SwitchItem             *)
  404. (* ───────────────────────────────────────────────────── *)
  405. CONSTRUCTOR SwitchItem.Init (nx, ny : BYTE;
  406.                              N      : STRING;
  407.                              AltHKC : WORD;
  408.                              nhx,nhy: BYTE;
  409.                              H      : STRING;
  410.                              NOn    : BOOLEAN;
  411.                              NewVSM : WExtVSMPtr);
  412. BEGIN
  413.   IF PopUpItem.Init (nx, ny, N, AltHKC,
  414.                      nhx, nhy, H, NewVSM) THEN BEGIN
  415.     On := NOn;  SwChrCol := SwitchChrColor;
  416.   END ELSE
  417.     Fail;
  418. END;
  419.  
  420. PROCEDURE SwitchItem.SetColors
  421.             (NC, NHKC, NAC, NHC, NSC : BYTE);
  422. BEGIN
  423.   PopUpItem.SetColors (NC, NHKC, NAC, NHC);
  424.   SwChrCol := NSC;
  425. END;
  426.  
  427. PROCEDURE SwitchItem.Display;
  428. BEGIN
  429.   PopUpItem.Display;
  430.   Mouse^.Hide;
  431.   IF Active THEN BEGIN
  432.     IF On THEN VSM^.WriteChr (x, y, ActCol, '√')
  433.           ELSE VSM^.WriteChr (x, y, ActCol, ' ');
  434.   END ELSE
  435.     IF On THEN VSM^.WriteChr (x, y, Col, '√')
  436.           ELSE VSM^.WriteChr (x, y, Col, ' ');
  437.   Mouse^.Show;
  438. END;
  439.  
  440. PROCEDURE SwitchItem.CheckEvent (VAR Ev : EventObj);
  441. BEGIN
  442.   PopUpItem.CheckEvent (Ev);
  443.   IF ReturnCode=ItSelected THEN BEGIN
  444.     On := NOT On;
  445.     Display;
  446.     ReturnCode := ItEvAccepted;
  447.   END;
  448. END;
  449.  
  450. PROCEDURE SwitchItem.SaveConfiguration;
  451. BEGIN
  452.   SaveFl := On;
  453. END;
  454.  
  455. PROCEDURE SwitchItem.RestoreConfiguration;
  456. BEGIN
  457.   On := SaveFl;
  458. END;
  459.  
  460. FUNCTION SwitchItem.GetState : BOOLEAN;
  461. BEGIN
  462.   GetState := On;
  463. END;
  464.  
  465. FUNCTION SwitchItem.GetSwChrCol : BYTE;
  466. BEGIN
  467.   GetSwChrCol := SwChrCol;
  468. END;
  469.  
  470. (* ───────────────────────────────────────────────────── *)
  471. (*           Implementation von GlobalSwitchItem         *)
  472. (* ───────────────────────────────────────────────────── *)
  473. CONSTRUCTOR GlobalSwitchItem.Init (nx, ny : BYTE;
  474.                                    N      : STRING;
  475.                                    AltHKC : WORD;
  476.                                    nhx,nhy: BYTE;
  477.                                    H      : STRING;
  478.                                    NOnPtr : BooleanPtr;
  479.                                    NewVSM : WExtVSMPtr);
  480. BEGIN
  481.   IF SwitchItem.Init (nx, ny, N, AltHKC,
  482.                       nhx, nhy, H,
  483.                       NOnPtr^, NewVSM) THEN
  484.     OnPtr := NOnPtr
  485.   ELSE
  486.     Fail;
  487. END;
  488.  
  489. PROCEDURE GlobalSwitchItem.CheckEvent (VAR Ev : EventObj);
  490. BEGIN
  491.   SwitchItem.CheckEvent (Ev);
  492.   IF (ReturnCode=ItEvAccepted) THEN
  493.     OnPtr^ := On;
  494. END;
  495.  
  496. PROCEDURE GlobalSwitchItem.SaveConfiguration;
  497. BEGIN
  498.   SaveFl := OnPtr^;
  499. END;
  500.  
  501. PROCEDURE GlobalSwitchItem.RestoreConfiguration;
  502. BEGIN
  503.   OnPtr^ := SaveFl;
  504. END;
  505.  
  506. FUNCTION GlobalSwitchItem.GetState : BOOLEAN;
  507. BEGIN
  508.   GetState := OnPtr^;
  509. END;
  510.  
  511. (* ───────────────────────────────────────────────────── *)
  512. (*               Implementation von LineItem             *)
  513. (* ───────────────────────────────────────────────────── *)
  514. CONSTRUCTOR LineItem.Init (x1,y1,x2 : BYTE;
  515.                            NewVSM   : WExtVSMPtr);
  516.   VAR i : INTEGER;
  517.       s : STRING;
  518. BEGIN
  519.   s := '';
  520.   FOR i := 1 TO Pred (x2-x1) DO
  521.     S := s+'─';
  522.   S := '├'+S+'┤';  FrameCol := MenuFrameColor;
  523.   HelpStr := NIL;
  524.   IF NOT SAAItem.Init (x1,y1,S,0,NewVSM) THEN
  525.     Fail;
  526. END;
  527.  
  528. PROCEDURE LineItem.SetColors (NFC : BYTE);
  529. BEGIN
  530.   FrameCol := NFC;
  531. END;
  532.  
  533. PROCEDURE LineItem.Display;
  534. BEGIN
  535.   Mouse^.Hide;
  536.   VSM^.WriteStr (x, y, FrameCol, Name^);
  537.   Mouse^.Show;
  538. END;
  539.  
  540. PROCEDURE LineItem.SetActive;
  541. BEGIN
  542.   ReturnCode := ItFinish;
  543. END;
  544.  
  545. PROCEDURE LineItem.CheckEvent (VAR Ev : EventObj);
  546. BEGIN
  547.   PopUpItem.CheckEvent (Ev);
  548.   IF ReturnCode=ItSelected THEN
  549.     ReturnCode := ItFinish;
  550. END;
  551.  
  552. (* ───────────────────────────────────────────────────── *)
  553. (*            Implementation von SlideBarItem            *)
  554. (* ───────────────────────────────────────────────────── *)
  555. PROCEDURE SlideBarItem.CheckKeyEv (VAR Ev : EventObj);
  556. BEGIN
  557.   MenuItem.CheckKeyEv (Ev);
  558.   IF (ReturnCode=ItEvNotMine) AND
  559.      (Ev.EventType=EvKeyPressed) AND
  560.      (Active) THEN
  561.     IF Ev.Key=CurLeft THEN BEGIN
  562.       SetPassive;
  563.       ReturnCode := ItActPrev;
  564.     END ELSE
  565.       IF Ev.Key=CurRight THEN BEGIN
  566.         SetPassive;
  567.         ReturnCode := ItActNext;
  568.       END;
  569. END;
  570.  
  571. END.
  572. (* ----------------------------------------------------- *)
  573. (*                Ende von MNUITEMS.PAS                  *)
  574. (* ----------------------------------------------------- *)
  575.