Ich habe schon vor einiger Zeit in BASIC für OOO 2.X eine Büroanwendung geschrieben, die ein eigenes Fenster mit Buttons usw als Basis benutzt. Da wir jetzt auf OOO 3.X umsteigen wollen, habe ich diese Anwendung übertragen. Sie läuft auch fehlerlos, allerdings kann der Titel des Fensters nicht mehr gesetzt werden. Der folgende Code zeigt das Problem:

REM  *****  BASIC  *****





Sub Main

   oAwtToolkit = CreateUnoService( "com.sun.star.awt.Toolkit" )

   oTopWindow = CreateTopWindow( oAwtToolkit, 100, 200, 500, 400 )

   oTopWindow.setBackground( RGB( 240, 240, 255 ) )

   oFrame = CreateUnoService( "com.sun.star.frame.Frame" )

   oFrame.initialize( oTopWindow )

   oFrame.setCreator( StarDesktop )

   oFrame.setTitle("TEST")

   'ThisComponent.CurrentController.Frame.title = "TEST"

End Sub



Function CreateTopWindow( oAwtToolkit, x, y, w, h )

   oWindowDesc = CreateUnoStruct( "com.sun.star.awt.WindowDescriptor" )

   With oWindowDesc

      .Type = com.sun.star.awt.WindowClass.TOP

      .WindowServiceName = ""

      .Bounds = MakeRectangle( x, y, w, h )

      .WindowAttributes = 0

.WindowAttributes = .WindowAttributes + com.sun.star.awt.WindowAttribute.SHOW

.WindowAttributes = .WindowAttributes + com.sun.star.awt.WindowAttribute.BORDER

.WindowAttributes = .WindowAttributes + com.sun.star.awt.WindowAttribute.SIZEABLE

.WindowAttributes = .WindowAttributes + com.sun.star.awt.WindowAttribute.MOVEABLE

.WindowAttributes = .WindowAttributes + com.sun.star.awt.WindowAttribute.CLOSEABLE

   End With

   oXWindowPeer = oAwtToolkit.createWindow( oWindowDesc )

   CreateTopWindow = oXWindowPeer

end Function



Function MakeRectangle( ByVal nX As Long, ByVal nY As Long,_

ByVal nWidth As Long, ByVal nHeight As Long ) As com.sun.star.awt.Rectangle

   oRectangle = createUnoStruct( "com.sun.star.awt.Rectangle" )

   With oRectangle

      .X = nX

      .Y = nY

      .Width = nWidth

      .Height = nHeight

   End With

   MakeRectangle() = oRectangle

End Function

Unter OOO 2.X war es problemlos möglich, den Fenstertitel mit oFrame.setTitle() zu setzen. Daß sich da etwas geändert hat, schreibt auch Thomas Krumbein in seinem Basic-Buch auf Seite 201/202. Die dort vorgeschlagene Methode ThisComponent.currentController funktioniert allerdings in dem Beispiel (und auch bei meiner Applikation) nicht sondern führt zu einer Fehlermeldung.
Weiß jemand Rat?

Günter

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Antwort per Email an