17. december 2003 - 16:10Der 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
Kommunerne har digitaliseret indgangen for borgerne. Men bag skærmen håndteres mange arbejdsgange stadig manuelt mellem systemer, mails og organisatoriske siloer.
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.
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..!-)
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
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 :)
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
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?
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
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 ;)
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
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.