USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic    (Datas/Números/Strings)

Título da Dica:  Adiantando o conteúdo completo do digitado, através de aproximação de conteúdo
Postada em 31/10/2003 por Roßerto            
O código a seguir, cria um caixa de entrada de text (input box) inteligente.

Toda vez que você digita alguma coisa numa caixa de texto, as primeiras letras do texto sendo
digitado, são comparadas com uma lista invisível de textos. O código "advinha" que texto
estaria sendo digitado de uma forma similar ao comportamento da nova versão do Internet Explorer.

Para usar esta técnica, adicione uma lista de texto (list box) no seu formulário e mude a propriedade Visible para False. Neste exemplo, usei uma lista fictícia de informações que é preenchida no evento Load do form. Numa aplicação real, você deve ir adicionando um novo elemento à lista de texto após o usuário completar a digitação na caixa de texto.

Escreva o código abaixo no formulário que contém a lista de textos e a caixa texto para digitação:

Option Explicit
Private Const LB_FINDSTRING = &H18F
Private Declare Function SendMessage Lib _
"User32" Alias "SendMessageA" (ByVal _
hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) _
As Long

Private Sub Form_Load()

List1.AddItem "Laranja"
List1.AddItem "Banana"
List1.AddItem "Maça"
List1.AddItem "Pera"

End Sub

Private Sub Text1_Change()

Dim pos As Long
List1.ListIndex = SendMessage( _
List1.hWnd, LB_FINDSTRING, -1, ByVal _
CStr(Text1.Text))

If List1.ListIndex = -1 Then
pos = Text1.SelStart
Else
pos = Text1.SelStart
Text1.Text = List1
Text1.SelStart = pos
Text1.SelLength = Len(Text1.Text) - pos
End If

End Sub



Private Sub Text1_KeyDown(KeyCode As _
Integer, Shift As Integer)

On Error Resume Next

If KeyCode = 8 Then 'Backspace

If Text1.SelLength <> 0 Then
Text1.Text = Mid$(Text1, 1, _
Text1.SelStart - 1)
KeyCode = 0
End If

ElseIf KeyCode = 46 Then 'Del

If Text1.SelLength <> 0 And Text1.SelStart <> 0 Then
Text1.Text = ""
KeyCode = 0
End If

End If

End Sub
 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página