Resumen Sobreescritura en TextBox

Me ha gustado la idea de ampliar la funcionalidad de TextBox.
Funciona muy bien el ejemplo de José Rubí y se puede ampliar haciendo que
cambie el aspecto del cursor con 2 funciones de la API. El módulo BAS ahora
quedaría ahora así:

Option Explicit
Declare Function CreateCaret Lib "user32" (ByVal hWnd As Long, ByVal hBitmap
As Long, ByVal nAncho As Long, ByVal nAlto As Long) As Long
Declare Function ShowCaret Lib "user32" (ByVal hWnd As Long) As Long
Global gInsert As Integer

Sub ControlaInsert(texto As Control, tecla As Integer, Shift As Integer,
insertar As Integer)
If Shift > -1 Then 'evento keydown
    If tecla = 45 Then insertar = Not insertar 'tecla insert
    If insertar Then
      CreateCaret texto.hWnd, 0, 1, 20 'Cursor estrecho para insertar
    Else
      CreateCaret texto.hWnd, 0, 6, 20 'Cursor más ancho para sobreescribir
    End If
     ShowCaret texto.hWnd 'Muestra el cursor
    Exit Sub
End If
If insertar Or texto.SelLength > 0 Then Exit Sub 'emplear el comportamiento
por defecto

texto.SelLength = 1 'marco el siguiente caracter al cursor
texto.SelText = Chr$(tecla) 'lo sustituyo por el que teclean
texto.SelLength = 0 'no selecciono ningun caracter
tecla = 0 'como procese la tecla la quito para que no se escriba de nuevo
End Sub

Por supuesto se puede mejorar. Uno de los problemas es que en una fuente
proporcional, al pasar por una M el cursor de sobreescribir debería ser
más ancho que al pasar por una I.

Saludos Gusti (Augusto Cervera) gusti@redestb.es
--------------------------------------------------------------------

-----Original Message-----
De: José Rubí de la Vega <jrubi@arrakis.es>
Para: vb-esp@ccc.uba.ar <vb-esp@ccc.uba.ar>
Fecha: lunes 13 de octubre de 1997 10:29
Asunto: Re: (VB-ESP) Sobreescritura en TextBox



>Habitualmente, existe un modo de edicion de texto que se activa/desactiva
>usando la tecla "Insert" y sirve para que cuando escribamos, se inserten
>caracteres, o bien se sobreescriban. Pues bien, parece ser que por defecto
>queda deshabilitado su uso cuando escribimos en un "TextBox". Por tanto, mi
>pregunta es ¿existe alguna forma de habilitar esta caracteristica cuando
se
>escribe en un "TextBox"?

He puesto en mis páginas una rutina que permite sobreescrinir en un
textbox.
La acabo de hacer al ver tu pregunta por lo que supongo que será mejorable
pero creo que podrá servirte de punto de partida (la he probado y creo que
funciona bien).

Un saludo.
_________________________________________________
José Rubí de la Vega
E-mail : jrubi@arrakis.es
WWW : http://www.arrakis.es/~jrubi



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com