Avatar billede q^bone Nybegynder
17. december 2003 - 16:10 Der er 17 kommentarer og
1 løsning

Fed tekst i Rich Text Box

Hej alle.
Jeg har lavet et program med nogle check boxes hvor man kan vælge hvilke info man vil se. f.eks. Navn og fritid.

navn = "Navn" & vbCrLf & "Mads Henriksen" & vbCrLf & vbCrLf
og ligeledes ser det ud med fritid:
fritid = "Fritid" & vbCrLf & "Drikker øl" & vbCrLf & vbCrLf

rtfVis.Text = navn & fritid

Mit problem er nu at jeg vil have "Navn" og "Fritid" skrevet med fed og det andet med almindelig skrift.
Hvordan skal jeg gøre dette?

Jeg kan ikke se hvordan jeg skulle kunne bruge SelStart og SelLength  da dette ville blive noget underligt noget, for lad os sige at brugeren vælger at vise "Arbejde" og "Fritid", så nytter det jo ikke noget at jeg har gået ud fra at "Navn" stod som det første ord, og så ville det kun blive "Arbe" som stod med fed og "jde" med almindelig skrift.

Håber i kan forstå mit problem og hjælpe mig.
På forhånd tak
Avatar billede jih Nybegynder
17. december 2003 - 16:30 #1
navn = "Navn" & vbCrLf & "Mads Henriksen" & vbCrLf & vbCrLf ' Declare String navn
fritid = "Fritid" & vbCrLf & "Drikker øl" & vbCrLf & vbCrLf ' Declare String fritid
rtfVis.FontBold = True ' Set rtfVis to True
rtfVis.Text = navn & fritid ' Show Text

----

det du mener?
Avatar billede q^bone Nybegynder
17. december 2003 - 16:33 #2
I det du lige har skrevet blive al teksten i rtfVis fed?
Avatar billede jih Nybegynder
17. december 2003 - 16:34 #3
ja.... jeg tror ik det er muligt at lave dele af den fed... så bliver du nødt til at lave flere textboxe...
Avatar billede q^bone Nybegynder
17. december 2003 - 16:38 #4
Hmm jeg hørte engang at man kune få lave noget som kørte teksten igennem og søgte efter alle ord som hedder "Fritid" f.eks. og så kunne man lave noget med nogle arrays og hvad ved jeg. og på dne måde kunne man gøre dele af den fed.

Nogle som kan hjælpe?
Avatar billede jih Nybegynder
17. december 2003 - 16:39 #5
hmmm... kender jeg ik noget til.. har jeg ik set... prøvede nemlig selv en del... men jeg kan desværre ik hjælpe mere.... håber du finder ud af det... :) God jul..!-)

//WebPsycho
Avatar billede q^bone Nybegynder
17. december 2003 - 16:40 #6
Tak og i lige måde :)

Håber der er nogle hardcore derude som kunne tænke sig 100 point :)
Avatar billede sion Nybegynder
17. december 2003 - 16:55 #7
Følgende virker, men jeg er ikke sikker på at det er den smarteste metode, men det giver i det mindste et bud på hvordan det kan gøres.

  r.Text = r.Text & "Davs <FED> Bjarne </FED>!!!"
 
  r.TextRTF = Replace(r.TextRTF, "<FED>", "\b")
  r.TextRTF = Replace(r.TextRTF, "</FED>", "\b0")

Hvor "r" er richtextbox'en. Desværre virker tricket kun én gang, så du skal først replace når alt teksten er opskrevet i tekstboksen....
Håber du kan bruge det til noget.
-Sion
Avatar billede sion Nybegynder
17. december 2003 - 16:57 #8
btw, g^bone, hvis kan godt farve teksten fed ved at søge efter forskellige ord, men det er ikke en særlig elegant måde at gøre det på. Men hvis du er interesseret skal jeg da nok lave et eksempelt til dig :)
Avatar billede q^bone Nybegynder
17. december 2003 - 17:03 #9
Hmm vil det så sige at den måde som du svarede med, den er den nemmeste? Hvis dette er tilfældet, hvorda skal jeg så lave det hvis jeg har lad os sige  Navn, Arbejde, Fritid, Uddannelse og Adresse med?

og den der \b0 kan den ikke laves som \b1?
Jeg er ikke helt med på hvordan jeg skal bruge din metode :S
Avatar billede q^bone Nybegynder
17. december 2003 - 17:06 #10
hmm jeg har afprøvet og jeg kan godt bruge \b1 og \b2 osv.
derved kan jeg jo egentlig godt bruge metoden ved også at smide et for loop ind :)
Avatar billede q^bone Nybegynder
17. december 2003 - 17:07 #11
vil lige se om jeg kan få det til at virke, hvis det bliver et ja så scorer du en ekstra julegave hehe :P
Avatar billede q^bone Nybegynder
17. december 2003 - 17:08 #12
tog fejl.. det der virkede var at kalde den <FED></FED> og <FED1></FED1>
Avatar billede sion Nybegynder
17. december 2003 - 17:12 #13
Jeg har lige testet metoden med flere linjers tekst og det ser ikke ud til at virke ordenligt. Så jeg tror lige jeg fixer en loop-fremgang til dig. Skal nogle bestemte ord bare farves, eller er det blot det første ord på hver linje?
Avatar billede sion Nybegynder
17. december 2003 - 17:20 #14
Måske noget i dén her stil?

  Dim FedeOrd As String, arrFedeOrd() As String
  FedeOrd = "Navn,Arbejde,Fritid,Uddanelse,Adresse"
  arrFedeOrd = Split(FedeOrd, ",")
 
  Dim ix As Integer, SearchStart As Long
  For ix = LBound(arrFedeOrd) To UBound(arrFedeOrd)
    SearchStart = 1
    Do While InStr(SearchStart, r.Text, arrFedeOrd(ix)) <> 0
      SearchStart = InStr(SearchStart, r.Text, arrFedeOrd(ix))
      r.SelStart = SearchStart - 1
      r.SelLength = Len(arrFedeOrd(ix))
      r.SelBold = True
      SearchStart = r.SelStart + r.SelLength
    Loop
  Next
Avatar billede sion Nybegynder
17. december 2003 - 17:27 #15
Denne fremgangsmåde virker i hvert fald - også i større tekstsammenhænge. Du kan også f.eks. farvelægge ordene ved at tilføje "r.SelColor = vbRed" efter "r.SelBold = True" eller bruge "r.Underline = True" for at... øhh jaah, for at understege ordene ;)
Avatar billede sion Nybegynder
17. december 2003 - 17:32 #16
Lille ændring - nu virker koden også selvom ordene ikke starter med stort forbogstav i teksten. Så nu bliver f.eks. "aRbEjDe" også gjort fedt ;)

  Dim FedeOrd As String, arrFedeOrd() As String, HeleTeksen As String
  FedeOrd = UCase("Navn,Arbejde,Fritid,Uddanelse,Adresse")
  arrFedeOrd = Split(FedeOrd, ",")
  HeleTeksen = UCase(r.Text)
 
  Dim ix As Integer, SearchStart As Long
  For ix = LBound(arrFedeOrd) To UBound(arrFedeOrd)
    SearchStart = 1
    Do While InStr(SearchStart, HeleTeksen, arrFedeOrd(ix)) <> 0
      SearchStart = InStr(SearchStart, HeleTeksen, arrFedeOrd(ix))
      r.SelStart = SearchStart - 1
      r.SelLength = Len(arrFedeOrd(ix))
      r.SelBold = True
      SearchStart = r.SelStart + r.SelLength
    Loop
  Next
Avatar billede q^bone Nybegynder
17. december 2003 - 18:01 #17
Haha hvor er det alt for sygt sion... det ser endda elegant ud ;)
Tusing tak for hjælpen! Ville ønske jeg havde givet dig flere point :)
Avatar billede sion Nybegynder
17. december 2003 - 18:07 #18
Hehe, det var så lidt - takker for point :)
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