home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / TURBOPAS / BULLETTP.LBR / READINT.PZC / READINT.PRC
Text File  |  2000-06-30  |  2KB  |  53 lines

  1. {READINT.PRC}
  2. {
  3. Description:  Accepts entry of integer at specified locations on the
  4.               screen.  Returns flag if entry is within range.
  5.  
  6. Author:       Don Taylor
  7. Date:         8/06/86
  8. Last revised: 8/07/86
  9. Application:  All Systems
  10. Published in: TUG Lines - Turbo User Group, PO Group Box 1510, Poulsbo, WA 98370
  11.  
  12. Notes:        Requires READSTUF.INC
  13. }
  14.  
  15. PROCEDURE ReadInt (        x: BYTE;     { Horizontal location of field  }
  16.                            y: BYTE;     { Vertical local of field       }
  17.                          len: BYTE;     { Absolute length of field      }
  18.                    VAR value: INTEGER;  { Real value returned           }
  19.                    VAR    OK: BOOLEAN); { Valid entry flag              }
  20.  
  21. VAR
  22.  r       : REAL;
  23.  ECode   : INTEGER;
  24.  c       : CharSet;
  25.  s       : Str255;
  26.  DStr    : Str255;
  27.  
  28. BEGIN
  29.  c := ['0'..'9','-'];     { Valid charactes for integer input }
  30.  OK := TRUE;
  31.  STR(value:len, s);
  32.  DStr := s;
  33.  ReadFld(x,y,len,c,DStr,s);
  34.  IF LENGTH(S) > 0             { A new entry was made           }
  35.   THEN BEGIN
  36.         VAL(s,r,ECode);
  37.         OK := (ECode = 0);
  38.         IF OK
  39.          THEN IF (r <=MaxInt) AND (r >= -32768.0)
  40.                THEN BEGIN
  41.                      IF r > -32767.5
  42.                       THEN value := ROUND(r)
  43.                       ELSE value := -MaxInt - 1
  44.                     END
  45.                ELSE OK := FALSE;
  46.        END;
  47.   STR(value:len, s);       { Re-display entry              }
  48.   GOTOXY(x,y); LowVideo;
  49.   WRITE(s); NormVideo
  50. END;   {ReadInt}
  51.  
  52.  
  53.