Code: Select all
Global InputString$
#InputString_Length = 20
Procedure NewChar(char)
If char > 31 And char < 128
InputString$ + Chr(char)
ElseIf char = 8
InputString$ = Left(InputString$,Len(InputString$)-1)
EndIf
InputString$ = Left(InputString$,#InputString_Length)
StartDrawing( ImageOutput(1) )
Box(15,15,170,20,GetSysColor_(#COLOR_BTNFACE))
FrontColor(RGB(Red(255),Green(0),Blue(0)))
DrawingMode(1)
SetCaretPos_((200-TextWidth(InputString$))/2+TextWidth(InputString$),17)
DrawText((200-TextWidth(InputString$))/2,17,InputString$)
StopDrawing()
SetGadgetState(0,ImageID(1))
EndProcedure
Procedure WinProc(hWnd,Msg,wParam,lParam)
result = #PB_ProcessPureBasicEvents
Select Msg
Case #WM_CHAR
NewChar(wParam)
EndSelect
ProcedureReturn result
EndProcedure
CreateImage(1,200,50)
OpenWindow(0,0,0,200,50,"Please Input Password",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ImageGadget(0,0,0,200,50,ImageID(1))
SetWindowCallback(@WinProc())
CreateCaret_(WindowID(0),0,2,16):ShowCaret_(WindowID(0))
NewChar(0)
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
End