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
geht das irgendwie?
Ja…

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 :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... :mrgreen:

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...