(3/4) Input routine

 BBS: Inland Empire Archive
Date: 06-14-93 (01:24)             Number: 329
From: JIM LITTLE                   Refer#: NONE
  To: ERIC LOW                      Recvd: NO  
Subj: (3/4) Input routine            Conf: (2) Quik_Bas
'>>> Start of page 3.

         IF curletter < topletter THEN
            topletter = topletter - 1
            Printline topletter, text, left, right
         END IF
      END IF
   CASE kRightArrow
      IF curletter < LEN(text) + 1 THEN
         curletter = curletter + 1
         IF curletter > topletter + right - left THEN
            topletter = topletter + 1
            Printline topletter, text, left, right
         END IF
      END IF
   CASE kPageUp
      flag = cPageUp
      finished = True
   CASE kPageDown
      flag = cPageDown
      finished = True
   CASE kUpArrow
      flag = cUpArrow
      finished = True
   CASE kDownArrow
      flag = cDownArrow
      finished = True
   CASE kEscape
      flag = cEscape
      finished = True
   CASE IS >= 32
      IF keystroke <= 127 AND NOT notinsert AND LEN(text) + 1 <=_
 length THEN
      'valid character, with insert on
         text = LEFT$(text, curletter - 1) + CHR$(keystroke) +_
 RIGHT$(text, LEN(text) - curletter + 1)
         curletter = curletter + 1
         IF curletter > topletter + right - left + 1 THEN
            topletter = topletter + 1
         END IF
         Printline topletter, text, left, right
      END IF
      IF keystroke <= 127 AND notinsert AND (curletter <_
 LEN(text) + 1 OR LEN(text) + 1 <= length) THEN
      'valid character, with insert off
         IF curletter = LEN(text) + 1 THEN
            text = text + CHR$(keystroke)
         ELSE
            MID$(text, curletter, 1) = CHR$(keystroke)
         END IF
         curletter = curletter + 1
         IF curletter > topletter + right - left THEN
            topletter = topletter + 1
            Printline topletter, text, left, right
         ELSE
            PRINT CHR$(keystroke);
         END IF
      END IF
   CASE kTab
      IF length <> LEN(text) THEN
         IF LEN(text) + 3 <= length THEN
            tabsp = 3
         ELSE
            tabsp = length - LEN(text)
         END IF
         text = LEFT$(text, curletter - 1) + STRING$(tabsp, 32)_
 + RIGHT$(text, LEN(text) - curletter + 1)
         curletter = curletter + tabsp
         IF curletter > topletter + right - left THEN
            topletter = topletter + tabsp
         END IF
         Printline topletter, text, left, right
      END IF
   CASE kReturn
      flag = cOk
      finished = True
   END SELECT

LOOP UNTIL finished

Printline 1, text, left, right

END SUB

'>>> Continued on page 4

---
 * Origin: The Radix Point: Astoria, OR (1:105/330.9)
Outer Court
Echo Basic Postings

Books at Amazon:

Back to BASIC: The History, Corruption, and Future of the Language

Hackers: Heroes of the Computer Revolution (including Tiny BASIC)

Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution

The Advent of the Algorithm: The Idea that Rules the World

Moths in the Machine: The Power and Perils of Programming

Mastering Visual Basic .NET