[futurebasic] Re: [FB] Edit field typing and updating...

Message: < previous - next > : Reply : Subscribe : Cleanse
Home   : January 2002 : Group Archive : Group : All Groups

From: Ken Shmidheiser <k.shmidheiser@...>
Date: Thu, 17 Jan 2002 10:21:13 -0500
Robert asked:

>How does one, as an edit field is being typed into, know that the 
>field is being typed into, so one can update that or other fields 
>based on the current value typed?

Robert,

You could intercept the keystroke with ON EDIT. This allows you to 
use the arrow and delete keys.

Just a thought.

Ken

'------ Feeding keystrokes in FB^3 -------

LOCAL FN buildWindow
DIM AS RECT r
DIM AS INT  i

EDIT = 3
SETRECT( r, 0, 0, 350, 220 )
WINDOW -1,"",@r,_docNoGrow

SETRECT( r, 20, 20, 100, 33 )
EDIT FIELD -1,"",@r,_framed,_leftJust

FOR i = 2 TO 5
OFFSETRECT( r, 0, 24 )
EDIT FIELD -i,"",@r,_framed,_leftJust
NEXT i

SETRECT( r, 110, 20, 330, 33 )
EDIT FIELD -6,"",@r,_statNoframed,_leftJust

FOR i = 7 TO 10
OFFSETRECT( r, 0, 24 )
EDIT FIELD -i,"",@r,_statNoframed,_leftJust
NEXT i

EDIT$(6) = "This field is limited to numbers"
EDIT$(7) = "The rest accept all characters..."
EDIT$(8) = "...plus the input from EF 1."

SETRECT( r, 280, 180, 330, 200 )
BUTTON 1,1,"Quit",@r,_shadow

EDIT FIELD 1

WINDOW 1

END FN

LOCAL FN doDialog
DIM AS INTEGER evnt, id

evnt = DIALOG(0)
id = DIALOG(evnt)

SELECT CASE( evnt )

CASE _wndClose
SELECT( id )
CASE 1 : gFBQuit = _zTrue
END SELECT
CASE _btnClick
SELECT( id )
CASE 1 : gFBQuit = _zTrue
END SELECT
END SELECT

END FN

LOCAL FN doOtherFields( keyStr AS STR15 )
DIM AS int i

FOR i = 2 TO 5
EDIT$(i, _minInt, _maxInt) = keyStr
NEXT i

END FN

LOCAL FN copyOtherFields
DIM AS INT i

FOR i = 2 TO 5
EDIT$(i) = EDIT$(1)
NEXT i

END FN

LOCAL FN doEdit
DIM AS STR15 theKey
DIM AS INT id, passValue

theKey$ = TEKEY$
      id = WINDOW(_efNum)

SELECT CASE theKey$
CASE "0","1","2","3","4","5","6","7","8","9"
SELECT id
CASE 1
TEKEY$ = theKey
passValue = ASC(TEKEY$)
FN doOtherFields( theKey )
CASE ELSE
TEKEY$ = theKey
END SELECT
CASE CHR$(8),CHR$(28),CHR$(29),CHR$(30),CHR$(31)
SELECT id
CASE 1
TEKEY$ = theKey
FN copyOtherFields
CASE ELSE
TEKEY$ = theKey
END SELECT
CASE ELSE
SELECT id
CASE 1
CASE ELSE
TEKEY$ = theKey
END SELECT
END SELECT

END FN

ON DIALOG FN doDialog
ON EDIT FN doEdit

FN buildWindow

DO
HANDLEEVENTS
UNTIL gFBQuit
END