(10-06-2022, 19:18)portaro escribió: Y el codigo texto de esto como seria ?
' Gambas class file
Export
Inherits UserControl
Public Const _Properties As String = "*,Text,List,Height_List,ShowsAllZero"
Public Const _Similar As String = "TextBox"
Private FormMere As Object
Private $txt As TextBox
Private $Lvw As ListView
Property Values As String[]
Private $iValues As New String[] ''Valeur a afficher
Property List As String[]
Private $iList As New String[]
Property Cle As String
Private $iCle As String ''Valeur a afficher
Property Text As String
Private $iText As String
Property Height_List As Float
Private $iHeight_List As Float
Event Change
Event Activate
Event KeyPress
Property ShowsAllZero As Boolean
Private $iShowsAllZero As Boolean
Private Function ShowsAllZero_Read() As Boolean
Return $iShowsAllZero
End
' ... continua
(10-06-2022, 10:54)Shordi escribió: De todas formas tiene el problema de "convivir" con el resto de controles en formularios o contenedores que usen el Arrangement....
(11-06-2022, 12:59)portaro escribió: Si me referia al de Ticho. Gracias amigos por compartir.Solo para aclarar, si te refieres a la clase gb.TextList, es de Bernard, un usuario del foro francés no mio. https://gambas-fr.org/code-105-gbtextlist.html
Public Sub txtNombre_KeyRelease()
Dim x As Integer
If Key.Code <> Key.BackSpace And lstLista.Count <> 0 Then
For x = 0 To lstLista.Count - 1
If InStr(Left(UCase(lstLista[x].Text), Len(txtNombre.Text)), UCase(txtNombre.Text)) <> 0 Then
lstLista.Index = x
Return
Endif
Next
Else
If Len(txtNombre.Text) = 0 Then lstLista.Index = -1
Return
Endif
End
Public Sub lstLista_KeyRelease()
Dim x As Integer
'Si la lista contiene más de un elemento
If lstLista.Count > 1 Then
'Si la tecla retroceso es pulsada
Select Case (Key.Code)
Case Key.BackSpace
'Eliminamos una letra de la variable palabra
palabra = Left(palabra, Len(palabra) - 1)
Case Else
'Añadimos una letra a la variable palabra
palabra &= Chr$(Key.Code)
End Select
'Mostramos en la etiqueta el contenido de la variable palabra
lbpalabra.Text = palabra
If Len(palabra) = 0 Then
'Si la longitud de la palabra es 0, no selecciones ningún elemento.
lstLista.Index = -1
Return
Endif
For x = 0 To lstLista.Count - 1
'Si la subcadena se encuentra en la cadena
If InStr(Left(UCase(lstLista[x].Text), Len(palabra)), UCase(palabra)) <> 0 Then
'Situate en el elemento x de la lista
lstLista.Index = x
Return
Endif
Next
Else
'Lista vacia
Message.Info("No existen elementos en la lista")
Return
Endif
End