roTextField
Un campo de texto representa un área de la pantalla que puede contener texto arbitrario. Esta función está destinada a presentar información de diagnóstico y uso. Utilice el objeto roTextWidget para generar texto para interfaces de usuario y señalización.
Creación del objeto: El objeto se crea con varios parámetros:
CreateObject("roTextField", xpos As Integer, ypos As Integer, width_in_chars As Integer, height_in_chars As Integer, metadata As Object)- xpos: La coordenada horizontal para la esquina superior izquierda del campo de texto.
- ypos: La coordenada vertical para la esquina superior izquierda del campo de texto. La parte superior de la pantalla equivale a cero.
- width_in_chars: El ancho del campo de texto en celdas de caracteres.
- height_in_chars: La altura del campo de texto en celdas de caracteres.
- metadatos: Un roAssociativeArray opcional que contiene parámetros adicionales para el campo de texto. Puede pasar cero si no requiere esto.
El arreglo asociativo metadata admite los siguientes parámetros adicionales:
- "CharWidth": El ancho de cada celda de caracteres en píxeles.
- "CharLength": La altura de cada celda de caracteres en píxeles.
- "BackgroundColor": El color de fondo del campo de texto como un entero que especifica ocho bits (para cada uno) para rojo, verde y azul con la forma &Hrrggbb.
- "TextColor": El color del texto como un entero que especifica ocho bits (para cada uno) para rojo, verde y azul con la forma &Hrrggbb.
- "Size": Una alternativa a "CharWidth" y "CharLength" para especificar texto de tamaño normal (0) o texto de doble tamaño (1).
En los modos TV, es posible que no se muestre un borde alrededor de la pantalla debido al overscanning. Puede que desee utilizar las funciones del objeto roVideoMode GetSafeX() y GetSafeY() para asegurarse de que las coordenadas que utilice sean visibles.
ifTextField
Cls() As Void
Limpia el campo de texto.
GetWidth() As Integer
Devuelve el ancho del campo de texto
GetHeight() As Integer
Devuelve la altura del campo de texto.
SetCursorPos(x As Integer, y As Integer) As Void
Mueve el cursor a la posición especificada. La salida posterior aparecerá en esta posición.
GetValue() As Integer
Devuelve el valor del carácter que está actualmente debajo del cursor
Raise() As Void
Envía el widget a la parte superior del orden z en el plano gráfico (es decir, delante de todas las demás superficies que implementan la interfaz ifWidget). De forma predeterminada, los nuevos widgets se colocan en la parte superior del orden z gráfico.
Algunas superficies siempre se dibujan en la parte superior del orden z gráfico, incluido el cursor del mouse, los subtítulos y teletipos desplazablesscrolling tickers.
Puede utilizar los métodos PauseGraphics()/ ResumeGraphics() en el objeto roVideoMode para garantizar que múltiples cambios en el orden z gráfico ocurran simultáneamente.
Lower() As Void
Envía el widget a la parte inferior del orden z en el plano gráfico (es decir, detrás de todas las demás superficies que implementan la interfaz ifWidget). De forma predeterminada, los nuevos widgets se colocan en la parte superior del orden z gráfico.
ifStreamSend
SendByte(byte As Integer) As Void
Escribe el carácter indicado por el número especificado en la posición actual del cursor dentro del campo de texto. Luego avanza el cursor.
SendLine(string As String) As Void
Escribe los caracteres especificados en la posición actual del cursor seguidos por la secuencia de fin de línea.
SendBlock(string As Dynamic) As Void
Escribe los caracteres especificados en la posición actual del cursor y avanza el cursor hasta una posición después del último carácter. Este método puede admitir una cadena o un roByteArray. Si el bloque es una cadena, cualquier byte nulo terminará el bloque.
SetSendEol(string As String) As Void
Establece la secuencia enviada al final de un valor SendLine(). Debe dejar esto en el valor ASCII predeterminado de 13 (retorno de carro) para un uso normal. Si necesita cambiar este valor a otro carácter no imprimible, use la chr función globalfunción global.
La interfaz ifStreamSend también se describe en la sección que documenta los diversos objetos de archivo. La interfaz se describe nuevamente aquí de una manera más específica para el objeto roTextField.
Impresión de un campo de texto
Al igual que con cualquier objeto que implemente la interfaz ifStreamSend , se puede escribir en un campo de texto usando la sintaxis PRINT #textfield. Consulte el siguiente ejemplo para obtener más detalles.
También es posible escribir en un campo de texto usando la sintaxis PRINT #textfield, @pos, donde pos es la posición del carácter en el campo de texto. Por ejemplo, si su objeto campo de texto tiene 8 columnas y 3 filas, escribir en la posición 17 escribe en la fila 3, columna 2 (las posiciones 0-7 están en la fila 1; las posiciones 8-15 están en la fila 2; y las posiciones 16-23 están en la última fila).
Cuando la salida llegue a la parte inferior del campo de texto, este se desplazará automáticamente.
Ejemplo
meta = CreateObject("roAssociativeArray")
meta.AddReplace("CharWidth", 20)
meta.AddReplace("CharLength", 32)
meta.AddReplace("BackgroundColor", &H101010) ' Dark grey
meta.AddReplace("TextColor", &Hffff00) ' Yellow
vm = CreateObject("roVideoMode")
tf = CreateObject("roTextField", vm.GetSafeX(), vm.GetSafeY(), 20, 20, meta)
print #tf, "Hello World"
tf.SetCursorPos(4, 10)
print #tf, "World Hello"