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

 

  Dicas

  Visual Basic    (ActiveX/Controles/DLL)

Título da Dica:  Procurando Strings em um TextBox
Postada em 14/8/2000 por Webmaster      Clique aqui para enviar email para o autor  webmaster@vbweb.com.br
'No Declarations do Form:
Private iLast As Integer
Private iFirst As Integer
Private sFind As String
Private Sub Text1_GotFocus()
  'Valor Default p/ as variaveis
  iLast = 1
  iFirst = 1
End Sub

Private Sub Text1_KeyUp(KeyCode As Integer, _
        Shift As Integer)
  Dim sMensagem As String, sTitulo As String
  Dim sDefault As String, bCtrlDown As Boolean
  Dim bProcura As Boolean, iNum As Integer
  Dim iPos As Integer, iPos_Fim As Integer

  bCtrlDown = (Shift And vbCtrlMask) > 0
  bProcura = False
  If KeyCode = vbKeyF And bCtrlDown Then
    'A Tecla Ctrl+F foi pressionada

    sMensagem = "Entre com o Texto a ser procurado!"
    sTitulo = "Procura"
    sDefault = ""
    sFind = InputBox(Mensagem, Titulo, Default)
    If sFind = "" Then Exit Sub

    'Marca como a tecla F3 tivesse sido pressionada.
    KeyCode = 114 'Forca a passagem pela Busca
  End If

  'As rotinas abaixo verificam se a tecla apertada é
  'F3. A primeira coisa a ser feita é verificar se
  'realmente existe em algum ponto do TextBox a string
  'informada no InputBox.
  'Existindo a string, entao é verificado se a busca
  'será feita "para baixo" (F3) ou "para cima" (Shift+F3)
  If KeyCode = 114 Then
    If InStr(Text1.Text, sFind) = 0 Then
      MsgBox "Texto não encontrado!", vbInformation
      Exit Sub
    End If
    If Shift = 1 Then
      If iFirst = 0 Or InStr(Mid(Text1.Text, 1, _
            iFirst), sFind) = 0 Then
        iFirst = Len(Text1.Text)
      End If
      For iNum = (iFirst - 1) To 1 Step -1
        If Mid(Text1.Text, i%, _
              Len(Find_String)) = Find_String Then
          iPos = iNum
          Exit For
        End If
        DoEvents
      Next
      For iNum = (iFirst - 1) To 1 Step -1
        If Mid(Text1.Text, iNum, _
              Len(sFind)) = sFind Then
          iPos_Fim = Len(sFind) + iNum
          Exit For
        End If
        DoEvents
      Next
      iLast = iPos_Fim
      iFirst = iPos
      Text1.SelStart = iPos - 1
      Text1.SelLength = iPos_Fim - iPos
    Else
      iPos = InStr(iLast, Text1.Text, sFind)
      iFirst = iPos
      If iPos = 0 Then
        iLast = 1
        iPos = InStr(iLast, Text1.Text, sFind)
      End If
      iPos_Fim = Len(sFind) + iPos
      iLast_Pos = iPos_Fim
      Text1.SelStart = iPos - 1
      Text1.SelLength = iPos_Fim - Pos
    End If
  End If
End Sub
 


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