{ ************************************************************************** } { OBJTEST.PAS Version 1.0 (c) Mr Vain } { 15.07. } { } { Testprogramm fuer die Funktionen der ObjDOS-Unit Version 3.0 } { ************************************************************************** } PROGRAM OBJTEST; USES CRT, OBJDOS, OBJIO; VAR Desktop : PDesktop; StatusLn: PStatusLine; bQuit : BOOLEAN; ch : CHAR; View1 : PView; Window1 : PWindow; Window2 : PWindow; Window3 : PWindow; liLeft, liRight, liRelease: LONGINT; bCount : BYTE; bWinCol : BYTE; Focus : PControl; BEGIN TEXTMODE(3); TEXTATTR:=7; CLRSCR; Maus:=NEW(PMaus,Init); CompList:=NEW(PCompList,Init(Maus)); bQuit:=FALSE; liLeft:=0; liRight:=0; liRelease:=0; bCount:=1; bWinCol:=7; { View1:=NEW(PView,Init(5,12,20,6,1,14,'Å')); } Desktop:=NEW(PDesktop,Init(8,3,'°',FALSE,Maus)); StatusLn:=NEW(PStatusLine,Init(7,0,' Esc druecken zum Beenden',Maus)); Window1:=NEW(PWindow,Init(12,8,56,10,'ObjectDOS V3.0',TRUE,Maus)); Window2:=NEW(PWindow,Init(50,6,25,14,'Form2',FALSE,Maus)); Window3:=NEW(PWindow,Init(36,21,30,5,'Form3',FALSE,Maus)); { Desktop^.Draw; Window3^.Draw; Window2^.Draw; Window1^.Draw; StatusLn^.Draw; Maus^.SwOff; UpdateScreen; Maus^.SwOn; } CompList^.InsertComp(Desktop); CompList^.InsertComp(Window3); CompList^.InsertComp(Window2); CompList^.InsertComp(Window1); CompList^.InsertComp(StatusLn); CompList^.Draw; { WRITELN(WindMin,':',WindMax); } (* <- aus CRT, funktioniert nicht! *) WHILE NOT(bQuit) DO BEGIN DELAY(20); IF KeyPressed THEN ch:=READKEY ELSE ch:=#0; Maus^.GetData; GOTOXY(1,1); WRITE('ObjectDOS 3.0 - Test Mode - to abort...'); GOTOXY(1,2); WRITE('Mauscursor [X:Y] ',Maus^.GetPosX:2,':',Maus^.GetPosY:2); GOTOXY(1,3); WRITE('Taste Links? ',Maus^.GetKeyLeft:5); GOTOXY(1,4); WRITE('Taste Rechts? ',Maus^.GetKeyRight:5); GOTOXY(60,2); WRITE('Screen = ',SEG(Screen^)); GOTOXY(60,3); WRITE('OffScreen = ',SEG(OffScreen^)); { IF (Maus^.GetLastKeyLeft AND Maus^.GetKeyRelease) THEN BEGIN Focus:=CompList^.CheckOnClick; CompList^.Draw; END; (* IF *) } { IF (Focus=Window1) THEN BEGIN StatusLn^.WriteText('Zeiger auf Fenster Nr. 1',left); CompList^.Draw; END; } CASE ch OF #27 : bQuit:=TRUE; { #9 : BEGIN CASE bCount OF 1: BEGIN INC(bCount,1); Window1^.SetActive(FALSE); Window2^.SetActive(TRUE); END; 2: BEGIN INC(bCount,1); Window2^.SetActive(FALSE); Window3^.SetActive(TRUE); END; 3: BEGIN bCount:=1; Window3^.SetActive(FALSE); Window1^.SetActive(TRUE); END; END; (* CASE bCount OF *) CompList^.Draw; END; (* BEGIN *) } 'd','D': BEGIN StatusLn^.SetStatusLineColor(8,15); CompList^.Draw; END; 'l','L': BEGIN StatusLn^.SetStatusLineColor(7,0); CompList^.Draw; END; 'b','B': BEGIN Desktop^.SetDesktopColor(7,1); CompList^.Draw; END; 'g','G': BEGIN Desktop^.SetDesktopColor(8,3); CompList^.Draw; END; 'r','R': BEGIN Window1^.SetWindowTitleColor(4,11); CompList^.Draw; END; 't','T': BEGIN Window1^.SetWindowTitleColor(1,15); CompList^.Draw; END; '+' : BEGIN IF (bWinCol > 14) THEN bWinCol:=0 ELSE INC(bWinCol,1); Window1^.SetWindowColor(bWinCol,15); CompList^.Draw; END; '-' : BEGIN IF (bWinCol < 1) THEN bWinCol:=15 ELSE DEC(bWinCol,1); Window1^.SetWindowColor(bWinCol,15); CompList^.Draw; END; { 'x','X': BEGIN CompList^.DeleteComp(Window2); CompList^.Draw; END; 'c','C': BEGIN CompList^.InsertComp(Window2); CompList^.Draw; END; } END; (* CASE ch *) END; (* WHILE NOT(bQuit) *) DISPOSE(CompList,Done); DISPOSE(Maus,Done); DISPOSE(Window3,Done); DISPOSE(Window2,Done); DISPOSE(Window1,Done); DISPOSE(StatusLn,Done); DISPOSE(Desktop,Done); { DISPOSE(View1,Done); } DISPOSE(OffScreen); END.