FINALLY fixed the backspace problem.
This commit is contained in:
parent
a1a067d417
commit
8b67f882dc
@ -68,4 +68,3 @@ Exit
|
||||
::requires 'ooSQLite.cls'
|
||||
::requires "rxunixsys" LIBRARY
|
||||
::requires 'ncurses.cls'
|
||||
|
||||
|
@ -186,7 +186,7 @@
|
||||
self~dropWindow(formwin)
|
||||
RETURN
|
||||
END
|
||||
phone = self~getInputField(formwin, 5, 14, 15)
|
||||
phone = self~getInputField(formwin, 5, 10, 15)
|
||||
if phone = .nil then do
|
||||
self~dropWindow(formwin)
|
||||
RETURN
|
||||
@ -196,7 +196,7 @@
|
||||
self~dropWindow(formwin)
|
||||
RETURN
|
||||
END
|
||||
email = self~getInputField(formwin, 6, 14, 30)
|
||||
email = self~getInputField(formwin, 6, 10, 30)
|
||||
if email = .nil then do
|
||||
self~dropWindow(formwin)
|
||||
RETURN
|
||||
@ -397,7 +397,6 @@
|
||||
|
||||
self~setupMainMenu(win)
|
||||
menuwin~refresh()
|
||||
|
||||
RETURN
|
||||
|
||||
/************************
|
||||
@ -410,17 +409,23 @@
|
||||
win~curs_set(1) /* Show cursor */
|
||||
win~keypad(1) /* Enable function keys and arrow keys */
|
||||
win~echo() /* Show typed characters */
|
||||
/* win~raw */
|
||||
win~raw
|
||||
|
||||
buffer = ""
|
||||
blank_line = copies(" ", maxlen) /* String of spaces for clearing the line */
|
||||
|
||||
do forever
|
||||
key = win~getch()
|
||||
|
||||
decimalKey = C2D(key)
|
||||
/* Debug: Display key decimal value */
|
||||
/* win~mvaddstr(12, 2, "Key pressed (decimal): " || decimalKey || " ") */
|
||||
|
||||
|
||||
select
|
||||
when key = D2C(27) then do /* ESC key */
|
||||
win~curs_set(0) /* Hide cursor */
|
||||
win~noecho() /* Stop showing typed characters */
|
||||
win~mvaddstr(8, 2, "Decimal: "C2D(key) )
|
||||
return .nil /* Return nil to indicate cancellation */
|
||||
end
|
||||
when key = D2C(10) | key = D2C(13) then do /* Enter key */
|
||||
@ -428,12 +433,14 @@
|
||||
win~noecho() /* Stop showing typed characters */
|
||||
return buffer /* Return the entered text */
|
||||
end
|
||||
when key = D2C(8) | key = D2C(127) then do /* Backspace */
|
||||
when decimalKey = 3290675 then do
|
||||
/* when key = D2C(8) | key = D2C(26) | key = D2C(127) */
|
||||
/* I don't know why the standard ASCII codes don't work! */
|
||||
if buffer~length > 0 then do
|
||||
buffer = buffer~left(buffer~length - 1)
|
||||
win~move(y, x)
|
||||
win~addstr(buffer || " ") /* Erase the last character */
|
||||
win~move(y, x + buffer~length - 1)
|
||||
win~addstr(buffer || " ")
|
||||
win~move(y, x + buffer~length)
|
||||
end
|
||||
end
|
||||
otherwise do
|
||||
@ -533,6 +540,19 @@
|
||||
end
|
||||
return
|
||||
|
||||
::METHOD stripChar263
|
||||
use arg inputString
|
||||
|
||||
outputString = ""
|
||||
|
||||
do i = 1 to inputString~length
|
||||
char = inputString~substr(i, 1)
|
||||
if C2D(char) \= 263 then
|
||||
outputString = outputString || char
|
||||
end
|
||||
|
||||
return outputString~changeStr("263", "")
|
||||
|
||||
::METHOD findInArray
|
||||
use arg array, item
|
||||
do i = 1 to array~items
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user