Seite 1 von 1
[gelöst] Schaltflächen per Code platzieren
Verfasst: Fr 20. Mai 2022, 18:02
von fbarc
Hi,
ich möchte Schaltflächen auf einem Tabellenblatt per Makro positionieren und ausrichten und die Größe anpassen.
geht das irgendwie?
Gruß
Fabi
Re: Schaltflächen per Code platzieren
Verfasst: Fr 20. Mai 2022, 18:45
von karolus
Re: Schaltflächen per Code platzieren
Verfasst: Sa 21. Mai 2022, 02:02
von fbarc
karolus hat geschrieben: ↑Fr 20. Mai 2022, 18:45
geht das irgendwie?
Ja…
Du bist der Beste
Re: Schaltflächen per Code platzieren
Verfasst: Sa 21. Mai 2022, 09:27
von Freischreiber
LOL

Re: Schaltflächen per Code platzieren
Verfasst: Sa 21. Mai 2022, 20:06
von craig
Hallo,
karolus hat wohl vergessen wie man mit Starbasic programmiert...
englisches AOO-Forum mit Beispiel...
Re: Schaltflächen per Code platzieren
Verfasst: Do 1. Sep 2022, 23:25
von fbarc
Ich blicke bei diesen Beispielen nicht durch...
Ich kann in einer Prozedur die Schaltflächen an und ausschalten. Und den Text ändern.
Code: Alles auswählen
Sub Schaltflaeche_Test()
meinDok = thisComponent
oMeinBlatt = meinDok.sheets.getByName("Tabelle1")
With oMeinBlatt.Drawpage.getForms.getByIndex(0)
.getByName("btn_1").EnableVisible = True
.getByName("btn_1").Label = "Neuer Name"
End With
End Sub
Gibt es da nicht einen einfachen Befehl, der die Größe und die Positon beinhaltet?
also sowas wie:
Code: Alles auswählen
.getByName("btn_1").PositionX = 100
.getByName("btn_1").PositionY = 50
.getByName("btn_1").SizeX = 30
.getByName("btn_1").SizeY = 10
Ich finde auch keine Referenzen zu den ganzen Befehlen...
Re: Schaltflächen per Code platzieren
Verfasst: Fr 2. Sep 2022, 13:13
von musikai
Code: Alles auswählen
sub changesize
odoc=thiscomponent
osheet= odoc.getsheets().getbyname("Tabelle1")
ooShape = GetControlShape(osheet, "btn_1")
Position= ooShape.getPosition()
Position.X = Position.X-50
Position.Y = Position.Y -50
ooShape.setPosition(Position)
Size= ooShape.getSize()
Size.Height = Size.Height+50
Size.Width = Size.Width+50
ooShape.setSize(Size)
End Sub
Function GetControlShape(oContainer as Object,CName as String)
Dim i as integer
Dim aShape as Object
for i = 0 to oContainer.DrawPage.Count-1
aShape = oContainer.DrawPage(i)
if HasUnoInterfaces(aShape, "com.sun.star.drawing.XControlShape") then
if ashape.Control.Name = CName then
GetControlShape = aShape
exit Function
endif
endif
next
End Function
http://de.openoffice.info/viewtopic.php ... 63#p108124
Re: Schaltflächen per Code platzieren
Verfasst: Fr 2. Sep 2022, 17:28
von fbarc
Vielen Dank... genau das was mir gefehlt hat...