Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

controlar lineas de un textbox multi linea

Estas en el tema de controlar lineas de un textbox multi linea en el foro de Visual Basic clásico en Foros del Web. hola tengo una pregunta que no se resolverla tengo un textbox1 multilinea y necesito remplazar el texto de la linea 5 del texbox1 en otro ...
  #1 (permalink)  
Antiguo 07/05/2009, 10:35
 
Fecha de Ingreso: febrero-2008
Mensajes: 52
Antigüedad: 16 años, 2 meses
Puntos: 0
controlar lineas de un textbox multi linea

hola tengo una pregunta que no se resolverla
tengo un textbox1 multilinea y necesito remplazar el texto de la linea 5 del texbox1 en otro textbox2 por medio de un boton.

el codigo de remplace es este
Código:
Private Sub Command1_Click()
textbox2.Text = Replace(textbox1.Text, "blabla", "line5")
End Sub
el codigo quedaria algo asi pero no se como decirle que me remplace la linea 5 del texbox1(multilinea) en el texbox2

ESPERO QUE ALGUIEN ME PUEDA AYUDAR GRACIAS!!!
  #2 (permalink)  
Antiguo 07/05/2009, 13:01
 
Fecha de Ingreso: mayo-2009
Mensajes: 31
Antigüedad: 15 años
Puntos: 0
Respuesta: controlar lineas de un textbox multi linea

A ver si vale esto:
Pones en un módulo el código que te propongo.

Después la llamada sería algo así:

Private Sub Command1_Click()
Textbox2.Text = Replace(Textbox2.Text, GetLine(Textbox2, 5), GetLine(Textbox1, 5))
End Sub

Con esto cambia la línea 5 de Texbox2 por la línea 5 del Texbox1 ¿querías algo así?

Y si pones Textbox2.Text = Replace(Textbox1.Text, Getline(Textbox1, 5), "Hola, Mundo")
Te pone en Texbox2 el contenido de Texbox1 pero con la líneaa 5 cambiada a "Hola Mundo"

Un saludo.

Código:
Option Explicit

Private Const EM_LINEFROMCHAR = &HC9
Private Const EM_GETLINE = &HC4

Private Declare Function SendMessage Lib "user32" _
                                         Alias "SendMessageA" _
                                         (ByVal hwnd As Long, _
                                         ByVal wMsg As Long, _
                                         ByVal wParam As Long, _
                                         ByVal lParam As String) _
                                         As Long
'

Public Function GetLine(txtTextBox As TextBox, Optional Linea As Long) As String
    Dim LineaActual As String * 255
    Dim LineaNumero As Long
    Dim Longitud As Long
    If Linea = 0 Then 'No se pasó línea
        'La que está en la posición del cursor:
        LineaNumero = SendMessage(txtTextBox.hwnd, EM_LINEFROMCHAR, txtTextBox.SelStart, 0&)
    Else
        LineaNumero = Linea - 1 '(Base 0)
    End If
    LineaActual = String(255, Chr(255))

    Call SendMessage(txtTextBox.hwnd, EM_GETLINE, LineaNumero, LineaActual)
    Longitud = InStr(LineaActual, Chr(255))
    If Longitud > 0 Then
        GetLine = Left(LineaActual, Longitud - 1)
    Else
        GetLine = LineaActual
    End If
End Function

Última edición por Marcelote; 07/05/2009 a las 13:15
  #3 (permalink)  
Antiguo 08/05/2009, 11:43
 
Fecha de Ingreso: febrero-2008
Mensajes: 52
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: controlar lineas de un textbox multi linea

gracias compañero esto era lo que buscaba :)
lo he adactado a mi codigo y funciona perfectamente
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:39.