textbox, ver las últimas líneas no las primeras. pol faaavol

Cuestiones y dudas acerca de lenguajes de programación diversos.

Moderador: Moderadores

luis5f
Novat@
Mensajes: 4
Registrado: Lun Dic 24, 2007 11:38 am

textbox, ver las últimas líneas no las primeras. pol faaavol

Mensaje por luis5f » Mié Dic 26, 2007 1:27 pm

Necesito algo que en principio me parecía muy simple pero me está corroyendo durante los últimos días.
Tengo un textbox, multilínea y scrollbars (vertical sólamente).
Cada vez que pulso en un botón, se me escribe una línea de texto en el textbox, que se va añadiendo a lo anterior.
El problema está en que cuando el número de líneas de texto, es mayor que lo que cabe en el textbox, lo que veo son las primeras líneas, pero no las últimas, QUE ES LO QUE BUSCO ver lo último escrito no las primeras líneas.

Si alguien me pudiera ayudar, le estaría muy agradecido, mi proyecto depende todo de esto, lo demás esta hecho.
Gracias....

Avatar de Usuario
Carola77
Senior
Mensajes: 111
Registrado: Mié Abr 04, 2007 3:13 am
Ubicación: CHILE - El país mas hermoso del Mundo

Mensaje por Carola77 » Mié Dic 26, 2007 6:31 pm

Hola
pdrias copiar el codigo para guiarnos mejor y no alterar lo que llevas hecho?
Carola77 - Lista para la Primavera y el año mas triste de mi vida
" El conocimiento no se Gasta ni se Vende, Compartirlo es lo mejor para enrriquecernos y asi seremos cada dia mejor"

luis5f
Novat@
Mensajes: 4
Registrado: Lun Dic 24, 2007 11:38 am

¿cóm envío el código?

Mensaje por luis5f » Mié Dic 26, 2007 9:11 pm

Perdón por la pregunta, pero en esto de los foros soy novatillo.
El código es muy corto ya que he hecho un ejemplito con el problema, pero lo pregunto para que no tengais que teclear.

Gracias ... y espero tu respuesta para poner el código.

luis5f
Novat@
Mensajes: 4
Registrado: Lun Dic 24, 2007 11:38 am

el código,

Mensaje por luis5f » Jue Dic 27, 2007 9:26 pm

Private Sub Form_Resize()
Text1.Move 0, 0, ScaleWidth, ScaleHeight
End Sub

Private Static Sub Text1_DblClick()
Dim cadena As String

Dim i As Long
i = i + 1
cadena = "esta es la línea nº" & i
Text1.Text = Text1.Text & cadena & vbCrLf

End Sub


Si lo ejecutáis sale un formulario en blanco, y un textbox que ocupa todo el formulario. Éste se reajusta al tamaño del formulario en caso de que le cambiemos el tamaño al formulario. Cada vez que hagamos un doble click dentro aparece una línea de texto que se va añadiendo a las que ya existían. El problema, como comenté, es que si el número de líneas es superior a los que caben en la pantalla, sólo vemos las primeras líneas no las últimas que se van escribiendo. ¿Cómo hago para ver las últimas escritas sin usar la barra de desplazamiento?. Estoy seguro de que esto para gente con nivel tiene que ser "chupao" por favor AYUUUDAAAA. Gracias a todos y Carola77 en particular.
No he fracasado. He encontrado 10,000 soluciones que no funcionan (Benjamin Franklin).

Avatar de Usuario
Pitufo
Administrador foro
Mensajes: 646
Registrado: Dom Dic 03, 2006 3:39 pm
Contactar:

Mensaje por Pitufo » Vie Dic 28, 2007 1:06 am

Si no recuerdo mal, has de utilizar la propiedad SelStart del TextBox, (se suele usar conjuntamente con SelLength). Para llevar el cursor al final, debe ser algo parecido a:

Text1.SelStart=Len(Text1.Text)
Text1.SelLength=0

Creo que con eso lograrás encaminarte a la solución.

Saludos.

Avatar de Usuario
Carola77
Senior
Mensajes: 111
Registrado: Mié Abr 04, 2007 3:13 am
Ubicación: CHILE - El país mas hermoso del Mundo

Mensaje por Carola77 » Vie Dic 28, 2007 3:46 am

Hola.
Por lo que veo el codigo se ve simple, :D , pero es verdad aveces uno se enrreda y estresa con cualquier cosa y la solucion es minima a mi me ha pasado un varias oportunidades :? .
este es tu programa.

Private Sub Form_Resize()
Text1.Move 0, 0, ScaleWidth, ScaleHeight
End Sub

Private Static Sub Text1_DblClick()
Dim cadena As String

Dim i As Long
i = i + 1
cadena = "esta es la línea nº" & i
Text1.Text = Text1.Text & cadena & vbCrLf

End Sub


Y como dice Pitufo te sirven estas 2, con una le sacas el largo a la frase o texto que has escrito y con la otra vuelves el cursor al inicio del texto logrando asi ver los de arriba ya que este comando hace aparte q el cursor este en la posicion 0.0 es que mueva el texto acomodandolo y por eso veamos la primera frase o texto escrito.

Private Sub Form_Resize()
Text1.Move 0, 0, ScaleWidth, ScaleHeight
End Sub

Private Static Sub Text1_DblClick()
Dim cadena As String
Dim i As Long
i = i + 1
cadena = "esta es la línea nº" & i
Text1.Text = Text1.Text & cadena & vbCrLf
Text1.SelStart=Len(Text1.Text)
Text1.SelLength=0
End Sub [/b][/color]

pd: Si estas usando un incrementador i=i+1 . ¿adonde lo usas y para que?
Carola77 - Lista para la Primavera y el año mas triste de mi vida
" El conocimiento no se Gasta ni se Vende, Compartirlo es lo mejor para enrriquecernos y asi seremos cada dia mejor"

luis5f
Novat@
Mensajes: 4
Registrado: Lun Dic 24, 2007 11:38 am

lo he probado y va, gracias me habeis ayudado mucho.

Mensaje por luis5f » Vie Dic 28, 2007 1:44 pm

Gracias Carola77 y Pitufo, lo he probado en cuanto lo he visto y es lo que buscaba. No sabeis lo mucho que ayudais a los que comienzan ...
No he fracasado. He encontrado 10,000 soluciones que no funcionan (Benjamin Franklin).

Avatar de Usuario
cracksis

Re: textbox, ver las últimas líneas no las primeras. pol faaavol

Mensaje por cracksis » Jue Jul 26, 2012 1:04 am

luis5f escribió:Necesito algo que en principio me parecía muy simple pero me está corroyendo durante los últimos días.
Tengo un textbox, multilínea y scrollbars (vertical sólamente).
Cada vez que pulso en un botón, se me escribe una línea de texto en el textbox, que se va añadiendo a lo anterior.
El problema está en que cuando el número de líneas de texto, es mayor que lo que cabe en el textbox, lo que veo son las primeras líneas, pero no las últimas, QUE ES LO QUE BUSCO ver lo último escrito no las primeras líneas.

Si alguien me pudiera ayudar, le estaría muy agradecido, mi proyecto depende todo de esto, lo demás esta hecho.
Gracias....

Utiliza el metodo AppendText del TextBox este lo agregara al final y solo se recorrera para mostrarlo.

Responder