home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* BUTDEMO.PAS *)
- (* (c) 1991 Raimond Reichert & TOOLBOX *)
- (* ------------------------------------------------------ *)
- PROGRAM SAAButtonsDemo;
-
- USES Crt, MouKey, SAAItems;
-
- CONST
- AltA = 286; AltS = 287; AltP = 281; AltO = 280;
- AltB = 304; AltC = 302; AltF = 289;
- Enter = 13;
- ESC = 27; Tab = 9; ShiftTab = 271;
-
- VAR
- Items : ARRAY [1..5] OF SAAItemPtr;
- Ev : EventObj;
- Act, i,
- Answer : BYTE;
- Quit : BOOLEAN;
- RadioButs : RadioButArray;
-
- BEGIN
- TextAttr := Yellow+Blue*15; ClrScr;
- GotoXY(28, 1);
- WriteLn('S A A - Buttons - D E M O');
- FOR i := 1 TO 80 DO Write('─');
- GotoXY(1, 24);
- FOR i := 1 TO 80 DO Write('─');
- GotoXY(25, 25);
- Write('(c) 1991 Raimond Reichert & TOOLBOX');
-
- RadioButs[1] := NewRadioBut(50, 10, '#Printer', AltP);
- RadioButs[2] := NewRadioBut(50, 11, 'S#creen', AltC);
- RadioButs[3] := NewRadioBut(50, 12, '#File', AltF);
-
- Items[1] := New(PushButPtr,
- Init(20, 10, '#AutoSave',
- AltA, FALSE));
- Items[2] := New(PushButPtr,
- Init(20, 11, '#Save By Exit',
- AltS, TRUE));
- Items[3] := New(RadioButtonsPtr,
- Init(RadioButs, 3));
- Items[4] := New(EndButPtr,
- Init(25, 17, ' #Ok ', AltO,
- Enter, 0));
- Items[5] := New(EndButPtr,
- Init(41, 17, ' A#bbruch ', AltB,
- ESC, 0));
-
- EvHand^.SetTakeOut(TRUE);
- Mouse^.Show;
- FOR i := 1 TO 5 DO BEGIN
- Items[i]^.Display; Items[i]^.DisplayHotKey;
- END;
- Quit := FALSE; Act := 1;
- Items[Act]^.SetActive;
- REPEAT
- EvHand^.WaitForEvent(EvAll, Ev);
- FOR i := 1 TO 5 DO BEGIN
- Items[i]^.CheckEvent(Ev);
- Answer := Items[i]^.GetReturnCode;
- IF ((Answer = ItEvAccepted) AND(Act <> i)) OR
- (Answer = ItFinish) THEN BEGIN
- Items[Act]^.SetPassive;
- Act := i;
- END;
- IF NOT Quit THEN
- Quit := (Answer = ItFinish);
- END;
- IF (Answer = ItEvNotMine) AND
- (Ev.EventType = EvKeyPressed) THEN BEGIN
- IF Ev.Key = Tab THEN BEGIN
- Items[Act]^.SetPassive;
- INC(Act);
- IF Act > 5 THEN Act := 1;
- Items[Act]^.SetActive;
- END;
- IF Ev.Key = ShiftTab THEN BEGIN
- Items[Act]^.SetPassive;
- DEC(Act);
- IF Act < 1 THEN Act := 5;
- Items[Act]^.SetActive;
- END;
- END;
- UNTIL (Quit);
- EvHand^.SetTakeOut(FALSE);
- Mouse^.Hide;
- GotoXY(1, 20); TextAttr := LightCyan+Blue*15;
- IF Act <> 5 THEN BEGIN
- Write('Der PushButton "AutoSave" ist ');
- IF PushButPtr(Items[1])^.GetState THEN
- WriteLn('eingeschaltet.')
- ELSE
- WriteLn('ausgeschaltet.');
- Write('Der PushButton "Save By Exit" ist ');
- IF PushButPtr(Items[2])^.GetState THEN
- WriteLn('eingeschaltet.')
- ELSE
- WriteLn('ausgeschaltet.');
- WriteLn('Der RadioButton ',
- RadioButtonsPtr(Items[3])^.GetSelected,
- ' wurde gewählt.');
- END ELSE
- WriteLn('Da abgebrochen wurde, sind die Werte die ',
- 'voreingestellten (AUS und EIN und 1).');
- Write('Ende mit ENTER.'); ReadLn;
- TextAttr := Yellow; ClrScr;
-
- FOR i := 1 TO 5 DO DISPOSE(Items[i], Done);
- END.
- (* ------------------------------------------------------ *)
- (* Ende von BUTDEMO.PAS *)
-