
12/09/2009, 16:10
|
 | | | Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 21 años, 5 meses Puntos: 19 | |
Respuesta: RichTextBox: Leer texto de cierta linea... Cita:
Iniciado por seba123neo Hola, culd, aca te dejo una funcion con SendMessage, es la mejor forma creo, aparte es rapidisimo cuando tenes miles de lineas.
Código vb:
Ver originalOption Explicit Private Const EM_LINEINDEX = &HBB Private Const EM_LINELENGTH = &HC1 Private Const EM_GETLINE = &HC4 Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lPara As Long) As Long Private Declare Function SendMessageString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lPara As String) As Long Private Sub Command1_Click() MsgBox TextoLineaRichTextBox(Richtextbox1, 58) End Sub Private Sub Form_Load() Dim i As Long For i = 0 To 100 Richtextbox1.Text = Richtextbox1.Text & "Linea " & i & vbCrLf Next End Sub Private Function TextoLineaRichTextBox(ByVal pControl As RichTextBox, ByVal pLinea As Long) As String Dim vLongitudLinea As Long, vNumeroLinea As Long Dim vTemporal As String TextoLineaRichTextBox = "" vNumeroLinea = SendMessageLong(pControl.hwnd, EM_LINEINDEX, pLinea, 0&) vLongitudLinea = SendMessageLong(pControl.hwnd, EM_LINELENGTH, vNumeroLinea, 0&) + 1 vTemporal = String$((vLongitudLinea + 2), 0) Mid$(vTemporal, 1, 1) = Chr$(vLongitudLinea And &HFF) Mid$(vTemporal, 2, 1) = Chr$(vLongitudLinea \ &H100) vLongitudLinea = SendMessageString(pControl.hwnd, EM_GETLINE, pLinea, vTemporal) If (vLongitudLinea > 0) Then TextoLineaRichTextBox = Left$(vTemporal, vLongitudLinea) End If End Function
saludos. Gracias por el dato...
Igualmente es un post del 2006 |