February 25, 2021, 02:45:07 AM
Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email
?
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Home
Forum
Help
Search
Gallery
Login
Register
SyntaxBomb - Indie Coders
»
Languages & Coding
»
Blitz Code Archives
»
User Input
»
[bb] Input "field" by Yahfree [ 1+ years ago ]
« previous
next »
Print
Pages: [
1
]
Go Down
Author
Topic: [bb] Input "field" by Yahfree [ 1+ years ago ] (Read 588 times)
BlitzBot
Jr. Member
Posts: 1
[bb] Input "field" by Yahfree [ 1+ years ago ]
«
on:
June 29, 2017, 12:28:41 AM »
Title :
Input "field"
Author :
Yahfree
Posted :
1+ years ago
Description :
This is a basic input field function, Credits to B23 for the "iGetKey()" function and the "InitGetkey()" function.
put all 3 of these functions with the data and types in a include file before the program
to use this, Call the "InitGetKey()" before the main loop and then set up a veriable to get fed info from the "CreateInputBox()" function
the Arguments of the CreateInputBox() function are the following
YourString=CreateInputBox(Box_X, Box_Y, Box_Width, Useable/true/false?, YourString)
Heres a demo:
Code :
Code: BlitzBasic
;-----------------------------------------------------------------------------------------------------
; Types
;-----------------------------------------------------------------------------------------------------
;Type To hold scancodes
Type
ScanCode
Field
code
Field
key$
Field
upkey$
End Type
;-----------------------------------------------------------------------------------------------------
; InitGetKey()
;-----------------------------------------------------------------------------------------------------
;reads all scancodes into ScanCode type
Function
InitGetKey
(
)
;read scancodes
tel =
1
Restore
scancodez
Repeat
Read
scanc
If
scanc = -
1
Then
Exit
s.ScanCode =
New
ScanCode
scode = scanc
skey$ =
Lower
$
(
Mid
$
(
"1234567890-=QWERTYUIOP[]ASDFGHJKL;'XCVBNM,./* 789-456+1230.,/"
, tel,
1
)
)
supkey$ =
Mid
$
(
"!@#$%^&*()_+QWERTYUIOP{}ASDFGHJKL:"
+
Chr
$
(
34
)
+
"|ZXCVBNM<>?* 789-456+1230.,/"
, tel,
1
)
tel = tel +
1
Forever
End Function
Global
oldkdown
;-----------------------------------------------------------------------------------------------------
; iGetKey()
;-----------------------------------------------------------------------------------------------------
;imitates GetKey() using scancodes
Function
iGetKey
(
)
;backspace
If
KeyDown
(
14
)
Then
If
oldkdown <>
8
Then
oldkdown =
8
:
Return
8
oldkdown =
8
:
Return
End If
;enter
If
KeyDown
(
28
)
Or
KeyDown
(
156
)
Then
If
oldkdown <>
13
Then
oldkdown =
13
:
Return
13
oldkdown =
13
:
Return
End If
;check what key is down
sel.ScanCode =
Null
down = -
1
For
s.ScanCode =
Each
ScanCode
If
KeyDown
(
scode
)
Then
down = scode: sel = s:
Exit
Next
If
down = oldkdown
Then
Return
oldkdown = down
;if no valid key is selected, exit
If
sel =
Null
Then
Return
0
;shift for uppercase
If
KeyDown
(
42
)
Or
KeyDown
(
54
)
Then
sc$ = selupkey$
Else
sc$ = selkey$
End If
;return ascii value of key
Return
Asc
(
sc$
)
End Function
;-------------------------------------------------------------------------------------------------------
; CreateInputBox()
;-------------------------------------------------------------------------------------------------------
Function
CreateInputBox$
(
box_x,box_y,box_w,useable,returnstr$
)
Rect
box_x, box_y, box_w,
20
,
False
If
useable=
True
key=iGetKey
(
)
Rect
box_x+
3
+
Len
(
returnstr$
)
*
9
,box_y+
2
,
1
,
17
,
1
If
(
key=>
48
And
key=<
57
)
Or
(
key>=
65
And
key<=
90
)
Or
(
key>=
97
And
key<=
122
)
If
(
Len
(
returnstr$
)
<box_w/
10
)
returnstr$ = returnstr$ +
Chr
(
key
)
End If
End If
End If
If
useable=
True
If
KeyHit
(
14
)
If
Len
(
returnstr$
)
>
0
returnstr$=
Left
(
returnstr$,
Len
(
returnstr$
)
-
1
)
End If
If
KeyHit
(
57
)
returnstr$=returnstr$+
" "
End If
End If
Text
box_x+
3
,box_y, returnstr$
Return
(
returnstr$
)
End Function
;-------------------------------------------------------------------------------------------------------
;Data stuff
;-------------------------------------------------------------------------------------------------------
.scancodez
Data
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
Data
12
,
13
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
Data
26
,
27
,
30
,
31
,
32
,
33
,
34
,
35
,
36
,
37
,
38
Data
39
,
40
,
43
,
44
,
45
,
46
,
47
,
48
,
49
,
50
,
51
Data
52
,
53
,
55
,
57
,
71
,
72
,
73
,
74
,
75
,
76
,
77
Data
78
,
79
,
80
,
81
,
82
,
83
,
179
,
181
, -
1
;-----------------------------------------------------------------------
; PROGRAM
;-----------------------------------------------------------------------
;Include "FunctionLibary.bb"
Graphics
400
,
300
,
16
,
2
SetBuffer
BackBuffer
(
)
InitGetKey
(
)
mystring$=
""
mystring2$=
""
mystring3$=
""
tf=
False
tf2=
False
tf3=
False
controller=
1
While
Not
KeyHit
(
1
)
Cls
;CreateInputBox(box_x,box_y,box_w,box_h,useable,strng$)
mystring = CreateInputBox
(
0
,
0
,
300
,tf,mystring$
)
mystring2=CreateInputBox
(
0
,
30
,
300
,tf2,mystring2$
)
mystring3=CreateInputBox
(
0
,
60
,
300
,tf3,mystring3$
)
Select
controller
Case
1
tf=
True
tf2=
False
tf3=
False
Case
2
tf2=
True
tf3=
False
tf=
False
Case
3
tf3=
True
tf=
False
tf2=
False
End Select
If
KeyHit
(
200
)
controller = controller +
1
End If
If
controller >
3
controller=
1
Text
0
,
280
,
"TF: "
+tf
Text
60
,
280
,
"TF2: "
+tf2
Text
120
,
280
,
"TF3: "
+tf3
Delay
5
Flip
Wend
End
Comments :
none...
Logged
Print
Pages: [
1
]
Go Up
« previous
next »
SyntaxBomb - Indie Coders
»
Languages & Coding
»
Blitz Code Archives
»
User Input
»
[bb] Input "field" by Yahfree [ 1+ years ago ]
SimplePortal 2.3.6 © 2008-2014, SimplePortal