Avatar billede psychomania Nybegynder
19. marts 2003 - 11:10 Der 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

hilsen tommy
Avatar billede dk_akj Nybegynder
19. marts 2003 - 16:01 #1
Avatar billede sjh Nybegynder
20. marts 2003 - 00:44 #2
Her er en lille demo på at søge:



Option Explicit

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
Avatar billede psychomania Nybegynder
20. marts 2003 - 09:43 #3
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.
Avatar billede psychomania Nybegynder
20. marts 2003 - 09:56 #4
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.
Avatar billede dk_akj Nybegynder
20. marts 2003 - 11:47 #5
jamen så skal jeg da med glæde rette det til for dig :-)

//akj
Avatar billede dk_akj Nybegynder
20. marts 2003 - 11:56 #6
Værsgo:
http://www.eybye-kjaer.dk/uploads/files/find.zip

//akj - som håber det er bedre med dette link ;-)
Avatar billede martin_moth Mester
20. marts 2003 - 16:19 #7
psyco>> Hvorfor kan du ikek bruge sjh's svar? Er det ikke bare at forsyne Texte med form-navnet

Atlså ændre
  If FindString(Text1, Text2, False) = False Then
til
  If FindString(MainForm.Text1, Text2, False) = False Then

Så det kan du sagtens "bruge til en skid"
Avatar billede psychomania Nybegynder
21. marts 2003 - 09:12 #8
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.
Avatar billede martin_moth Mester
21. marts 2003 - 10:28 #9
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?
Avatar billede psychomania Nybegynder
21. marts 2003 - 11:20 #10
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.
Avatar billede psychomania Nybegynder
21. marts 2003 - 11:25 #11
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.
Avatar billede dk_akj Nybegynder
21. marts 2003 - 11:50 #12
tak for pts.

//akj
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester