Seite 1 von 1

Checkbox Position

Verfasst: Mi, 02.12.2009 14:50
von Maggus
Also Xray ist ja echt ein klasse tool. Aber ich finde einfach nicht, wie ich an die Position z.B. einer Checkbox herankomme.
Ich hätte sowas gedacht wie: oForm.getByName("CheckBox1").Position.Y Aber das funzt nicht. :?

.getCellByPosition(3,3).Position.Y geht ja schließlich auch. Gibts da nicht irgendwie eine Übersicht für Eigenschaften?

Gruß,

Re: Checkbox Position

Verfasst: Mi, 02.12.2009 20:17
von Charly
Hallo!

Nach dem du die Variable oForm benutzt, gehe ich davon aus, dass du eine Checkbox aus einem Formular und nicht aus einem Dialog meinst.

Ich habe leider auf der Seite vom Dannenhöfer:

http://www.dannenhoefer.de/faqstarbasic ... genum.html

nur etwas über x und y-Position innerhalb eines Dialoges gefunden.
Dannenhoefer hat geschrieben: PositionX, PositionY
Mit diesen beiden Eigenschaften läßt sich das Kontrollfeld innerhalb des Dialoges positionieren.
StarBasic: MyControl.Model.PositionX und MyControl.Model.PositionY
Vielleicht hilft dir das bei der Suche nach etwas ähnlichen in einem Formular.

Gruß
Charly

Re: Checkbox Position

Verfasst: Do, 03.12.2009 07:50
von Charly
Hallo!

Jetzt bin ich noch bei der Suche der x/y Position in einem Calc-Formular fündig geworden.

Code: Alles auswählen

Sub ShapePosition()

oDoc = ThisComponent
oDraw = oDoc.sheets(0).drawpage

For i= 0 to oDraw.count-1
oShape = oDraw(i)
if HasUnoInterfaces(oShape,"com.sun.star.drawing.XControlShape") then
   if oShape.control.name = "CheckBox" then
      oElementShape = oShape
   end if
end if
next
oPosition = oElementShape.position
x = oPosition.x
Y = oPosition.y
Anzeige = "X Position = " & x & chr(13) & "Y Position = " & Y
MSGBox (Anzeige)    
End Sub
Gruß
Charly

Re: Checkbox Position

Verfasst: Mo, 14.12.2009 14:58
von Maggus
Hi Charly,
danke für die schnelle Rückmeldung und das Beispiel.
Leider gibt er mir bei der Zeile
if oShape.control.name = "CheckBox" then
den Fehler "Objektvariable nicht belegt" aus. Schätze das liegt an .control

Habe aber inzwischen auf dieser Basis etwas ähnliches zusammengepuzzled:

Code: Alles auswählen

<snip>
...
  oPos.x = 200
  oPos.y = PosTopAC + 50
...
</snip>
<snap>
...
  aShape = aDoc.CreateInstance ("com.sun.star.drawing.ControlShape")
  aShape.Position = oPos
...
</snap>
Das funktioniert bei mir, auch wenn ichs nicht bis ins detail nachvollziehen kann...