BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 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
Beiträge: 2170
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.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 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
Beiträge: 755
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 6/2023 LibreOffice Version: 7.2.7.2 (x64) unter Windows 10 und SplitDB mit HSQL 2.7.2.

craig
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: 262
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 nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten