Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

[vb6] Richtextbox opmaak

Janssen
9 antwoorden
  • Hai,

    Ik ben momenteel bezig met een bot voor in een chatbox, en voor de weergave van de chat gebruik ik een richtextbox, met name om inspringingen en verschil in kleur te kunnen gebruiken. Nu heb ik echter het probleem dat als ik een regel in de chat krijg die langer is dan de box is, dat deze (zoals gewenst) de regel afbreekt, maar dan vervolgens verder gaat onder de naam van de chatter, en dus geen inspringing meer maakt. Iemand enig idee om dit op te lossen?

    Plaatje voor de duidelijkheid… :

    [img:33a34bdf80]http://www.lekkersexbeest.nl
    ichtext.jpg[/img:33a34bdf80]


    Verder… de code die ik gebruik om de afstand tussen de chatnaam (chname) en de tekst te bepalen is:

    Function chtab(chname As String) As String
    If Len(chname) > 4 Then
    chtab = vbTab & vbTab
    Exit Function
    End If
    If Len(chname) > 8 Then
    chtab = vbTab
    Exit Function
    End If
    If Len(chname) > 12 Then
    chtab = ""
    Exit Function
    End If
    chtab = vbTab & vbTab & vbTab
    End Function

    Dit is echter niet waterdicht… ik zoek daarvoor nog iets van een functie als zeg maar de tabstops van MS Word…. iemand daar nog advies voor?

    Alvast bedankt !

    Janssen
  • je kan beter de functie textwidth gebruiken, zo kan je precies berekenen wanneer de ze in te lang word, daarna dus een paar tabs plaatgsen en daarna het volgende deel van de zin.
  • Kan je niet gewoon tabs invoegen?
  • als je echt makkelijk wilt doen dan maak je gewoon twee richtextboxen: een voor de namen en de andere voor de text. Heb je het gezeik van de tabs ook niet meer..
  • [quote:a0356e4d93="RobertoAL"]als je echt makkelijk wilt doen dan maak je gewoon twee richtextboxen: een voor de namen en de andere voor de text. Heb je het gezeik van de tabs ook niet meer..[/quote:a0356e4d93]

    Maar dan moet ik alsnog laten "detecteren" dat de chatregel over meerdere regels loopt… Anders lopen ze niet meer synchroon ;)

    Ik ga is even met het textwidth aan het puzzellen, een nieuw iets voor mij.

    Alvast bedankt, ik laat weten of het gelukt is :)
  • ik heb een beetje lopen klojen.. dit is er bij mij uitgekomen, er vanuit gaande dat je 2 rtb boxern hebt (rtb1 en rtb2) en 2 text boxen

    rtb1 refereert aan de naam
    rtb2 refereert aan het bericht

    txt1 aan de naam
    txt2 aan het bericht

    [code:1:fc5297ccfc]
    Private Sub cmd1_Click()

    nrregelsrtb2 = Round(TextWidth(txt2) / rtb2.Width)
    nrregelsrtb1 = Round(TextWidth(txt1) / rtb1.Width)

    naamstore = txt1

    For i = 1 To nrregelsrtb2 - rtbregelsrtb1
    naamstore = naamstore & vbCrLf
    Next

    rtb1.Text = rtb1.Text & naamstore
    rtb2.Text = rtb2.Text & txt2 & vbCrLf

    End Sub
    [/code:1:fc5297ccfc]

    Er zit een maar aan: dat is dat bij regel 1 en 2 round ook naar beneden afrond, ajs je dat kan vervangen door een functie die ook 1,1 naar 2 afrond werkt het.
  • ik zit nu niet thuis dus ik kan het even niet controleren maar is er niet ergens een windows message die vertelt dat een regel afgebroken gaat worden? Misschien kun je de richtextbox subclassen en de windows messages afvangen voor dit afbreek gedeelte. Zodra je dus deze message krijgt kun je het afbreken opvangen met de benodigde tabs o.i.d. Alleen bij het resizen wordt het allemaal iets trager omdat je dan de tabs weg moet halen, kijken moet waar de linebreaks optreden en daar weer de nieuwe tabs plaatsen.
  • is dat niet een stuk onhandiger? als mijn vorige post werkt is dat volgens mij de makkelijkste manier
  • Tja, ik geef alleen een mogelijke manier, misschien is het niet alleen onhandiger maar werkt het helemaal niet. :D Maar niet geschoten, altijd mis en zo heeft de TS een aantal mogelijkheden waar hij verder mee kan stoeien. :wink:

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.