home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fish 'n' More 2
/
fishmore-publicdomainlibraryvol.ii1991xetec.iso
/
dirs
/
cross_464.lzh
/
Cross
/
txt
/
CPCRequesters.mod
< prev
next >
Wrap
Text File
|
1991-03-09
|
2KB
|
98 lines
IMPLEMENTATION MODULE CPCRequesters;
FROM ASCII
IMPORT nul;
FROM CPCGlobal
IMPORT msg,window;
FROM Requester
IMPORT ReqFlags,ReqFlagSet,Text,SetReqBorderPen,SetReqTextPen;
FROM RequesterSet
IMPORT StringRequest,BooleanRequest;
FROM Str
IMPORT Copy,FirstPos,Length,noOccur;
FROM SYSTEM
IMPORT ADR;
PROCEDURE InputLine(VAR a: ARRAY OF CHAR; txt,ref: ARRAY OF CHAR;
length: INTEGER);
VAR
message: ARRAY[0..0] OF Text;
res,flag: BOOLEAN;
i: INTEGER;
l: INTEGER;
x: ARRAY[0..256] OF CHAR;
BEGIN
FOR i:=0 TO 256 DO
x[i]:=nul;
END;
Copy(message[0],txt);
REPEAT
SetReqBorderPen(1);
SetReqTextPen(0);
res:=StringRequest(window,50,50,540,55,
message,x,ADR(msg[72]),ADR(msg[73]),
ReqFlagSet{reqBorder,reqShadow},TRUE);
flag:=FALSE;
IF Length(x)=0 THEN
res:=FALSE;
END;
IF res THEN
FOR i:=0 TO Length(x)-1 DO
flag:=flag OR (FirstPos(ref,0,x[i])=noOccur);
END;
END;
IF flag THEN
Copy(message[0],msg[78]);
END;
l:=Length(x);
IF l>length THEN
Copy(message[0],msg[80]);
flag:=TRUE;
END;
UNTIL NOT flag;
IF NOT res THEN
x[0]:=nul;
END;
Copy(a,x);
END InputLine;
PROCEDURE YesOrNo(txt: ARRAY OF CHAR): BOOLEAN;
VAR
t: ARRAY[0..0] OF Text;
result: BOOLEAN;
BEGIN
Copy(t[0],txt);
SetReqBorderPen(1);
SetReqTextPen(0);
result:=BooleanRequest(window,50,50,540,55,t,ADR(msg[74]),ADR(msg[75]),
nul,nul,ReqFlagSet{reqBorder,reqShadow});
RETURN(result);
END YesOrNo;
PROCEDURE HoriOrVert(txt: ARRAY OF CHAR): BOOLEAN;
VAR
t: ARRAY[0..0] OF Text;
result: BOOLEAN;
BEGIN
Copy(t[0],txt);
SetReqBorderPen(1);
SetReqTextPen(0);
result:=BooleanRequest(window,50,50,540,55,t,ADR(msg[76]),ADR(msg[77]),
nul,nul,ReqFlagSet{reqBorder,reqShadow});
RETURN(result);
END HoriOrVert;
END CPCRequesters.