hola , alguien podria orientarme de como hacer que en un texto sea multi linea?
la idea seria que el texto no se salga de la region y que pudiera ser multilinea, y se si puede con scroll.
he estado batallando algunos dias y no logro poder crearlo :c
es par amostrar la informacion de la carta que aparece al lado izquierdo abajo de la carta grande
(http://i.imgur.com/r7dGs9A.png)
OMG, se ve estupendo el trabajo que estás haciendo, mis felicitaciones.
Sobre tu pregunta, la librería tiene las funciones FONT_SystemGetTextWidth y FONT_SystemGetTextHeight para determinar cuantos pixel va a utilizar determinado string y con eso ya puedes hacer rutinas para ajustar el texto.
acá te dejo el código que yo uso para ajustar el texto de forma horizontal (es para vb .net). Eso si, esta rutina no es recomendable llamarla en cada ciclo, lo mejor es llamarla solo una vez cuando cargues el texto que vas a mostrar, por ejemplo, cuando se haga clic sobre la carta.
Public Function Ajustar_Texto(ByVal nCadena As String, ByVal nFont As Integer, ByVal nAncho As Integer) As String
Dim resultado As String = ""
Dim palabras() As String = Split(nCadena, " ") 'Generamos un array con cada palabra que contenga el texto
Dim tempCadena As String = "" 'Almacena la cadena de texto temporal con la cual estamos trabajando
If oGFX.FONT_SystemGetTextWidth(nFont, nCadena) > nAncho Then 'Comprobamos si el texto original es más grande que el ancho asignado, de ser así entramos en la rutina para recortar el ancho
For Each palabra In palabras 'Recorremos todo el array de palabras que componen el texto a ajustar
If (oGFX.FONT_SystemGetTextWidth(nFont, tempCadena) + oGFX.FONT_SystemGetTextWidth(nFont, palabra)) < nAncho Then 'Comprobamos cuando mide la lína temporal + la palabra que estamos agregando
'Si el tamaño es menor al ancho máximo, agregamos la palabra a la línca temporal
tempCadena = tempCadena & palabra & " "
Else
'Si el tamaño es superior, entonces agregamos una núeva línea
resultado = resultado & tempCadena & vbCrLf
tempCadena = palabra
End If
Next
resultado = resultado & tempCadena
Else
resultado = nCadena
End If
Return resultado
End Function
Lamentablemente no he programado ninguna rutina para un ajuste vertical, pero lo que podrías hacer es con la función oGFX.FONT_SystemGetTextHeight es calcular cuando mide cada línea de texto y con eso calculas cuantas líneas puedes mostrar. Yo creo que con eso podrías programar la aparición de un ascensor pero si tienes problemas avisa por acá y veo si puedo programar un ejemplo.
Saludos.