Locate
Sets the current cursor position
Syntax
`
Declare Function Locate( row As Integer = 0, column As Integer = 0, state As Integer = -1, start As Integer = 0, stop As Integer = 0 ) As Integer
`
Usage
`
Locate [row], [column], [state]
result = Locate( [row], [column], [state] )
new_column = LoByte( result )
new_row = HiByte( result )
new_state = HiWord( result )
`
Parameters
`row`
the 1-based vertical character position in the console.
`column`
the 1-based horizontal character position in the console.
`state`
the state of the cursor. `0` is off, `1` is on (console-mode only).
`start`
Ignored. Allowed for -lang qb dialect compatibility only.
`stop`
Ignored. Allowed for -lang qb dialect compatibility only.
Return Value
Returns a 32 bit `Integer` containing the new cursor position and state. The Low Byte Of The Low Word contains the new column, the High Byte Of The Low Word contains the new row, and the High Word contains the new cursor state.
Description
Sets the text cursor in both graphics and console modes.
Example
`
Locate 10
Print "Current line:"; CsrLin
`
`
'' Text cursor + mouse tracking
Dim As Integer x = 0, y = 0, dx, dy
Cls
Locate , , 1
While Inkey <> Chr(27)
GetMouse dx, dy
If( dx <> x Or dy <> y ) Then
Locate y+1, x+1: Print " ";
x = dx
y = dy
Locate 1, 1: Print x, y, ""
Locate y+1, x+1: Print "X";
End If
Wend
`
Differences from QB

- The `start` and `stop` arguments have no effect in FreeBASIC.

See also

- `CsrLin`
- `Pos`
- `Print`