Gelöst: Zugriff auf Button in einem Sheet

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

JSK
*
Beiträge: 17
Registriert: Di, 03.04.2007 15:36

Gelöst: Zugriff auf Button in einem Sheet

Beitrag von JSK »

Hallo,

weiß jemand wie man auf einen Button zugreift, der innerhalb eines Sheets platziert ist?
GetControl gibt es ja leider nur innerhalb eines Dialogs und nicht innerhalb eines Sheets.

Gruß�ür�n
Zuletzt geändert von JSK am Di, 22.04.2008 08:47, insgesamt 1-mal geändert.
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Zugriff auf Button in einem Sheet

Beitrag von turtle47 »

Hallo Jürgen,

hier mal ein Beispiel:

Code: Alles auswählen

Sub Button_ansprechen
	Dim vButton, vForm
	Dim oForms
	oForms = ThisComponent.CurrentController.ActiveSheet.DrawPage.Forms
	vForm=oForms.getByIndex(0)
	vButton = vForm.getByName("PushButton")
	vButton.Label = "OpenOffice.org" 'Button Titel
	vButton.enabled=False 'Button deaktivieren
End Sub
Hilft das weiter?

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
JSK
*
Beiträge: 17
Registriert: Di, 03.04.2007 15:36

Re: Zugriff auf Button in einem Sheet

Beitrag von JSK »

Hallo,

danke für die Info.
Da ich die Position des Buttons verändern wollte ging es über den folgenden Weg:

Code: Alles auswählen

oDoc = StarDesktop.CurrentComponent 
oSheet = oDoc.Sheets.GetByIndex(1)
oDrawPage = oSheet.DrawPage 
For nIdx = 0 to oDrawPage.Count - 1 
	oShape = oDrawPage(nIdx)
	If HasUnoInterfaces(oShape, "com.sun.star.drawing.XControlShape") Then 
		If oShape.Control.Name = "Button1" Then
			oPoint.X = 2500
			oPoint.Y = 10900
			oSize.Width = 800
			oSize.Height = 400
			oShape.Size = oSize
			oShape.Position = oPoint
		ElseIf oShape.Control.Name = "Button2" Then
			...
		End If
	End If
Next nIdx
Bei mir sind die Buttons etwas störrisch und verändern ihre Größe und Position auf dem Formular mit der Zeit. Mit dem obigen Code werden Sie jetzt bei jedem Laden des Dokuments neu positioniert. Damit bleiben sie jetzt endlich dort, wo sie hingehören.

Gruß
Jürgen
Antworten