Notizen in Calc

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Notizen in Calc

Re: Notizen in Calc

von moritz » Fr, 14.03.2008 20:38

Ja, so funktioniert es, da wär ich nie drauf gekommen.
Vielen Dank
Moritz

Re: Notizen in Calc

von moritz » Mo, 10.12.2007 23:54

Hier mal das ganze Makro. Ich habe OO 2.3.1, bis jetzt nur unter XP. Unter SuSE hab ich das ganze noch nicht getestet. Egal, was ich bei CharHeight eingebe, die Textgröße bleibt unverändert, nur die vertikale Rahmengröße ändert sich.
Die Notizen werden auf zweierlei Arten angezeigt: wenn man mit der Maus darüber fährt und wenn mann "Notizen anzeigen" einstellt. Wenn man die Notizen manuell erstellt, werden sie bei beiden Anzeigearten in der gleichen Größe dargestellt. Bei mit dagegen beim Darüberfahren mit der Maus viel zu groß, bei "Notizen anzeigen" jedoch richtig.
Vielleicht ist hier doch ein bug in Starbasic.


sub Notiz
'Fügt eine Notiz mit dem aktuellen Datum in das aktuelle Feld ein.

Dim oDoc as Object
Dim oSheet as Object
Dim oCell as Object

oDoc = ThisComponent
oCell = oDoc.Sheets( GetPosActiveSheet(oDoc)).getCellByPosition(getColumn,Tools.getRow)
AddColoredAnnotationToCell(oCell, date(),100,200,100)
End Sub

Function AddColoredAnnotationToCell(oCell as Object, sText as String,r as Long, g as Long,b as Long)
Dim aSize As New com.sun.star.awt.Size
Dim apoint As New com.sun.star.awt.Point
Dim cellPos, cellSize
Dim oShape as Object
Dim oText as Object

cellPos = oCell.Position
cellSize = oCell.Size
oCell.Annotation.String = sText
oShape = oCell.Annotation.AnnotationShape
'-----------------------------------------------------------------------------
oShape.FillBackground = true
oShape.FillColor = RGB(r,g,b)
oShape.FillStyle = 1
oShape.FillTransparence = 0
oShape.CharFontName = "Arial"
oShape.CharHeight = 8
oShape.CharScaleWidth = 100
oShape.TextLeftDistance =100
oShape.TextLowerDistance =100
oShape.TextRightDistance =100
oShape.TextUpperDistance =100
'-----------------------------------------------------------------------------
asize.Height = cellSize.height
asize.Width = cellSize.width
oShape.Size = asize
oShape.SizeProtect = False

apoint.x = cellPos.x + cellSize.width + cellSize.width/4
apoint.y = cellPos.y - 2 * cellSize.height
oShape.setPosition apoint
End Function

Re: Notizen in Calc

von komma4 » Mo, 10.12.2007 22:13

moritz hat geschrieben:in der aktuellsten Variante.
Also 2.3.1?
moritz hat geschrieben:man muß einen Textcursor kreieren
Muss man nicht, aber man kann.
moritz hat geschrieben:Bei Deiner Variante kommt zwar keine Fehlermeldung, es ändert sich aber auch nichts am Text.
Das ändert die Grundeinstellung von Text, der bspw. mit

Code: Alles auswählen

oSheet.getAnnotations( _
 ).insertNew( _
 oCellAdr, _
 "Das ist eine Info" _
)
eingestellt wurde.
Du erzeugst einen Textcursor. Der hat keine Eigenschaft "Farbe", ist nämlich nur ein Zeiger, kein darstellbarer Text.

Ich sehe mit xray auch keine Möglichkeit die Eigenschaften des Texts der Notiz wie bspw. bei einem Textfeld zu setzen. Die entsprechenden properties fehlen...

Re: Notizen in Calc

von moritz » Mo, 10.12.2007 21:46

Hallo, bin immer noch nicht weitergekommen. Hab OO in der aktuellsten Variante.
Ich denke, man muß einen Textcursor kreieren und kann erst dann auf die Texteigenschaften zugreifen.
Bei Deiner Variante kommt zwar keine Fehlermeldung, es ändert sich aber auch nichts am Text.

oCursor=oCell.Annotation.AnnotationShape.Text.CreateTextCursor
oCursor.GotoStart (False)
oCursor.GotoEnd (True)
oCursor.getPropertyValue ("CharColor") 'als Beispiel
In der letzten Zeile kommt der Fehler "unbekannte Eigenschaft".

Moritz

Re: Notizen in Calc

von komma4 » Mo, 10.12.2007 21:26

Warum funktioniert das nicht?
Welche OOo Version?

Wo liegt das Problem?

Re: Notizen in Calc

von moritz » Mo, 10.12.2007 21:17

Danke für Deine Hilfe, aber so einfach funktioniert es zumindest bei mir nicht. Das hatte ich schon versucht
Moritz

Re: Notizen in Calc

von komma4 » Mo, 10.12.2007 20:40

mit Xray gefunden:

Code: Alles auswählen

' Achtung: Zeilenfortsetzung durch Unterstrich !
 oSheet.getAnnotations( _
 ).getByIndex( 0 _
 ).getAnnotationShape( _
 ).CharHeight = 12 

Notizen in Calc

von moritz » Mo, 10.12.2007 19:48

Hallo,
wie ich Notizen in Calc mit Basic einfügen kann weiß ich inzwischen. Leider ist die Schrift immer zu groß. Wie kann ich die Schrift der Notizen ändern. Habe dazu leider nirgendwo etwas gefunden.
Danke
Moritz

Nach oben