home *** CD-ROM | disk | FTP | other *** search
-
- { ********** Window Management Services Demonstration ********** }
- { ********** Version 1.0 8/6/84 ********** }
-
- { (c) Copyright 1984 Timothy E. Ide All commercial rights reserved }
-
- {$C-}
- {$V-}
-
- {$I WINDOW.PAS} { Window Management Services }
-
- const
- MenuId = 201;
- MenuX = 10;
- MenuY = 1;
- MenuW = 62;
- MenuH = 12;
- NoOfFunc = 24;
- SelectId = 202;
- SelectX = 1;
- SelectY = 23;
- SelectW = 78;
- SelectH = 1;
- BorderPrompt = 203;
- BorderPromptW = 20;
- BorderPromptH = 5;
- ClearPrompt = 204;
- ClearPromptW = 20;
- ClearPromptH = 4;
- ClosePrompt = 205;
- ClosePromptW = 20;
- ClosePromptH = 4;
- ClreolPrompt = 206;
- ClreolPromptW = 20;
- ClreolPromptH = 4;
- DellnPrompt = 207;
- DellnPromptW = 20;
- DellnPromptH = 5;
- ErasePrompt = 208;
- ErasePromptW = 20;
- ErasePromptH = 4;
- GetPrompt = 209;
- GetPromptW = 20;
- GetPromptH = 6;
- GetlnPrompt = 210;
- GetlnPromptW = 20;
- GetlnPromptH = 6;
- GetorgPrompt = 211;
- GetorgPromptW = 20;
- GetorgPromptH = 6;
- GetposPrompt = 212;
- GetposPromptW = 20;
- GetposPromptH = 6;
- HomePrompt = 213;
- HomePromptW = 20;
- HomePromptH = 4;
- InslnPrompt = 214;
- InslnPromptW = 20;
- InslnPromptH = 5;
- OpenPrompt = 215;
- OpenPromptW = 20;
- OpenPromptH = 9;
- PutPrompt = 216;
- PutPromptW = 20;
- PutPromptH = 5;
- PutlnPrompt = 217;
- PutlnPromptW = 20;
- PutlnPromptH = 5;
- ReadPrompt = 218;
- ReadPromptW = 20;
- ReadPromptH = 6;
- ReadlnPrompt = 219;
- ReadlnPromptW = 20;
- ReadlnPromptH = 6;
- SetorgPrompt = 220;
- SetorgPromptW = 21;
- SetorgPromptH = 6;
- SetposPrompt = 220;
- SetposPromptW = 21;
- SetposPromptH = 6;
- ShowPrompt = 222;
- ShowPromptW = 20;
- ShowPromptH = 4;
- WritePrompt = 223;
- WritePromptW = 20;
- WritePromptH = 5;
- WritelnPrompt = 224;
- WritelnPromptW = 20;
- WritelnPromptH = 5;
- BorderParam = 225;
- BorderParamW = 8;
- BorderParamH = 4;
- ClearParam = 226;
- ClearParamW = 6;
- ClearParamH = 3;
- CloseParam = 227;
- CloseParamW = 6;
- CloseParamH = 3;
- ClreolParam = 228;
- ClreolParamW = 6;
- ClreolParamH = 3;
- DellnParam = 229;
- DellnParamW = 8;
- DellnParamH = 4;
- EraseParam = 230;
- EraseParamW = 6;
- EraseParamH = 3;
- GetParam = 231;
- GetParamW = 42;
- GetParamH = 5;
- GetlnParam = 232;
- GetlnParamW = 42;
- GetlnParamH = 5;
- GetorgParam = 233;
- GetorgParamW = 6;
- GetorgParamH = 5;
- GetposParam = 234;
- GetposParamW = 6;
- GetposParamH = 5;
- HomeParam = 235;
- HomeParamW = 6;
- HomeParamH = 3;
- InslnParam = 236;
- InslnParamW = 6;
- InslnParamH = 4;
- OpenParam = 237;
- OpenParamW = 6;
- OpenParamH = 8;
- PutParam = 238;
- PutParamW = 42;
- PutParamH = 5;
- PutlnParam = 239;
- PutlnParamW = 42;
- PutlnParamH = 5;
- ReadParam = 240;
- ReadParamW = 42;
- ReadParamH = 5;
- ReadlnParam = 241;
- ReadlnParamW = 42;
- ReadlnParamH = 5;
- SetorgParam = 242;
- SetorgParamW = 6;
- SetorgParamH = 5;
- SetposParam = 243;
- SetposParamW = 6;
- SetposParamH = 5;
- ShowParam = 244;
- ShowParamW = 6;
- ShowParamH = 3;
- WriteParam = 245;
- WriteParamW = 42;
- WriteParamH = 4;
- WritelnParam = 246;
- WritelnParamW = 42;
- WritelnParamH = 4;
- StatusId = 247;
- StatusX = 1;
- StatusY = 22;
- StatusW = 79;
- StatusH = 1;
- FuncBorder = 1;
- FuncClear = 2;
- FuncClose =3;
- FuncClreol = 4;
- FuncDelln = 5;
- FuncErase = 6;
- FuncGet = 7;
- FuncGetln = 8;
- FuncGetorg = 9;
- FuncGetpos = 10;
- FuncHome = 11;
- FuncInsln = 12;
- FuncOpen = 13;
- FuncPut = 14;
- FuncPutln = 15;
- FuncRead = 16;
- FuncReadln = 17;
- FuncSetorg = 18;
- FuncSetpos = 19;
- FuncShow = 20;
- FuncWrite = 21;
- FuncWriteln = 22;
- FuncClrscr = 23;
- FuncExit = 24;
- NumLen = 2;
- BordLen = 4;
-
- Type
- NumberString = string[2];
- BooleanString = string[5];
-
- Var
- MenuFunc : array [1..NoOfFunc] of string[16];
- Row,
- Column : integer;
- StatusWindowPos,
- StatusStatusPos,
- StatusEolnPos,
- StatusEowPos : integer;
- SelectServicePos : integer;
- FuncNo : integer;
- BorderPos,
- ClearPos,
- ClosePos,
- ClreolPos,
- DellnPos,
- ErasePos,
- GetPos,
- GetlnPos,
- GetorgPos,
- GetposPos,
- HomePos,
- InslnPos,
- OpenPos,
- PutPos,
- PutlnPos,
- ReadPos,
- ReadlnPos,
- SetorgPos,
- SetposPos,
- ShowPos,
- WritePos,
- WritelnPos : integer;
- DemoId,
- DemoX,
- DemoY,
- DemoW,
- DemoH : integer;
- NumStr : NumberString;
- BordStr : string[4];
- OutStr,
- InpStr : string[80];
- InpLen : integer;
-
-
- function NumVal(NumString : NumberString) : integer;
- var
- Number,
- NumFlag : integer;
- begin
- Number := 0;
- val(NumString,Number,NumFlag);
- if (NumFlag = 2) then begin
- val(NumString[1],Number,NumFlag);
- if (NumFlag = 1) then begin
- val(NumString[2],Number,NumFlag);
- if (NumFlag = 1) then begin
- Number := 0;
- end;
- end;
- end;
- NumVal := Number;
- end;
-
- function StrVal(Number : integer) : NumberString;
- var
- NStr : NumberString;
- begin
- Str(Number,NStr);
- StrVal := NStr;
- end;
-
- function StrBool(flag : boolean) : BooleanString;
- begin
- if (flag) then
- StrBool := 'true '
- else
- StrBool := 'false';
- end;
-
- procedure InitMenu;
- Var
- i, j ,k : integer;
- funcst : string[2];
- begin
- MenuFunc[1] := 'wi_border';
- MenuFunc[2] := 'wi_clear';
- MenuFunc[3] := 'wi_close';
- MenuFunc[4] := 'wi_clreol';
- MenuFunc[5] := 'wi_delln';
- MenuFunc[6] := 'wi_erase';
- MenuFunc[7] := 'wi_get';
- MenuFunc[8] := 'wi_getln';
- MenuFunc[9] := 'wi_getorg';
- MenuFunc[10] := 'wi_getpos';
- MenuFunc[11] := 'wi_home';
- MenuFunc[12] := 'wi_insln';
- MenuFunc[13] := 'wi_open';
- MenuFunc[14] := 'wi_put';
- MenuFunc[15] := 'wi_putln';
- MenuFunc[16] := 'wi_read';
- MenuFunc[17] := 'wi_readln';
- MenuFunc[18] := 'wi_setorg';
- MenuFunc[19] := 'wi_setpos';
- MenuFunc[20] := 'wi_show';
- MenuFunc[21] := 'wi_write';
- MenuFunc[22] := 'wi_writeln';
- MenuFunc[23] := 'clrscr';
- MenuFunc[24] := 'exit';
-
- wi_open(MenuId,MenuX,MenuY,MenuW,MenuH,'|-');
- wi_putln(MenuId,' Demonstration Functions:');
- wi_putln(MenuId,'');
- for j := 1 to 8 do begin
- for i := 1 to 3 do begin
- k := ((i-1)*8+j);
- if (k <= NoOfFunc) then begin
- wi_setpos(MenuId,((i-1)*20)+3,j+2);
- str(k,funcst);
- wi_put(MenuId,(funcst+' - '+MenuFunc[k]));
- end;
- end;
- end;
- end;
-
- procedure InitStatus;
- begin
- wi_open(StatusId,StatusX,StatusY,StatusW,StatusY,'');
- wi_put(StatusId,' ');
- wi_put(StatusId,'window = ');
- wi_getpos(StatusId,StatusWindowPos,Row);
- wi_put(StatusId,' ');
- wi_put(StatusId,'wi_status = ');
- wi_getpos(StatusId,StatusStatusPos,Row);
- wi_put(StatusId,' ');
- wi_put(StatusId,'wi_eoln = ');
- wi_getpos(StatusId,StatusEolnPos,Row);
- wi_put(StatusId,' ');
- wi_put(StatusId,'wi_eow = ');
- wi_getpos(StatusId,StatusEowPos,Row);
- wi_put(StatusId,' ');
- end;
-
- procedure InitSelect;
- begin
- wi_open(SelectId,SelectX,SelectY,SelectW,SelectH,'');
- wi_put(SelectId,'Enter function number: ');
- wi_getpos(SelectId,SelectServicePos,Row);
- end;
-
- procedure DemoStatus;
- var
- SaveStatus,
- SaveEoln,
- SaveEow : boolean;
- begin
- SaveStatus := wi_status;
- SaveEoln := wi_eoln;
- SaveEow := wi_eow;
- wi_setpos(StatusId,StatusWindowPos,1);
- wi_put(StatusId,StrVal(DemoId));
- wi_setpos(StatusId,StatusStatusPos,1);
- wi_put(StatusId,StrBool(SaveStatus));
- wi_setpos(StatusId,StatusEolnPos,1);
- wi_put(StatusId,StrBool(SaveEoln));
- wi_setpos(StatusId,StatusEowPos,1);
- wi_put(StatusId,StrBool(SaveEow));
- wi_show(StatusId);
- end;
-
- procedure WaitForAny;
- var
- AnyChar : char;
- begin
- gotoxy(1,24);
- clreol;
- write('Press any key to continue ');
- read(kbd,AnyChar);
- gotoxy(1,24);
- clreol;
- end;
-
- { (c) Copyright 1984 Timothy E. Ide All commercial rights reserved }
-
- procedure Copyright;
- begin
- clrscr;
- gotoxy(1,1);
- writeln('Window Management Services Version 1.0');
- writeln('(c) Copyright 1984 Timothy E. Ide All commercial rights reserved');
- delay(500);
- end;
-
-
- {$I DEMO1.PAS} { service window initialization }
- {$I DEMO2.PAS} { service demonstration routines }
-
-
- begin
- Copyright;
- InitMenu;
- InitStatus;
- InitSelect;
- InitBorder;
- InitClear;
- InitClose;
- InitClreol;
- InitDelln;
- InitErase;
- InitGet;
- InitGetln;
- InitGetorg;
- InitGetpos;
- InitHome;
- InitInsln;
- InitOpen;
- InitPut;
- InitPutln;
- InitRead;
- InitReadln;
- InitSetorg;
- InitSetpos;
- InitShow;
- InitWrite;
- Initwriteln;
- clrscr;
- repeat
- wi_show(MenuId);
- wi_erase(StatusId);
- wi_setpos(SelectId,SelectServicePos,1);
- wi_clreol(SelectId);
- wi_show(SelectId);
- NumStr := '';
- wi_read(SelectId,NumLen,NumStr);
- FuncNo := NumVal(NumStr);
- case FuncNo of
- FuncBorder : DemoBorder;
- FuncClear : DemoClear;
- FuncClose : DemoClose;
- FuncClreol : DemoClreol;
- FuncDelln : DemoDelln;
- FuncErase : DemoErase;
- FuncGet : DemoGet;
- FuncGetln : DemoGetln;
- FuncGetorg : DemoGetorg;
- FuncGetpos : DemoGetpos;
- FuncHome : DemoHome;
- FuncInsln : DemoInsln;
- FuncOpen : DemoOpen;
- FuncPut : DemoPut;
- FuncPutln : DemoPutln;
- FuncRead : DemoRead;
- FuncReadln : DemoReadln;
- FuncSetorg : DemoSetorg;
- FuncSetpos : DemoSetpos;
- FuncShow : DemoShow;
- FuncWrite : DemoWrite;
- FuncWriteln : DemoWriteln;
- FuncClrscr : clrscr;
- end;
- until FuncNo = FuncExit;
- end.