[gelöst] Statuszeile per Makro ausblenden?

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

Moderator: Moderatoren

Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

[gelöst] Statuszeile per Makro ausblenden?

Beitrag 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
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag 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
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey,

habs inzwischen selbst rausbekommen. Danke für alle, die nachgedacht haben.
Hier die Lösung - vielleicht brauchts ja noch mal jemand :wink:

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 :D

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Michael,

da haben sich wohl unsere Lösungen überschnitten :wink:

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
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
tubeman
*
Beiträge: 12
Registriert: Do, 12.05.2005 11:53

Beitrag 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
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag 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
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
tubeman
*
Beiträge: 12
Registriert: Do, 12.05.2005 11:53

Beitrag 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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Beitrag von komma4 »

Was meinst Du mit "Tabellenregister"? Die Zeilen-/Spaltenköpfe eines Calc-Tabellenblatts?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
tubeman
*
Beiträge: 12
Registriert: Do, 12.05.2005 11:53

Beitrag 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
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag von ykcim »

Einfach:

ThisComponent.CurrentController.SheetTabs=false


mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
tubeman
*
Beiträge: 12
Registriert: Do, 12.05.2005 11:53

Beitrag von tubeman »

Vielen Dank!!

Funktioniert!!

Schöne Grüße

Marco
Antworten