ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > word wrap | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
1 2 -3- | [ - Beitrag schreiben - ] |
13.11.2009, 14:28 Uhr AGSzabo Posts: 1663 Nutzer |
@DrNOP: eh, das wäre schonmal ein guter ansatz? im übrigen habe ich die routine jezt funktionsfähig hinbekommen, es wird dabei aber das erste wort einer zeile doppelt bearbeitet! einmal bei sehen ob es noch in die zeile passt und dann als erstes wort der nächsten zeile... vielleicht kann das jemand noch weiter optimieren... code:--.start move.l xuiFd_wrappedtext(a3),a5 ; d7 width of space ; d6 width of textfield tst.b (a5) beq.b .rts .while_words bsr .get_word ; first of a line ; SpaceLeft := LineWidth - Width(word) move.w d6,d5 sub.w d0,d5 .while_misc ; while( ( word:=next() ) AND char<>$a AND Width(word)+SpaceWidth<SpaceLeft) tst.b -1(a5) beq.b .rts move.l a5,a4 bsr .get_word cmp.b #$a,-1(a4) beq.b .while_words add.w d7,d0 sub.w d0,d5 bgt.b .while_misc move.b #$a,-1(a4) move.l a4,a5 bra.b .while_words .rts rts .get_word ; a5 *word, >a5 *after word+space move.l a5,a0 ; word pointer moveq #0,d0 ; word lenght in chars .gw_loop move.b (a5)+,d1 beq.b .textlength cmp.b #$a,d1 beq.b .textlength cmp.b #" ",d1 beq.b .textlength addq #1,d0 bra.b .gw_loop .textlength move.l a2,a1 jmp _LVOTextLength(a6) Sam mini os4.1 -- e-uae 39bb2 -- A4000D 3.0 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
13.11.2009, 19:34 Uhr AGSzabo Posts: 1663 Nutzer |
@Der_Wanderer > Einzelzeichen sind keine gute Idee. doch, ich habs hinbekommen. beim umbruch wird das aktuelle wort zur berechnung seiner pixelbreite in einen eigenen buffer kopiert und dabei die steuerzeichen übergangen. beim printen dann wird es so gemacht wie du es empfohlen hast. stile sind auch über das ende einer zeile hinaus gültig. > "Ich bin ein bText, der ab ihier auch noch itallic ist,x jetzt nur noch bold und x jetzt wieder normal. Backslashes \ gehen auch." einen einzelnen stil einschalten und das // geht bei mir schon. aber die verschachtelung und das spezifische /x, wie macht man das? [ Dieser Beitrag wurde von AGSzabo am 13.11.2009 um 19:36 Uhr geändert. ] [ Dieser Beitrag wurde von AGSzabo am 13.11.2009 um 22:54 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
1 2 -3- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > word wrap | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |