Jag vet att det börjar bli lite tjatigt, men jag måste bara få reda på en sak. hej Hej<p> Det här kanske är till nån hjälp: HejFråga om Sök
Så här långt har jag kommit hittills:
Private Sub cmdsöknästa_Click()
Activeform.rtfDokument.SelStart = Instr(Activeform.rtfDokument.Text, comsökefter.Text) - 1
Activeform.rtfDokument.SelLength = Len(comsökefter.Text)
End Sub
När man trycker på knappen markeras alltså ordet första gången ordet dyker upp i texten. Men sen vill jag att nästa gång man trycker på knappen så skall nästa ord markeras som man söker efter.
Fattar ni, så sluta läs här, ni andra läser vidare.
Ex. Jag vill söka efter ordet "hej" i texten. Jag skriver in "hej" i sökrutan, klickar på knappen "sök". Första "hej"et markeras. Jag trycker en gång, och då skall nästa "hej" markeras o.s.v.
Väldigt Tacksam För Svar
Med Många Vänliga Hälsningar Dan "DaPe" PerssonSv: Fråga om Sök
Jag förstår din fråga och antar utmaningen
skall skriva en liten funktion som löser ditt problem.
återkommer på denna kanal
mvh
SvenSv: Fråga om Sök
Det du frågar är faktiskt inte så svårt alls... InStr har en (egentligen två) parametrar till som du inte har använt, bland annat en som säger var i strängen den ska börja söka. Titta på funktionen InStr på msdn för mer information.<p>
InStr([start, ]string1, string2[, compare])<p>
Testa den här funktionen istället (tror den fungerar, har inte testat den än men du förstår principen).
<code>
Private Sub cmdsöknästa_Click()
Static start As Long
' Uppdatera start, start är 0 första gången samt om den sökta strängen inte funnits
start = Instr(start, Activeform.rtfDokument.Text, comsökefter.Text)
Activeform.rtfDokument.SelStart = start - 1
Activeform.rtfDokument.SelLength = Len(comsökefter.Text)
End Sub
</code>
Mvh. Johan SegolssonSv: Fråga om Sök
<code>
Private Sub cmdFindNext_Click()
Dim frmForm As Form1
Dim sFind As String
Dim lStart As Long
Dim lLength As Long
Dim lReturn As Long
Set frmForm = ActiveForm
sFind = comsökefter.Text
lLength = Len(sFind)
If frmForm Is Nothing Then
MsgBox "Det finns inget dokumet öppet"
Else
With frmForm.rtfDokument
If StrComp(.SelText, sFind, vbTextCompare) = 0 Then
lStart = .SelStart + lLength
End If
lReturn = InStr(lStart + 1, .Text, comsökefter.Text, vbTextCompare)
If lReturn Then
.SelStart = lReturn - 1
.SelLength = lLength
Else
MsgBox "Text ej funnen!", vbInformation
End If
End With
End If
End Sub
</code>Sv: Fråga om Sök
Kolla under API-windows härovan SendMessage
Så skall ditt problem lösas "the pro way"
mvh
Sven