setString in einem Shape

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

gschuckar
****
Beiträge: 140
Registriert: Fr, 24.02.2006 14:27

setString in einem Shape

Beitrag von gschuckar »

Guten Morgen.
mit dem folgendem Code:
-------------------------- snipp ----------------
Sub setTextToShape()
on Error goto ErrorHandler
dim oDoc as Object
dim oDraw as Object
dim oShape as Object
dim strName as string
oDoc = thisComponent
oDraw = oDoc.getDrawPage()
for i = 0 to oDraw.count-1
oShape = oDraw.getByIndex(i)
strName = oShape.getName()
select case strName
case "Sender Address Repeated"
oShape.setString("Patricia Moltke * Heeresweg 25 * 12431 Hengstenberg")
case "Sender Address"
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
' Der folgende Text soll rechtsbuendig erscheinen
oShape.setString("Patricia Moltke"+chr(13)+"Heeresweg 25, 12431 Hengstenberg")
end select ' strName
next ' for i = 0 to oDraw.count -1
on error goto 0
exit sub
Errorhandler:
MsgBox "Error " & Err & ": " & Error$ & " (line : " & Erl & ")",48, _
"Main setTextToShape"
on error goto 0
End Sub ' setTextToShape
------------------------ snapp ------------------------------
möchte ich in dem oShape "Sender Address" rechtsbuendig Text einfuegen. Es sollen zwei Zeilen sein, deren Font unterschiedlich groß dargestellt werden soll.
mit oShape.gotoRight oder oShape.Righttext habe ich leider Erfolg. Ich habe bis jetzt nix gefunden, aus dem hervorgeht, wie man den Text formatieren kann.
An diesr Stelle möchte ich mich einmal für das Vorhandensein diesen Forums bedanken. Es ist eine sehr informative Quelle.
Gruß Gerd
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag von ykcim »

Ein wenig mehr Informatioen wären gut :-)
Welche Art von Dokument?
Welche Art Shape?

Vermutlich geht es mit:
oshape.TextHorizontalAdjust=2

0 = linksbündig
1 = zentriert
2 = rechtsbündig
3 = blocksatz

mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
gschuckar
****
Beiträge: 140
Registriert: Fr, 24.02.2006 14:27

Beitrag von gschuckar »

ykcim hat geschrieben:Ein wenig mehr Informatioen wären gut :-)
Welche Art von Dokument?
Welche Art Shape?

Vermutlich geht es mit:
oshape.TextHorizontalAdjust=2

0 = linksbündig
1 = zentriert
2 = rechtsbündig
3 = blocksatz

mfg
Michael
Mir war nicht klar, welche weiteren Info's benötigt werden. Also, es handelt sich um ein writer Dokument. Es ist dies ein Brief, der mit dem Assistenten erstellt wurde. Auf die textrahmen habe ich zugriff gefunden. In dem oben rechts befindlichem Rahmen soll jetzt der Text rechtsbündig erscheinen. Mit oshape.TextHorizontalAdjust=2 geht es nicht. Das oft gerne zitierte Beispiel Rechnungsvorlage von AFM hilft mir nicht wirklich weiter.
Gruß Gerd
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag von ykcim »

Doch, lieber zuviel Infos wie zu wenig :D

Bei Text in einem Rahmen geht es über den textcursor.

oText=oshape.createTextCursor()
otext.ParaAdjust=1

Wobei leider andere Parameter gelten.
0 = linksbündig
1 = rechtsbündig
2 = blocksatz
3 = zentriert


mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
gschuckar
****
Beiträge: 140
Registriert: Fr, 24.02.2006 14:27

Beitrag von gschuckar »

ykcim hat geschrieben:Doch, lieber zuviel Infos wie zu wenig :D

Bei Text in einem Rahmen geht es über den textcursor.

oText=oshape.createTextCursor()
otext.ParaAdjust=1

Wobei leider andere Parameter gelten.
0 = linksbündig
1 = rechtsbündig
2 = blocksatz
3 = zentriert


mfg
Michael
Hallo Michael,
danke dafür. So gehts. Jetzt werd ich mal gucken, was man mit dem TextCursor noch so alles anstellen kann. (Schriftgrösse einstellen, Alten text überschreiben, etc) Zu diesen gab es hier im Forum glaub ich schon mal etwas zu lesen
Gruß Gerd
Antworten