Nu har jag hamnat lite grann på spåret: Jag tror inte det är så bra ide att använda DblClick eventet för att hitta nästa text. Testa med att skapa en meny för sök och sök nästa och ange snabbtangenterna "Ctrl+F" och "F3" vilket jag har för mig är windows standard.hjälp... instr() -på gång att funka
Jag ändrade startpos=1 till startpos=4 och skrev hej hej i programmet i text2, och då hittade den hej nummer 2, så att nu förstår jag lite mer vad det sitter i..
problemet är alltså att hitta alla förekomster vid upprepade dubbelklickningar.. Jag måste få startpos att få värdet positionen efter den föregående positionen den hittat, när man dubbelklickar igen.
koden ser ut så här:
Private Sub Text2_DblClick()
Dim pos As Integer, jfrtyp As Integer, startpos As Integer
If Check1 = Unchecked Then
jfrtyp = 1
Else
jfrtyp = 0
End If
startpos = 1
pos = InStr(startpos, Text2, Text1, jfrtyp)
If Len(Text1) = 0 Then
MsgBox "SKRIV IN ORD ATT SÖKA!", vbInformation, "INGET ANGETT SÖKORD"
Text1.SetFocus
ElseIf pos > 0 Then
Label3.Caption = "träff i positionen: " & pos
Text2.SelStart = pos - 1
Text2.SelLength = Len(Trim(Text1))
Else
Label3.Caption = "ingen träff!"
End If
End SubSv: hjälp... instr() -på gång att funka
Om du gjort det bör följande kod fungera:
'mnuFind - Sök menyn
'mnuFindNext - Sök Nästa menyn
Private Property Get CompareMethod() As VbCompareMethod
If Check1 = vbUnchecked Then
CompareMethod = vbTextCompare
Else
CompareMethod = vbBinaryCompare
End If
End Property
Private Sub mnuFind_Click()
Dim startpos As Integer
Dim pos As Integer
startpos = 1
pos = InStr(startpos, Text2, Text1, CompareMethod)
If pos > 0 Then
Text2.SelStart = pos - 1
Text2.SelLength = Len(Text1)
Text2.SetFocus
Else
MsgBox "Text ej funnen!"
End If
End Sub
Private Sub mnuFindNext_Click()
Dim startpos As Integer
Dim pos As Integer
If StrComp(Text2.SelText, Text1, CompareMethod) Then
startpos = Text2.SelStart + 1
Else
startpos = Text2.SelStart + Len(Text1)
End If
pos = InStr(startpos, Text2, Text1, CompareMethod)
If pos > 0 Then
Text2.SelStart = pos - 1
Text2.SelLength = Len(Text1)
Text2.SetFocus
Else
MsgBox "Text ej funnen!"
End If
End Sub