home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 07_08 / praxis / oop / butdemo.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1991-04-16  |  3.5 KB  |  115 lines

  1. (* ------------------------------------------------------ *)
  2. (*                     BUTDEMO.PAS                        *)
  3. (*         (c) 1991 Raimond Reichert & TOOLBOX            *)
  4. (* ------------------------------------------------------ *)
  5. PROGRAM SAAButtonsDemo;
  6.  
  7. USES Crt, MouKey, SAAItems;
  8.  
  9. CONST
  10.   AltA = 286; AltS = 287; AltP = 281; AltO = 280;
  11.   AltB = 304; AltC = 302; AltF = 289;
  12.   Enter = 13;
  13.   ESC   = 27;  Tab = 9;   ShiftTab = 271;
  14.  
  15. VAR
  16.   Items     : ARRAY [1..5] OF SAAItemPtr;
  17.   Ev        : EventObj;
  18.   Act, i,
  19.   Answer    : BYTE;
  20.   Quit      : BOOLEAN;
  21.   RadioButs : RadioButArray;
  22.  
  23. BEGIN
  24.   TextAttr := Yellow+Blue*15; ClrScr;
  25.   GotoXY(28, 1);
  26.   WriteLn('S A A - Buttons - D E M O');
  27.   FOR i := 1 TO 80 DO Write('─');
  28.   GotoXY(1, 24);
  29.   FOR i := 1 TO 80 DO Write('─');
  30.   GotoXY(25, 25);
  31.   Write('(c) 1991 Raimond Reichert & TOOLBOX');
  32.  
  33.   RadioButs[1] := NewRadioBut(50, 10, '#Printer', AltP);
  34.   RadioButs[2] := NewRadioBut(50, 11, 'S#creen', AltC);
  35.   RadioButs[3] := NewRadioBut(50, 12, '#File', AltF);
  36.  
  37.   Items[1] := New(PushButPtr,
  38.                   Init(20, 10, '#AutoSave',
  39.                        AltA, FALSE));
  40.   Items[2] := New(PushButPtr,
  41.                   Init(20, 11, '#Save By Exit',
  42.                        AltS, TRUE));
  43.   Items[3] := New(RadioButtonsPtr,
  44.                   Init(RadioButs, 3));
  45.   Items[4] := New(EndButPtr,
  46.                   Init(25, 17, ' #Ok ', AltO,
  47.                        Enter, 0));
  48.   Items[5] := New(EndButPtr,
  49.                   Init(41, 17, ' A#bbruch ', AltB,
  50.                        ESC, 0));
  51.  
  52.   EvHand^.SetTakeOut(TRUE);
  53.   Mouse^.Show;
  54.   FOR i := 1 TO 5 DO BEGIN
  55.     Items[i]^.Display; Items[i]^.DisplayHotKey;
  56.   END;
  57.   Quit := FALSE;  Act := 1;
  58.   Items[Act]^.SetActive;
  59.   REPEAT
  60.     EvHand^.WaitForEvent(EvAll, Ev);
  61.     FOR i := 1 TO 5 DO BEGIN
  62.       Items[i]^.CheckEvent(Ev);
  63.       Answer := Items[i]^.GetReturnCode;
  64.       IF ((Answer = ItEvAccepted) AND(Act <> i)) OR
  65.           (Answer = ItFinish) THEN BEGIN
  66.         Items[Act]^.SetPassive;
  67.         Act := i;
  68.       END;
  69.       IF NOT Quit THEN
  70.         Quit := (Answer = ItFinish);
  71.     END;
  72.     IF (Answer = ItEvNotMine) AND
  73.        (Ev.EventType = EvKeyPressed) THEN BEGIN
  74.       IF Ev.Key = Tab THEN BEGIN
  75.         Items[Act]^.SetPassive;
  76.         INC(Act);
  77.         IF Act > 5 THEN Act := 1;
  78.         Items[Act]^.SetActive;
  79.       END;
  80.       IF Ev.Key = ShiftTab THEN BEGIN
  81.         Items[Act]^.SetPassive;
  82.         DEC(Act);
  83.         IF Act < 1 THEN Act := 5;
  84.         Items[Act]^.SetActive;
  85.       END;
  86.     END;
  87.   UNTIL (Quit);
  88.   EvHand^.SetTakeOut(FALSE);
  89.   Mouse^.Hide;
  90.   GotoXY(1, 20); TextAttr := LightCyan+Blue*15;
  91.   IF Act <> 5 THEN BEGIN
  92.     Write('Der PushButton "AutoSave" ist ');
  93.     IF PushButPtr(Items[1])^.GetState THEN
  94.       WriteLn('eingeschaltet.')
  95.     ELSE
  96.       WriteLn('ausgeschaltet.');
  97.     Write('Der PushButton "Save By Exit" ist ');
  98.     IF PushButPtr(Items[2])^.GetState THEN
  99.       WriteLn('eingeschaltet.')
  100.     ELSE
  101.       WriteLn('ausgeschaltet.');
  102.     WriteLn('Der RadioButton ',
  103.             RadioButtonsPtr(Items[3])^.GetSelected,
  104.             ' wurde gewählt.');
  105.   END ELSE
  106.     WriteLn('Da abgebrochen wurde, sind die Werte die ',
  107.             'voreingestellten (AUS und EIN und 1).');
  108.   Write('Ende mit ENTER.'); ReadLn;
  109.   TextAttr := Yellow; ClrScr;
  110.  
  111.   FOR i := 1 TO 5 DO DISPOSE(Items[i], Done);
  112. END.
  113. (* ------------------------------------------------------ *)
  114. (*                Ende von BUTDEMO.PAS                    *)
  115.