Hallo,
bin noch ziemliche GIS-Anfängerin. Bei der Erzeugung von Textbannern entstehen je nach Länge und Umfang des Uextes unterschiedlich große Abstände zum Textrahmen, was recht häßlich aussieht. Gibt es eine Möglichkeit den Abstand Rahmen - Text voreinzustellen?
bin noch ziemliche GIS-Anfängerin. Bei der Erzeugung von Textbannern entstehen je nach Länge und Umfang des Uextes unterschiedlich große Abstände zum Textrahmen, was recht häßlich aussieht. Gibt es eine Möglichkeit den Abstand Rahmen - Text voreinzustellen?
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von Maxilla am Di., 25.09.2007 - 15:37
Permalinkich kenne das Problem, weiß aber kein 'nutzerfreundliches' Tool, das es umgeht. Für die Lösung, die ich anwende, muss man das Systemskript modifizieren. Wenn du Lust dazu hast, erkläre ich dir, wie...
Gruß, Maxilla
Gespeichert von Silke V Epple am Di., 02.10.2007 - 11:17
PermalinkGruß. Silke
Gespeichert von Maxilla am Di., 02.10.2007 - 13:24
PermalinkDas zuständige Skript für den Banner-Text heißt 'View.ShadowBoxTextTool'. Darin kannst du den Abstand verändern. Hier die Kurzanleitung dazu:
1. Öffne ein neues Skriptfenster
2. Wähle 'Systemskript laden' aus dem Menü 'Skript'
3. Wähle das Skript View.ShadowBoxTextTool
4. Nenne dein Skript über 'Skript : Eigenschaften' genau so (also View.ShadowBoxTextTool)
Die Schritte 1-4 kannst du etwas einfacher auch so haben:
- MemoTools laden,
- Vom Projektfenster aus 'Systemskript laden' aus dem Menü 'MemoTools'
- Das Skript View.ShadowBoxTextTool wählen
5. Suche im Skript die Zeile
BgRect = t.GetBounds.Clone.ExpandBy(t.GetBounds.GetWidth * 0.1)
6. Diese Zeile ist ein bisschen doof, denn so wächst der Abstand der Box mit der Weite des Textes. Ersetzt man die Zeile durch
BgRect = t.GetBounds.Clone.ExpandBy((t.GetBounds.GetHeight) /numLines * 0.1) wird der Abstand auf die Zeilenhöhe (geteilt durch die Zeilenanzahl) bezogen und der Abstand bleibt gleich. Dummerweise reicht dieser Abstand ab einer gewissen Länge nach hinten nicht aus, weshalb man das Teil am Ende noch mit ein paar weiteren Avenue-Zeilen zurechtzuzzeln muss.
Also, zusammengefasst: Ersetze die Zeile
BgRect = t.GetBounds.Clone.ExpandBy(t.GetBounds.GetWidth * 0.1)
mit
BgRect = t.GetBounds.Clone.ExpandBy((t.GetBounds.GetHeight) /numLines * 0.1)
theBGW = BgRect.GetWidth
theBGH = BgRect.GetHeight
BgRect.SetSize(theBGW + (theBGW/100*2)@theBGH)
7. Kompiliere das Skript (Häkchen-Button) und schließe es
8. Öffne dein View oder Layout und benutz das Tool wie gewohnt.
Um die Ausgangssituation wieder herzustellen, reicht es aus, das Skript umzunennen oder aus dem Projekt zu löschen.