Seite 1 von 1
[gelöst] Statuszeile per Makro ausblenden?
Verfasst: So, 04.06.2006 15:29
von Toxitom
Hey,
weiss zufällig jemand, wie ich die Statuszeile eines Dokumentes per Basic komplett ausblenden kann?
Es gelingt mir zwar, alle Symboleisten und Menüeinträge auszublenden - leider bleibt die Statusleiste übrig - und wird auch noch ein wenig hochgesetzt - ins Dokument. Möglicherweise ein Fehler - aber vielleicht kennt ja jemand von Euch eine Lösung?
Hier ein Codesnipsel:
Code: Alles auswählen
sub Menues_ausblenden
oLayMng = stardesktop.getActiveFrame().LayoutManager
oLayMng.visible = false
msgbox "ausgeblendet"
oLayMng.visible = true
end sub
Für jeden Tipp bin ich dankbar
Viele Grüße
Thomas
Verfasst: So, 04.06.2006 16:21
von ykcim
Hallo,
den einzigen Weg den ich mal gefunden habe, geht über das Element Statusbar selber. Dabei wird es gelöscht und bei Bedarf wieder erzeugt.
Code: Alles auswählen
Sub showbar
sStatusBar = "private:resource/statusbar/statusbar"
oLayMng = stardesktop.getActiveFrame().LayoutManager
oLayMng.destroyElement(sStatusBar)
msgbox "ausgeblendet"
oLayMng.createElement(sStatusBar)
End sub
mfg
Michael
Verfasst: So, 04.06.2006 16:25
von Toxitom
Hey,
habs inzwischen selbst rausbekommen. Danke für alle, die nachgedacht haben.
Hier die Lösung - vielleicht brauchts ja noch mal jemand
Code: Alles auswählen
sub Menues_ausblenden
oLayMng = starDesktop.getActiveFrame().LayoutManager
REM Statusleiste muss seperat ausgeblendet werden. Zugriff auf
REM das Stausleisten-Objekt
oDoc=starDesktop.getActiveFrame().getContainerWindow.AccessibleContext
For i = 0 to oDoc.getAccessibleChildCount()-1
iNr=oDoc.getAccessibleChild(i).AccessibleContext.AccessibleRole
if iNr=com.sun.star.accessibility.AccessibleRole.STATUS_BAR then
oStB = oDoc.getAccessibleChild(i)
exit for
end if
next
REM jetzt ausblenden
oLayMng.visible = false
oStB.visible = false
msgbox "ausgeblendet"
REM nicht vergessen, wieder einzublenden
oLayMng.visible = true
oStB.visible = true
end sub
Das war´s
Gruss
Thomas
Verfasst: So, 04.06.2006 16:30
von Toxitom
Hey Michael,
da haben sich wohl unsere Lösungen überschnitten
Danke für deine Variante - könne ich auch nutzen. Brauche nämlich den Statusbalken nicht.
Aber - ich will mal nicht so "brutal" sein - und lasse ihn im HIntergrund "schmoren".
Gruss
Thomas
Verfasst: Do, 03.08.2006 15:52
von tubeman
Hallo,
das Makro ist genau das was ich suche, ich würde es nur gern in 2 Teile aufsplitten.
Als Startmakro / alle Symbolleisten sind deaktiviert
Als Endmakro / beim beenden werden alle Symbolleisten wieder hergestellt.
ich hab schon probiert es zu teilen, bekomme aber immer eine Fehlermeldung
(meine Makrokenntnisse beschränken sich bisher nur auf den Makrorecorder, keine Programmierkenntnisse...9
Schöne Grüße
Marco
Verfasst: Do, 03.08.2006 17:05
von Toxitom
Hey Marco,
ich hab schon probiert es zu teilen,...
Wenn du es trennen willst, musst du natürlich alle relevanten Teile dennoch drin haben. Da ist es besser, eine "Weiche" einzubauen und unterschiedliche Startmakros:
Code: Alles auswählen
sub menues_aus 'das startmakro zum ausblenden
Menues_ausblenden(true)
end sub
sub menues_ein 'das endmakro zum einblenden
Menues_ausblenden(true)
end sub
sub Menues_ausblenden(bFlag as Boolean)
oLayMng = starDesktop.getActiveFrame().LayoutManager
REM Statusleiste muss seperat ausgeblendet werden. Zugriff auf
REM das Stausleisten-Objekt
oDoc=starDesktop.getActiveFrame().getContainerWindow.AccessibleContext
For i = 0 to oDoc.getAccessibleChildCount()-1
iNr=oDoc.getAccessibleChild(i).AccessibleContext.AccessibleRole
if iNr=com.sun.star.accessibility.AccessibleRole.STATUS_BAR then
oStB = oDoc.getAccessibleChild(i)
exit for
end if
next
if bFlag then
REM jetzt ausblenden
oLayMng.visible = false
oStB.visible = false
else
REM nicht vergessen, wieder einzublenden
oLayMng.visible = true
oStB.visible = true
end if
end sub
Aber die Makros hier sind sowieso nur "Musterbeispiele" und sollten immer individuell angepasst werden.
Gruss
Thomas
Verfasst: Mo, 07.08.2006 10:57
von tubeman
Danke für die Hilfe, hab es jetzt hinbekommen.
Jetzt würde ich gern noch das Tabellenregister ausblenden, hab aber weder in den Foren noch in den diversen Handbüchern bzw. FAQ was Hilfreiches gefunden...
Wäre nett wenn jemand einen Tipp hat
Schöne Grüße
Marco
Verfasst: Mo, 07.08.2006 12:12
von komma4
Was meinst Du mit "Tabellenregister"? Die Zeilen-/Spaltenköpfe eines Calc-Tabellenblatts?
Verfasst: Mo, 07.08.2006 12:50
von tubeman
nein, das Tabellenregister am unteren Bildrand.
Du kannst es auch über "Extras =>Optionen=>OpenOffice Calc=>Ansicht und dann den Haken bei Tabellenregister entfernen " ausschalten
ich würde das jetzt gern über ein Makro lösen, das gleich beim Start des Dokuments ausgeführt wird....
Schöne Grüße
Marco
Verfasst: Mo, 07.08.2006 12:59
von ykcim
Einfach:
ThisComponent.CurrentController.SheetTabs=false
mfg
Michael
Verfasst: Mo, 07.08.2006 13:02
von tubeman
Vielen Dank!!
Funktioniert!!
Schöne Grüße
Marco