Code archives/BlitzPlus Gui/Simple Query

This code has been declared by its author to be Public Domain code.

Download source code

Simple Query by Zakk2009
Simple query window designed to be used like the BRL.System commands like Prompt and RequestFile. Asks the user for a string and returns the result.

Example usage:
'query example.bmx

Import MaxGui.Drivers
Include "query.bmx"

input_text:String=Query("Enter a string.", "Default")
Notify "User entered: '"+input_text+"'"

End
'query.bmx, requires maxgui

'=============================
Global query_window:TGadget=CreateWindow("Query", 0, 0, 182, 58, Null, WINDOW_CENTER|WINDOW_TITLEBAR|WINDOW_TOOL|WINDOW_CLIENTCOORDS|WINDOW_HIDDEN)
Global query_field:TGadget=CreateTextField(4, 4, 174, 22, query_window)
Global query_okay:TGadget=CreateButton("Okay", 4, 30, 85, 24, query_window)
Global query_cancel:TGadget=CreateButton("Cancel", 93, 30, 85, 24, query_window)
'=============================
Function Query:String(text:String, initial:String)
Local id:Int, es:Object
	SetGadgetText(query_window, text)
	SetGadgetText(query_field, initial)
	ActivateGadget(query_field)
	ShowGadget query_window
	Repeat
		id=WaitEvent()
		es=EventSource()
		Select id
			Case EVENT_WINDOWCLOSE
				Select es
					Case query_window
						HideGadget query_window
						Return initial
					Default
				End Select
			Case EVENT_WINDOWACTIVATE
				Select es
					Case query_window
					Default
						ActivateGadget(query_window)
				End Select
			Case EVENT_GADGETACTION
				Select es
					Case query_okay
						HideGadget query_window
						Return GadgetText(query_field)
					Case query_cancel
						HideGadget query_window
						Return initial
				End Select
			Default
		End Select
	Forever
End Function
'=============================

Comments

None.

Code Archives Forum