123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- Program ocrt_demo;
- {---------------------------------------------------------------------------
- CncWare
- (c) Copyright 1999-2000
- ---------------------------------------------------------------------------
- Filename..: ocrt_demo.pp
- Programmer: Ken J. Wright
- Date......: 11/22/99
- Purpose - Demonstrate the use of nCrt.
- -------------------------------<< REVISIONS >>--------------------------------
- Ver | Date | Prog| Description
- -------+----------+-----+----------------------------------------------------
- 1.00 | 11/22/99 | kjw | Initial Release.
- 1.01 | 12/10/99 | kjw | Added OOP stuff.
- 1.02 | 12/13/99 | kjw | 1) Changed from nCrt to oCrt.
- | 2) Renamed from ncrt_demo to ocrt_demo.
- | 3) Added some standard crt code at beginning.
- 1.03 | 01/06/00 | kjw | Some minor changes for ncrt mods.
- 1.04 | 06/27/00 | kjw | Changes for ncrt mods.
- ------------------------------------------------------------------------------
- }
- uses oCrt;
- var
- win,win1,
- stdscr : pwin;
- s : string;
- c : char;
- i,j,k,x,y : integer;
- var
- win11,win22 : pnWindow;
- win33,msgbox : TnWindow;
- Begin
- { some nCrt standard in/out stuff, like crt }
- TextColor(15);
- TextBackground(1);
- TextAttr := TextAttr + blink;
- ClrScr;
- GotoXY(2,35);
- Writeln(1.0:0:4,' This should be blinking text');
- Window(10,10,70,15);
- TextAttr := TextAttr - blink;
- TextBackground(2);
- ClrScr;
- s := ' : ';
- for i := 1 to 6 do
- writeln(i:0,s,'No blinking here');
- writeln('Press Enter');
- readln(s);
- TextBackground(3);
- Write('input a number [i]: ');
- Readln(i);
- Write('input two numbers [j k]: ');
- Readln(j,k);
- Window(20,11,60,16);
- TextBackground(0);
- TextColor(15);
- ClrScr;
- writeln('i: ',i);
- writeln('j: ',j);
- writeln('k: ',k);
- Write('Press a key: ');
- readkey;
- TextMode(LastMode);
- write('Press a key: ');
- repeat until keypressed;
- while keypressed do readkey;
- { now some oCrt basics }
- stdscr := nscreen;
- nClrScr(stdscr,7);
- nDrawBox(stdscr,btSingle,1,1,80,3,31);
- nFWrite(27,2,30,0,'nCrt Demonstration Program');
- nNewWindow(win1,9,9,71,16);
- nClrScr(win1,95);
- nWriteScr(win1,3,2,95,'This is a background window.');
- nWriteScr(win1,10,3,95,'It was built first, then displayed later.');
- nFWrite(stdscr,1,24,15,80,'Enter some text, press [Enter]');
- nWindow(win,10,10,70,15);
- nClrScr(win,31);
- nGotoXY(win,1,1);
- s := nReadln(win);
- If s <> 'oop' Then Begin { skip right to OOP section? }
- nFWrite(stdscr,1,24,15,80,'Enter some more text, press [Enter]');
- nGotoXY(win,nWhereX(win),nWhereY(win));
- s := nReadln(win);
- nFWrite(stdscr,1,24,79,80,'Please wait...');
- nGotoXY(win,1,1);
- Delay(500);
- nDelLine(win);
- Delay(500);
- nInsLine(win);
- Delay(500);
- nFrame(win1);
- nRefresh(win1);
- Delay(4000);
- nRefresh(win);
- Delay(2000);
- { force nCrt to use full screen }
- nSetActiveWin(stdscr);
- ClrScr;
- nFWrite(1,24,14,80,'Enter even more text, press [Enter]');
- s := nReadln(stdscr);
- nClrScr(win,47);
- nFWrite(1,24,11,80,'Press some keys, followed by [Esc]');
- nGotoXY(win,5,1);
- x := nWhereX(win);
- y := nWhereY(win);
- i := 0;
- { turn off oCrt keyboard echo }
- nEcho(false);
- repeat
- c := nReadkey(win);
- DelLine;
- inc(i);
- until (c = #27) or (i >= 8);
- While i > 0 Do Begin
- InsLine;
- dec(i);
- End;
- { turn on oCrt keyboard echo }
- nEcho(true);
- str(x:0,s);
- nWrite(win,'x = '+s+', ');
- str(y:0,s);
- nWrite(win,'y = '+s);
- nWriteln(stdscr,'press a key...');
- readkey;
- nDrawBox(stdscr,btSingle,11,11,69,14,63);
- nFWrite(30,11,79,49,' nCrt Demo Program');
- nDelWindow(win);
- nDelWindow(win1);
- nWindow(win,2,2,79,24);
- nFrame(stdscr);
- nFrame(win);
- nDelWindow(win);
- End;
- { and now for some object oCrt }
- win := nscreen;
- New(win11,Init(1,1,nStdScr.Cols,nStdScr.Rows,31,true,30));
- win11^.PutHeader(' Now for some OOP with nCrt! ',79,center);
- win11^.DrawBox(1,1,1,78,3,62);
- New(win22,Init(20,7,60,17,47,false,0));
- win33.Init(30,15,50,20,79,true,78);
- win33.PutHeader(' Little Window ',15,right);
- Writeln('And here is window #3');
- win11^.Show;
- GotoXY(2,2);
- Write('Please press a key...');
- ReadKey;
- msgbox.init(25,11,55,13,47,true,47);
- s := 'Please enter a string';
- msgbox.FWrite((msgbox.cols-length(s)) div 2,1,46,0,s);
- msgbox.Show;
- win11^.Active;
- GotoXY(1,10);
- msgbox.Show;
- win11^.Active;
- Readln(s);
- msgbox.Hide;
- win22^.Show;
- Writeln(s);
- Delay(2000);
- win11^.Hide;
- win22^.Active;
- Writeln('Hiding window 1...');
- Delay(2000);
- win33.Show;
- Delay(2000);
- win11^.Show;
- Writeln('Showing window 1');
- win22^.Show;
- Writeln('Showing window 2');
- win33.Show;
- Write('Showing window 3');
- nKeypressed(2000);
- While Keypressed Do Readkey;
- win11^.Hide;
- win33.Active;
- Write('Hiding window 1');
- win22^.PutFrame(62);
- win22^.PutHeader(' New frame color ',63,center);
- win22^.Show;
- win33.Show;
- nKeypressed(3000);
- While Keypressed Do Readkey;
- win22^.Hide;
- win33.Active;
- Write('Hiding window 2');
- nKeypressed(2000);
- While Keypressed Do Readkey;
- win33.SetColor(47);
- nKeypressed(2000);
- While Keypressed Do Readkey;
- x := 30;
- y := 15;
- win33.ClrScr;
- for i := 1 to 11 do Begin
- TextAttr := win33.GetColor;
- dec(x);
- dec(y);
- str(i:0,s);
- win33.Move(x,y);
- Writeln('Moved by '+s);
- nFWrite(stdscr,1,nStdScr.Rows,63,80,'Moved by '+s);
- Delay(250);
- End;
- win33.Align(center,none);
- win33.PutHeader('Left Header',14,left);
- win33.Show;
- Delay(1000);
- win33.PutHeader('Right Header',14,right);
- win33.Show;
- Delay(1000);
- win33.PutHeader('Center Header',15,center);
- win33.Show;
- Delay(2000);
- Dispose(win11,Done);
- Dispose(win22,Done);
- win33.Done;
- msgbox.Done;
- NormVideo;
- ClrScr;
- End.
|