19. marts 2003 - 11:10Der er
10 kommentarer og 2 løsninger
søg og markere text i en textbox
hej eksperter
jeg er i gang med at lave en søge funktion i en editor og er stødt på et problem. jeg har 2 form's hvoraf den ene er hovedformen hvor jeg har det åbne dokument og så har jeg en søge form som har en textbox og en knap. når man trykker på knappen skal den søge hovedformen igennem og finde det første ord som er identisk med det ord som er i textboxen i søge formen. derefter skal ordet i hovedformen markeres. hvordan gør jeg det? jeg har nu forsøgt med flere forskellige metoder deriblandt instr() og kan ikke få den til at virke
Public Function FindString(ByVal objText As TextBox, _ ByVal strFind As String, _ Optional bNew As Boolean = True) As Boolean Dim i As Long Static m_Count As Long With objText If bNew = True Or m_Count = 0 Then m_Count = 1 End If If Len(.Text) > 0 Then For i = m_Count To Len(.Text) If LCase(Mid(.Text, i, Len(strFind))) = LCase(strFind) Then m_Count = (i + Len(strFind)) .SelStart = (i - 1) .SelLength = Len(strFind) .SetFocus FindString = True Exit For End If Next i End If End With End Function
Private Sub Command1_Click() 'New search 'Starter med at søge efter "søge" If FindString(Text1, Text2) = False Then MsgBox "Søgningen fandt ikke noget." End If End Sub
Private Sub Command2_Click() 'Search Next 'Forsætter med at søge efter "søge" If FindString(Text1, Text2, False) = False Then MsgBox "Søgningen fandt ikke flere." End If End Sub
Private Sub Form_Load() Command1.Caption = "Find ny" Command2.Caption = "Find næste" Text1 = "Dette er en søge test, og en søge til." Text2 = "søge" End Sub
sjh >> jeg er ked af at sige det med jeg kan ikke bruge din kode til en skid da den ikke kan bruges på tvers af forskellige forms. hvis du kan få den til at søge fra en søge form i en text form så kan jeg bruge det ellers kan jeg ikke.
dk_akj >> der er 2 grunde til at jeg ikke acceptere dit svar. 1. jeg acceptere generelt ikke folk som bare smider et link. 2. jeg kan ikke bruge en msgbox til at søge med da jeg skal vidreudbygge min søgebox senere så den også kan erstatte ord og tælle antellet af fundne resultater i hele dokumentet.
martin_moth >> tror du ikke jeg har prøvet det? jeg har haft en som lever af at lave programmer i vb til at kigge på den kode og han kan heller ikke få den til at virke da jeg skal søge i en richtextbox og den fungere ikke på samme måde som en normal textbox. derfor kan jeg heller ikke bruge din "rettelse". ellers havde jeg brugt den inden jeg havde sagt at jeg ikke kunne bruge den.
Sikke en fin tone du har overfor folk som prøver at hjælpe dig!
Det er ikke spor svært at gøre det du vil, og jeg kan garanterer dig, at du kun skal lave meget få rettelser i svaret fra sjh før at det virker.
Men jeg vil da foreslå at du selv laver det eller får din ven som lever af at lave programmer til at lave det for dig - hvis han lever af at lave programmer, mon så ikke han kan håndterer at lave noget så banalt som en søgefunktion?
martin_moth >> jeg har selv lavet en søgefunktion og en erstat funktion ud fra det som dk_akj viste mig. jeg kunne ikke få sjh's script til at virke efter hensigten i min kode. hvis du kan få sjh's kode til at søge i en richtexbox så gør du bare det. jeg kunne ikke og min ven kunne se at det ville blive for besværligt at lave den om så den kunne da han ville blive nød til at lave det meste om.
dk_akj >> du får point for at have hjulpet mig frem til en løsning.
sjh >> du får også point for at have forsøgt på at hjælpe mig. :) jeg kan rigtig godt lide din version af søgefunktionen det er bare en skam jeg ikke kan bruge den... :(
martin_moth >> jeg er ikke sur på dig for jeg kan godt se at du forsøgte at hjælpe men jeg var bare en smule gnaven eftersom at jeg har bøvlet med denne funktion i et par dage... :/ men det kender du vel også godt selv fra noget programkode som ikke vil som du vil.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.