home *** CD-ROM | disk | FTP | other *** search
- '─ Area: F-QUICKBASIC ─────────────────────────────────────────────────────────
- ' Msg#: 398 Date: 21 Apr 94 22:05:02
- ' From: Bob Perkins Read: Yes Replied: No
- ' To: Ronald Lewis Mark:
- ' Subj: Re: Help!
- '──────────────────────────────────────────────────────────────────────────────
- ' Here's a little editor I whipped up for you. I gave it a run-through, but by
- 'no means is this a fully tested routine.
-
- DECLARE FUNCTION editor$ (row%, column%, strlen%, edstr$)
- t$ = "1234567890"
- CLS
- x$ = editor$(1, 1, 10, t$)
- PRINT : PRINT x$
-
- FUNCTION editor$ (row%, column%, strlen%, edstr$)
- text$ = edstr$: test% = LEN(text$)
- IF test% < strlen% THEN text$ = text$ + SPACE$(strlen% - test%)
- IF test% > strlen% THEN text$ = LEFT$(text$, strlen%)
- LOCATE row%, column%, 1, 9, 11: p% = column%
- PRINT text$; : LOCATE row%, column% + p% - 1
- DO
- a$ = INKEY$
- IF LEN(a$) THEN
- IF LEN(a$) = 1 THEN test% = ASC(a$) ELSE test% = -ASC(RIGHT$(a$, 1))
- SELECT CASE test%
- CASE 8 'Backspace
- p% = p% - 1
- IF p% = 0 THEN
- p% = 1
- ELSE
- text$ = LEFT$(text$, p% - 1) + MID$(text$, p% + 1) + " "
- END IF
- CASE -83 'DELete key
- text$ = MID$(text$, 1, p% - 1) + MID$(text$, p% + 1) + " "
- CASE 27 'ESC key pressed
- text$ = "": EXIT DO
- CASE -77 'Right Arrow
- IF p% < strlen% THEN p% = p% + 1
- CASE -75 'Left Arrow
- IF p% > 1 THEN p% = p% - 1
- CASE 13 'ENTER (accept) key
- EXIT DO
- CASE -71 'HOME key
- p% = 1
- CASE -79 'END key
- p% = strlen%
- CASE 32 TO 255 'Alpha-numeric key
- IF insert% <> 0 AND LEN(RTRIM$(text$)) < strlen% THEN
- text$ = MID$(text$, 1, p% - 1) + a$ + MID$(text$, p%, strlen% - p% -
- 1)
- p% = p% + 1
- ELSE
- MID$(text$, p%) = a$: IF p% < strlen% THEN p% = p% + 1
- END IF
- END SELECT
- LOCATE row%, column%: PRINT text$; : LOCATE row%, column% + p% - 1
- END IF
- 'check state of insert key
- DEF SEG = &H40: test% = PEEK(&H17): DEF SEG
- IF test% THEN insert% = -1 ELSE insert% = 0
- LOOP
- IF LEN(text$) THEN editor$ = text$ ELSE editor$ = edstr$
- END FUNCTION
-