[TYPO3-german] gifbuilder: mehrzeilger text - offene fragen

JoH info at cybercraft.de
Sun Jul 23 23:43:38 CEST 2006


> .) kann man den zeilenabstand einstellen?

Ja, aber nicht im GIFBUILDER sondern in der Schriftart selbst mit
entsprechenden Fonttools.
Es gibt aber noch einen Workaround. (siehe unten)

> .) wie kann man den text automatisch auf mitte/mitte setzen? ich habs
> versucht mit BOX.align = c,c (datentyp VHalign), nutzt aber nix...

nicht mit BOX, sondern mit offset, weil Du dort auch rechnen kannst.
Also z.B. relativ

XY = [10.w]+20,[10.h]+20
und
10.fontSize = 20
10.offset = 10,30

die 30 ist eine circa Angabe, weil sich der Offset auf die Grundlinie der
Schrift bezieht!

oder absolut

XY = 200,40
und
10.fontSize = 20
10.offset = (200-[10.w])/2,(40-[10.h])/2

> .) wie kann man den 'absatz' des textes auf center stellen? align =
> center richtet nicht die einzelnen zeilen mittig aus sondern den
> ganzen text relativ zur X-Angabe des gifbuilders.

gar nicht, weil GIFBUILDER für einzeilige Ausgaben konzipert ist.
Hier hilft nur, den Text vorher mit stdWrap zu splitten und einzelne
"Zeilen" draus zu machen.
Das Problem liegt dabei in der spärlichen Verwendung von stdWrap im
GIFBUILDER, weswegen es mehr oder weniger unmöglich ist, eine volldynamische
Anpassung and die Anzahl der Zeilen vorzunehmen.
Im Klartext: Du mußt für alle möglichen Zeilenanzahlen einzelne COA Elemente
anlegen, die jeweils eine if-Abfrage für die Zeilen verwenden und das
passende GIFBUILDER Element zurückliefern.
Im GIFBUILDER selbst wird dann für jede Zeile ein TEXT Element mit passendem
Offset eingebaut. Die Zeilen erhältst Du mit Hilfe von listNum und
splitChar.
Der splitChar ist bei "echter" mehrzeiliger Eingabe die 13.

10 = COA
10 {
    10 = GIFBUILDER
    10 {
        blah
        10 = TEXT
        10.text.field = whatever
        10.text.listNum = 0
        10.text.listNum.splitChar = 13
        10.blah
    }
    if.isFalse.field = whatever
    if.isFalse.listNum = 1
    if.isFalse.listNum.splitChar = 13
}
20 < .10
20 {
    10 {
        20 < .10
        20.text.listNum = 1
    }
    if.isFalse.listNum = 2
}
30 < .20
30 {
    10 {
        30 < .10
        30.text.listNum = 2
    }
    if.isFalse.listNum = 3
}

etc.

Ist ein wenig Frickelei, aber sollte so ähnlich funktionieren.

Joey

-- 
Wenn man keine Ahnung hat: Einfach mal Fresse halten!
(If you have no clues: simply shut your knob sometimes!)
Dieter Nuhr, German comedian
openBC: http://www.cybercraft.de
T3 cookbook: http://www.typo3experts.com





More information about the TYPO3-german mailing list