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 >
Text File  |  1991-03-09  |  2KB  |  98 lines

  1. IMPLEMENTATION MODULE CPCRequesters;
  2.  
  3.  
  4.  
  5. FROM ASCII
  6.  IMPORT nul;
  7.  
  8. FROM CPCGlobal
  9.  IMPORT msg,window;
  10.  
  11. FROM Requester
  12.  IMPORT ReqFlags,ReqFlagSet,Text,SetReqBorderPen,SetReqTextPen;
  13.  
  14. FROM RequesterSet
  15.  IMPORT StringRequest,BooleanRequest;
  16.  
  17. FROM Str
  18.  IMPORT Copy,FirstPos,Length,noOccur;
  19.  
  20. FROM SYSTEM
  21.  IMPORT ADR;
  22.  
  23.  
  24. PROCEDURE InputLine(VAR a: ARRAY OF CHAR; txt,ref: ARRAY OF CHAR;
  25.                     length: INTEGER);
  26.  VAR
  27.   message: ARRAY[0..0] OF Text;
  28.   res,flag: BOOLEAN;
  29.   i: INTEGER;
  30.   l: INTEGER;
  31.   x: ARRAY[0..256] OF CHAR;
  32.  BEGIN
  33.   FOR i:=0 TO 256 DO
  34.    x[i]:=nul;
  35.   END;
  36.   Copy(message[0],txt);
  37.   REPEAT
  38.    SetReqBorderPen(1);
  39.    SetReqTextPen(0);
  40.    res:=StringRequest(window,50,50,540,55,
  41.                       message,x,ADR(msg[72]),ADR(msg[73]),
  42.                       ReqFlagSet{reqBorder,reqShadow},TRUE);
  43.    flag:=FALSE;
  44.    IF Length(x)=0 THEN
  45.     res:=FALSE;
  46.    END;
  47.    IF res THEN
  48.     FOR i:=0 TO Length(x)-1 DO
  49.      flag:=flag OR (FirstPos(ref,0,x[i])=noOccur);
  50.     END;
  51.    END;
  52.    IF flag THEN
  53.     Copy(message[0],msg[78]);
  54.    END;
  55.    l:=Length(x);
  56.    IF l>length THEN
  57.     Copy(message[0],msg[80]);
  58.     flag:=TRUE;
  59.    END;
  60.   UNTIL NOT flag;
  61.   IF NOT res THEN
  62.    x[0]:=nul;
  63.   END;
  64.   Copy(a,x);
  65.  END InputLine;
  66.  
  67.  
  68.  
  69. PROCEDURE YesOrNo(txt: ARRAY OF CHAR): BOOLEAN;
  70.  VAR
  71.   t: ARRAY[0..0] OF Text;
  72.   result: BOOLEAN;
  73.  BEGIN
  74.   Copy(t[0],txt);
  75.   SetReqBorderPen(1);
  76.   SetReqTextPen(0);
  77.   result:=BooleanRequest(window,50,50,540,55,t,ADR(msg[74]),ADR(msg[75]),
  78.                          nul,nul,ReqFlagSet{reqBorder,reqShadow});
  79.   RETURN(result);
  80.  END YesOrNo;
  81.  
  82.  
  83.  
  84. PROCEDURE HoriOrVert(txt: ARRAY OF CHAR): BOOLEAN;
  85.  VAR
  86.   t: ARRAY[0..0] OF Text;
  87.   result: BOOLEAN;
  88.  BEGIN
  89.   Copy(t[0],txt);
  90.   SetReqBorderPen(1);
  91.   SetReqTextPen(0);
  92.   result:=BooleanRequest(window,50,50,540,55,t,ADR(msg[76]),ADR(msg[77]),
  93.                          nul,nul,ReqFlagSet{reqBorder,reqShadow});
  94.   RETURN(result);
  95.  END HoriOrVert;
  96.  
  97. END CPCRequesters.
  98.