🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.

🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] Schaltflächen per Code platzieren

Alles zur Programmierung im LibreOffice.
Antworten
fbarc
Beiträge: 33
Registriert: Mi 8. Dez 2021, 02:47

[gelöst] Schaltflächen per Code platzieren

Beitrag von fbarc » Fr 20. Mai 2022, 18:02

Hi,

ich möchte Schaltflächen auf einem Tabellenblatt per Makro positionieren und ausrichten und die Größe anpassen.

geht das irgendwie?

Gruß

Fabi
Zuletzt geändert von fbarc am Fr 2. Sep 2022, 17:28, insgesamt 1-mal geändert.
Gruß
Fabi

--------------------------------
Mein System: Linuxmint 20.2 | LibreOffice Version: 7.3.4.2
--------------------------------
Meine Signatur steht auf der Rückseite

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2533
Registriert: Fr 10. Dez 2010, 10:01

Re: Schaltflächen per Code platzieren

Beitrag von karolus » Fr 20. Mai 2022, 18:45

geht das irgendwie?
Ja…
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

fbarc
Beiträge: 33
Registriert: Mi 8. Dez 2021, 02:47

Re: Schaltflächen per Code platzieren

Beitrag von fbarc » Sa 21. Mai 2022, 02:02

karolus hat geschrieben:
Fr 20. Mai 2022, 18:45
geht das irgendwie?
Ja…
Du bist der Beste
Gruß
Fabi

--------------------------------
Mein System: Linuxmint 20.2 | LibreOffice Version: 7.3.4.2
--------------------------------
Meine Signatur steht auf der Rückseite

Freischreiber
* LO-Experte *
Beiträge: 829
Registriert: Fr 28. Mär 2014, 10:41

Re: Schaltflächen per Code platzieren

Beitrag von Freischreiber » Sa 21. Mai 2022, 09:27

LOL :lol:
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

craig
* LO-Experte *
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Schaltflächen per Code platzieren

Beitrag von craig » Sa 21. Mai 2022, 20:06

Hallo,

karolus hat wohl vergessen wie man mit Starbasic programmiert... :mrgreen:

englisches AOO-Forum mit Beispiel...
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

fbarc
Beiträge: 33
Registriert: Mi 8. Dez 2021, 02:47

Re: Schaltflächen per Code platzieren

Beitrag von fbarc » Do 1. Sep 2022, 23:25

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...
Gruß
Fabi

--------------------------------
Mein System: Linuxmint 20.2 | LibreOffice Version: 7.3.4.2
--------------------------------
Meine Signatur steht auf der Rückseite

musikai
Beiträge: 263
Registriert: Do 14. Mai 2015, 17:53

Re: Schaltflächen per Code platzieren

Beitrag von musikai » Fr 2. Sep 2022, 13:13

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
Win7 Pro, Sibelius 7.1.3, Lubuntu 15.10, LibO 4.4.7, OO 4.1.3
Free Project: LibreOffice Songbook Architect (LOSA)
http://struckkai.blogspot.de/2015/04/li ... itect.html

fbarc
Beiträge: 33
Registriert: Mi 8. Dez 2021, 02:47

Re: Schaltflächen per Code platzieren

Beitrag von fbarc » Fr 2. Sep 2022, 17:28

Vielen Dank... genau das was mir gefehlt hat...
Gruß
Fabi

--------------------------------
Mein System: Linuxmint 20.2 | LibreOffice Version: 7.3.4.2
--------------------------------
Meine Signatur steht auf der Rückseite


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten