mit LO-Base habe ich eine Datenbank bei der mehrere Formulare unterschiedlicher Größe von einem Startformular aufgerufen werden. Die Formulare sind immer so groß, dass der anzuzeigende Inhalt ohne zu scrollen passt. Mit OpenOffice habe ich das mit folgendem kleinen Makro bewerkstelligt:
Code: Alles auswählen
Function ScreenRes(Richtung as String) as Integer
Dim iWidth as Integer
Dim iHeight as Integer
Dim oDisplay as Object
Dim oDisplayAccess as Object
'Sub Setze_Fenster_in_cm
oDisplayAccess = CreateUnoService("com.sun.star.awt.DisplayAccess")
oDisplay = oDisplayAccess.getByIndex(0)
aScreen = oDisplay.WorkArea
Select Case Richtung
Case "X"
ScreenRes = aScreen.Width
Case "Y"
ScreenRes = aScreen.Height
Case "F"
ScreenRes = aScreen.Width / TWIPSPERPIXELX / 2.54
Case Else
msgbox "Falscher Parameter"
exit function
End Select
End Function
Code: Alles auswählen
Public Sub FensterXY(Breite, Hoehe, Titel)
Dim iX, iY as Integer
Dim iB, iH as Integer
Dim oFrame as Object
Dim oWin as Object
iB = Breite * TWIPSPERPIXELX * 2.54
iH = Hoehe * TWIPSPERPIXELY * 2.54
iX = (ScreenRes("X") - iB) / 2
iY = (ScreenRes("Y") - iH) / 2
oFrame = StarDesktop.getCurrentFrame()
oWin = oFrame.getContainerWindow()
oFrame.setTitle Titel
oWin.setPosSize(iX, iY, iB, iH, 15)
End Sub
Jetzt kommt das Problem:
Bei Openoffice funktioniert das super!
Bei Libreoffice bekomme ich beim Aufruf des UNOService
Code: Alles auswählen
oDisplayAccess = CreateUnoService("com.sun.star.awt.DisplayAccess")
"BASIC-Laufzeitfehler. Objektvariable nicht belegt."
Woran kann das liegen???
UliK