Mein erster Versuch war es, es tatsächlich alles innerhalb von einem
Textfeld zu machen - mittels Leerzeichen in verschiedenen Schriftgrößen die
per setTextformat gesetzt werden. Der Vorteil wäre, daß man Texte auch mit
dem Cursor markieren könnte. Das wäre theoretisch machbar, ist aber im
Detail ziemlich kompliziert, da man mit den Leerzeichen nur eine bedingt
genaue Kontrolle hat - speziell bei nicht-eingebettetem Text liegt zwischen
zwei Punktgrößen ein relativ großer Sprung. Außerdem darf man maximal ein
Leerzeichen in der Größe des verwendeten Fonts verwenden, sonst gehen die
Zeilenabstände flöten. Das bedeutet aber für große Lücken, daß man mehrere
Leerzeichen aneinanderhängen muß und ab da wird es dann wirklich nervig.
Ich habe das also wieder bleibenlassen (vielleicht mag sich ja noch jemand
dran versuchen - theoretisch geht es). Das was ihr seht ist quasi
brute-force: Text in einzelne Worte zerlegen, für jedes Wort ein Textfeld
erzeugen und Zeile für Zeile vollpacken und ausgleichen. Also genau wie Du
es vermutet hast.
Es gibt noch zwei Spezialitäten: Steht nur ein Wort in einer Zeile, wird
dieses in einzelne Buchstaben zerhackt und über die gesamte Breite verteilt.
Passt ein Wort gerade nicht mehr so ganz in eine Zeile (die Toleranz kann
man einstellen) werden alle Worte in dieser Zeile in Buchstaben zerhackt und
dann zusammengequetscht. Da das bei langen Zeilen verdammt auf die
Performance gehen kann, gibt es ein einstellbares Limit, wieviele Worte
maximal in dieser Zeile stehen dürfen.
So - jetzt muß ich den Code nur noch hübsch machen und dann dürft Ihr ihn
haben.
Gruß Mario
Darf ich raten?
Du hast lauter textfelder gemacht und diese versucht gleichmässig zu verteilen ... kann das sein?
hmm ... ------------------------------------------------------ Archiv : //www.freelists.org/archives/ascoders/ Optionen : //www.freelists.org/list/ascoders ------------------------------------------------------
------------------------------------------------------ Archiv : //www.freelists.org/archives/ascoders/ Optionen : //www.freelists.org/list/ascoders ------------------------------------------------------