Festertitel ändern in OOO3

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Festertitel ändern in OOO3

Re: Festertitel ändern in OOO3

von Gödel2607 » So, 16.05.2010 14:11

der befehl

Code: Alles auswählen
ThisComponent.CurrentController.Frame.Title = "xxx"


sollte schon funktionieren.
In diesem Falle eben nicht. Probier's aus.

Günter

Re: Festertitel ändern in OOO3

von guenther » So, 16.05.2010 13:04

der befehl

Code: Alles auswählen

ThisComponent.CurrentController.Frame.Title = "xxx"
sollte schon funktionieren.

Aber: ThisComponent bezieht sich auf das modul, in dem der basic-code läuft.
das vermutlich nicht dein fenster.

du kannst den OOButler, formular frm_OBrowser verwenden http://members.aon.at/schardinger/openo ... utler.html um dir das anzusehen.
siehe auch Bsp01.odb

ich setze den title mit einem der fogenden events

Code: Alles auswählen

Form_BeimLaden  ' geht nur wenn Daten im Fenster
Dokument_Open    'geht immer
servus, günther

Festertitel ändern in OOO3

von Gödel2607 » So, 16.05.2010 10:42

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:

Code: Alles auswählen

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?

Nach oben