SELECIONAR TEXTO DO FIM AO INICIO

MICHAELL 21/10/2009 10:43:37
#325920
Olá pessoal...
estou tentando fazer um auto completar... ja tenho tudo pronto, porem...

eu faço da seguinte forma para selecionar um texto em um COMBO do INICIO ao FIM conforme vou digitando...

cbo.SelStart = 1
cbo.SelLength = Len(CBO.text)


porem o cursor fica fiscando no final, e caso tem texto fica ruim saber o que ja foi digitado, entao preciso que seja selecionado do fim a ultima letra digitada
ja tentei diversas formas e nao consigo.

por favor, me deem uma luz
ALEXLUGON 21/10/2009 10:56:34
#325921
em um modulo vc coloca isso

Public Sub FocaTexto(ByRef pObj As Object) [ô]Marca o texto para edição
With pObj
.SelStart = 0
.SelLength = Len(.Text)
End With
End Sub


e no form vc chama assim

Private Sub Text1_GotFocus()
Call FocaTexto(Text1)
End Sub
MARCELO.TREZE 21/10/2009 12:10:40
#325925
Resposta escolhida
tenta isto colega

Option Explicit
Private Const CB_FINDSTRING As Long = &H14C
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
Public Function Combo_AutoCompletar(xCombo As ComboBox, ByVal xKeyAscii As Long, Optional ByVal xUpperCase As Boolean = True) As Long
Dim lngFind As Long, intPos As Long, intLength As Long, tStr As String
With xCombo
If xKeyAscii = 8 Then
If .SelStart = 0 Then _
Exit Function
.SelStart = .SelStart - 1
.SelLength = Len(.Text)
.SelText = vbNullString
Else
intPos = .SelStart
tStr = .Text
.SelText = IIf(xUpperCase, _
UCase$(Chr$(xKeyAscii)), _
LCase$(Chr$(xKeyAscii)))
End If
lngFind = SendMessage(.hwnd, CB_FINDSTRING, 0, ByVal .Text)
If lngFind = -1 Then
.Text = tStr
.SelStart = intPos
.SelLength = (Len(.Text) - intPos)
Combo_AutoCompletar = xKeyAscii
Else
intPos = .SelStart
intLength = Len(.List(lngFind)) - Len(.Text)
.SelText = .SelText & Right$(.List(lngFind), intLength)
.SelStart = intPos
.SelLength = intLength
End If
End With
End Function

Tópico encerrado , respostas não são mais permitidas