Esta utilidad... desde que he empezado a usar esto de poner la primera letra más grande, siempre ha empezado por E...
Como decía, esta utilidad la uso cuando quiero ampliar un campo de texto para que pueda mostrarse al tamaño que yo quiera, la idea la saqué de un artículo de VB Online (Dale's Workbench en la edición de Julio), no todo van a ser ideas mías... la cuestión es usar, ampliar y si es posible, mejorar lo que otros han pensado...
La cuestión es que al final se ha convertido en casi un editor de texto, sólo que no puede leer ni escribir en archivos.La forma de usarlo es muy simple sólo tienes que asignar el texto que quieres mostrar/editar, mostrar el form y después, si se ha pulsado en Aceptar, volver a asignarlo al sitio que corresponda.
Este form tiene un menú de edición con las rutinas básicas, además de buscar y reemplazar, para mostrar el diálogo de búsqueda, uso el que en su día incluí en el proyecto gsNotas, pero con unos cambios para usarlo más genéricamente... Es cuestión de que le eches un vistazo al código...
En los listados para VB5 el editor acepta archivos usando Drag & Drop, si quieres implementarlo en VB4, deberás sustituir el TextBox por un RichTextBox (el que se incluye con la versión 5 de VB) o bien usar el método que está en el Proyecto gsNotas.
Para usarlo, deberás hacer algo como esto:
With fMiniEditor .txtEditor = Text1 .Show vbModal If iFFAccion <> cFFAc_Cancelar Then 'aceptar el texto Text1 = .txtEditor End If End With Unload fMiniEditorAquí tienes el form del Mini-Editor:
Y este es el código:
'------------------------------------------------------------------ 'Form genérico para mostrar un texto (31/Ago/97) 'con algunas opciones de búsqueda, etc. ' '(c)Guillermo Som, 1997 '------------------------------------------------------------------ Option Explicit Dim bIniciandose As Boolean Private Sub CmdAceptar_Click() 'Aceptar iFFAccion = cFFAc_Aceptar Hide End Sub Private Sub CmdCancelar_Click() 'cancelar iFFAccion = cFFAc_Cancelar Hide End Sub Private Sub cmdImprimir_Click() 'imprimir cmdAceptar.Enabled = False cmdCancelar.Enabled = False With cmdImprimir .Caption = "Imprimiendo..." .Enabled = False End With gsImprimir txtEditor cmdAceptar.Enabled = True cmdCancelar.Enabled = True With cmdImprimir .Caption = "Imprimir" .Enabled = True End With End Sub Private Sub Form_Load() bIniciandose = True txtEditor.Move 60, 60 sFFIni = App.Path & "\miniEditor.ini" 'Ajustar el tamaño y posición guardada Left = Val(LeerIni(sFFIni, "Ventana", "Left", CStr(Left))) Top = Val(LeerIni(sFFIni, "Ventana", "Top", CStr(Top))) Height = Val(LeerIni(sFFIni, "Ventana", "Height", CStr(Height))) Width = Val(LeerIni(sFFIni, "Ventana", "Width", CStr(Width))) WindowState = Val(LeerIni(sFFIni, "Ventana", "WindowState", CStr(WindowState))) Set LineaEstado = Label1 MostrarLinea bIniciandose = False End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) If UnloadMode <> vbFormCode Then iFFAccion = cFFAc_Cancelar End If End Sub Private Sub Form_Resize() 'actualizar el tamaño del TextBox y los botones (31/Ago/97) 'si se minimiza no hacer nada If WindowState = vbMinimized Then Exit Sub With cmdAceptar .Top = ScaleHeight - 90 - .Height cmdCancelar.Top = .Top cmdImprimir.Top = .Top Label1.Top = .Top + 60 End With With txtEditor .Width = ScaleWidth - 120 .Height = cmdAceptar.Top - 90 - .Top End With GuardarTamaño End Sub Private Sub Form_Unload(Cancel As Integer) GuardarTamaño Set fMiniEditor = Nothing End Sub Private Sub mnuEd_Click() 'Llama al procedimiento genérico de edición (31/Ago/97) menuEdi End Sub Private Sub mnuEdicion_Click(Index As Integer) 'Procedimiento genérico de los comandos de edición (31/Ago/97) menuEdicion Index End Sub Private Sub GuardarTamaño() If bIniciandose = False Then 'Guardar la posición y tamaño If WindowState <> vbMaximized Then GuardarIni sFFIni, "Ventana", "Left", CStr(Left) GuardarIni sFFIni, "Ventana", "Top", CStr(Top) GuardarIni sFFIni, "Ventana", "Height", CStr(Height) GuardarIni sFFIni, "Ventana", "Width", CStr(Width) End If GuardarIni sFFIni, "Ventana", "WindowState", CStr(WindowState) End If End Sub Private Sub txtEditor_KeyUp(KeyCode As Integer, Shift As Integer) MostrarLinea End Sub Private Sub txtEditor_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single) 'Aceptar archivos dejados 'deben estar estas propiedades del TextBox: ' .OLEDragMode = 0 ' .OLEDropMode = 1 ' Dim nFic As Integer Dim sNombre As String On Local Error Resume Next sNombre = Data.Files.Item(1) nFic = FreeFile Open sNombre For Input As nFic txtEditor = Input$(LOF(nFic), nFic) Close nFic Err = 0 On Local Error GoTo 0 End Sub Private Sub MostrarLinea() Dim TotalLineas& Dim LineaActual& Const EM_GETLINECOUNT = &HBA Const EM_LINEFROMCHAR = &HC9 TotalLineas = SendMessage(txtEditor.hWnd, EM_GETLINECOUNT, 0, 0&) LineaActual = SendMessage(txtEditor.hWnd, EM_LINEFROMCHAR, -1, 0&) + 1 Label1 = "Línea: " & LineaActual & " / " & TotalLineas End Sub
Pulsa este link para bajarte el listado
con el ejemplo para VB5
(t_imprimir.zip 17.4 KB)
Bajate los listados y el ejemplo para VB4 (t_imprimirVB4.zip 16.5 KB)