DarkSigma Conociendo Foroz


Registrado: 23 Sep 2004
Mensajes: 24
|
Publicado: Vie Sep 24, 2004 3:35 am Título del mensaje: Leer un TextBox "Linea a Linea" |
|
|
La declaración tendrán que ponerla en la parte general del formulario y para usar el procedimiento, tendrán que pasar en el parámetro el textbox multiline que quieras imprimir.
Por supuesto, si no lo desean imprimir, pueden usarlo para leer línea a línea.
| Código: |
' Función del API de Windows de 32 bits de múltiple uso
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
Private Sub ImprimirPorLinea(qControl As TextBox)
' Este procedimiento tomará cada línea de un textbox multiline
' y lo imprimirá en la impresora predeterminada
'
' El parámetro qControl, será el TextBox a usar, en este caso no es necesario
' ya que sólo tenemos un TextBox, pero si se usaran varios...
' sería un procedimiento de uso genérico...
'
Dim i As Long, k As Long
Dim L1 As Long, L2 As Long
' Constantes para usar con SendMessage
Const EM_GETLINECOUNT = &HBA
Const EM_LINEFROMCHAR = &HC9
Const EM_LINELENGTH = &HC1
Const EM_LINEINDEX = &HBB '-# Faltaba esta declaración (21/Abr/00)
' Número de líneas del TextBox
k = SendMessage(qControl.hWnd, EM_GETLINECOUNT, 0, 0&)
Printer.Print ""
For i = 0 To k - 1
' Primer carácter de la línea actual
L1 = SendMessage(qControl.hWnd, EM_LINEINDEX, i, 0&) + 1
' Longitud de la línea actual
L2 = SendMessage(qControl.hWnd, EM_LINELENGTH, L1, 0&)
' Imprimimos el trozo de texto que representa a una línea
Printer.Print Mid$(qControl.Text, L1, L2)
Next
' Le indicamos que ya no hay más que imprimir
Printer.EndDoc
End Sub
|
_________________ .:: DarkSigma ::.
[Wenn Sie Hier Hineingehen... Sie Beloren Den Himmel...]
.:: SigmaSystem ::. |
|