Seite 1 von 1

Calc - Zell-Rahmen einfügen

Verfasst: Mi, 09.05.2012 09:39
von theindless
Hallo miteinander,

ich habe (mit Hilfe von Dannenhöfer und Pitonyak) in einem Macro per nachfolgendem Code einen Zell-Rahmen eingefügt:

Code: Alles auswählen

oBorder = oCell.Tableborder
	oBorderline = oBorder.TopLine
	oBorderline.outerlinewidth = 80
	oBorderline.innerlinewidth = 0
	oBorderline.linedistance = 0
	oBorderline.color = &H00000CCC

With oCell
	.topBorder = oBorderline
	.leftBorder = oBorderline
	.rightBorder = oBorderline
	.bottomBorder = oBorderline
	end with
Next i
Das funktioniert so auch, jedoch kapiere ich 1 Code-Zeile nicht wirklich.

Was bewirkt

Code: Alles auswählen

oBorderline = oBorder.TopLine
?

Insbesondere, da es auch keine sichtbare Veränderung gibt, wenn ich "TopLine" durch "BottomLine" ersetze.

Kann mich da bitte einer aufklären!?

theindless

Re: Calc - Zell-Rahmen einfügen

Verfasst: Mi, 09.05.2012 11:55
von balu
Hallo theindless,

eins vorweg, ich habe mir jetzt nicht die Mühe gemacht deinen Code anzuwenden, da ich ja nicht weiß ob Du in Calc oder im Writer Zellen Formatierst. So was solltest Du uns schon mitteilen.
ich habe (mit Hilfe von Dannenhöfer und Pitonyak)
Pitonyak ist ja ganz gut und schön, blos mit welcher Version arbeitest Du, die deutsche oder die englische? Denn ich weiß ja nicht wie gut dein englisch ist, und folglich ob Du auch alles richtig verstanden hast was dort im Original zu lesen ist.

Insbesondere, da es auch keine sichtbare Veränderung gibt, wenn ich "TopLine" durch "BottomLine" ersetze.
Und dann gibt es da auch noch die LeftLine, RightLine, HorizontalLine und die VerticalLine.
Nein, ich mache mich jetzt nicht über dich Lustig, und es ist auch keine Haarspalterei. Es ist nun mal halt Fakt das es auch noch diese Linien gibt.

Und nun komme ich noch mal auf Pitonyak zurück. Denn in der deutschen Version die ich habe ist nämlich folgendes zu nachzulesen.
Andrew Pitonyak OOME_3_0_deutsch.pdf hat geschrieben: Wenn man in einem TableBorder-Struct Werte einstellt, werden nicht immer alle Werte benötigt.
Wenn zum Beispiel die Umrandung einer Zelle konfiguriert wird, werden die einzelnen Werte nur
genutzt, wenn auch die entsprechende „Is...Valid“-Eigenschaft gesetzt ist.
Wie gesagt, da ich deinen Code nicht angewendet habe, kann ich jetzt auch nur mutmaßen was das alles zu bedeuten hat.
Ich denke mir mal, so lange keine "Is...Valid"-Eigenschaft gesetzt wird, spielt es keine Rolle ob Du TopLine oder BottomLine nimmst, da die Einstellungen für alle 4 Richtungen gelten. Nur wenn Du eine ganz bestimmte Linie anders Formatieren willst, z.B. Farbe und Dicke, dann musst Du sie dementsprechend ansprechen und die Eigenschaft mittels "Is...Valid" setzen.

Und wenn ich mich nicht vertue, dann ist das auch im groben im unteren Beispiel bei Dannenhöfer zu sehen.


Sollte ich mit meinen Gedankengängen, Mutmaßungen, irgendwie falsch liegen, so möge man mich doch bitte korrigieren.



Gruß
balu

Re: Calc - Zell-Rahmen einfügen

Verfasst: Mi, 09.05.2012 12:00
von theindless
Hallo,
balu hat geschrieben:ins vorweg, ich habe mir jetzt nicht die Mühe gemacht deinen Code anzuwenden, da ich ja nicht weiß ob Du in Calc oder im Writer Zellen Formatierst. So was solltest Du uns schon mitteilen.
:shock:

Isch hab doch extra "Calc" in die Überschrift geschrieben.... :)
Pitonyak ist ja ganz gut und schön, blos mit welcher Version arbeitest Du, die deutsche oder die englische?
Beides :) aber ich habe in der deutschen nachgelesen...

Aus Dannenhöfer habe ich ".Topline", da es dort so steht.... aber warum, lese ich da nicht raus.

Deine Erklärung klingt aber schlüssig für mich.

theindless

Re: Calc - Zell-Rahmen einfügen

Verfasst: Mi, 09.05.2012 12:14
von balu
Hallo theindless,
Isch hab doch extra "Calc" in die Überschrift geschrieben....
Oooooh Backe! Peinlich, peinlich!
Sorry, hat ich jetzt echt mal übersehen :oops: .

Deine Erklärung klingt aber schlüssig für mich.
Danke! Das muntert mich jetzt doch wieder etwas auf :).



Gruß
balu

Re: Calc - Zell-Rahmen einfügen

Verfasst: Mi, 09.05.2012 14:53
von Karolus
Hallo
Es geht erst mal darum ein Struct mit den Eigenschaften zu haben die man setzen möchte.
oCell.TableBorder ist "erst" das Elternobject

Anschaulicher wirds evtl. mit diesem Beispiel:

Code: Alles auswählen

Sub Beispiel

Dim Linestyle As New com.sun.star.table.BorderLine

  with Linestyle
      .Color = rgb(200,0,0)
      .InnerLineWidth = 0
      .OuterlineWidth = 100
      .LineDistance = 0
  end with
  
  with thisComponent.currentSelection()
      .BottomBorder = Linestyle
      .LeftBorder = Linestyle
      .RightBorder = Linestyle
      .TopBorder = Linestyle
  end with
End Sub
Karo

Re: Calc - Zell-Rahmen einfügen

Verfasst: Mi, 09.05.2012 15:10
von theindless
Hallo,

verstehe ich das richtig, dass ich die Codezeilen

Code: Alles auswählen

oBorder = oCell.Tableborder
oBorderline = oBorder.TopLine
durch das von dir angeführte

Code: Alles auswählen

Dim oBorderline as new com.sun.star.table.borderline
ersetzen könnte?

Zumindest funktioniert es...

theindless