Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/12/2009, 04:31
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Un Reto: Mensaje de texto rotativo

Si me pagas te lo pinto y doy cera

A ver si esto te sirve esto:

He puesto un listbox oculto (List1) para no complicarme. Asegurate de agregarlo.

Código :
Ver original
  1. Function AutoTexto(ByVal TextoBase As String) As String
  2.   Dim PosicionInicio As Long
  3.   Dim PosicionFin As Long
  4.   List1.Clear
  5. Repite:
  6.   PosicionInicio = InStr(PosicionInicio + 1, TextoBase, "{")
  7.   If PosicionInicio <> 0 Then
  8.     PosicionFin = InStr(PosicionInicio + 1, TextoBase, "}")
  9.     If PosicionFin > PosicionInicio Then
  10.       List1.AddItem Mid$(TextoBase, PosicionInicio + 1, PosicionFin - PosicionInicio - 1)
  11.       TextoBase = Left$(TextoBase, PosicionInicio - 1) & "TextoVariable" & List1.ListCount & Mid$(TextoBase, PosicionFin + 1)
  12.       PosicionInicio = 0      
  13.       GoTo Repite
  14.     End If
  15.   End If
  16.   Dim Opciones() As String
  17.   Dim Eleccion As String
  18.   Dim F As Long
  19.   Randomize Timer
  20.   For F = 0 To List1.ListCount - 1
  21.     Opciones = Split(List1.List(F), "|")
  22.     Eleccion = Opciones(Rnd * UBound(Opciones))
  23.     TextoBase = Replace(TextoBase, "TextoVariable" & F + 1, Eleccion)
  24.   Next F
  25.   AutoTexto = TextoBase
  26. End Function


Para usarlo en un command button pongo el texto origen en un textbox (Text1) y el resultado lo muestro en un msgbox:

Lo ejecuto varias veces para notar los cambios.

Código :
Ver original
  1. Private Sub Command1_Click()
  2.   MsgBox AutoTexto(Text1.Text) & vbCrLf & AutoTexto(Text1.Text) & vbCrLf & AutoTexto(Text1.Text) & vbCrLf & AutoTexto(Text1.Text) & vbCrLf & AutoTexto(Text1.Text)
  3. End Sub

El tema de incluir opciones dentro de opciones no lo he visto hasta que me ha dado problemas en las pruebas. De momento no se permite.

PD: Este es el texto origen que he usado en las pruebas (dentro del Text1):
Código :
Ver original
  1. {Muy buenos días|Hola como andas|Hola como estás}, espero que {sigas|estes} bien.
  2. Te escribo para {invitarte|que vengas|que no faltes} a mi fiesta de fin de año, que se realizará el proximo domingo, en casa.
  3. {No es necesario que traigas nada, simplemente ven y trae a la familia|Ven y trae a la familia}.
  4.  
  5. {Los esperamos|Te envio un abrazo|Un saludo}

Que se dé bien.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 03/12/2009 a las 04:47