Gelöst: Symbolleisten wieder sichtbar machen

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: Gelöst: Symbolleisten wieder sichtbar machen

Re: Symbolleisten wieder sichtbar machen

von WSO » Mi, 06.08.2014 13:34

Genau das war es!
Mit dem vorher ausgeführten "createElement" geht jetzt auch das "showElement".
Vielen Dank Gruss
WSO

Re: Symbolleisten wieder sichtbar machen

von Rasakul » Mi, 06.08.2014 08:35

Hi, guten Morgen!

bin zwar kein Experte, aber in StarBasic sollte dein Code dann so ungefähr ausschauen:

Code: Alles auswählen

Sub ShowBar(oForm as Object) 

    oController = oForm.getComponent().getCurrentController()
    lmgr = oController.Frame.LayoutManager
    
    Dim statusbar(5) As String
    
    statusbar(0) = "private:resource/menubar/menubar"
    statusbar(1) = "private:resource/statusbar/statusbar"
    statusbar(2) = "private:resource/toolbar/formsnavigationbar"
    statusbar(3) = "private:resource/toolbar/standardbar"
    statusbar(4) = "private:resource/toolbar/formdesign"
    statusbar(5) = "private:resource/toolbar/formcontrols"
    
    For Each i In statusbar()
        If Not(lmgr.requestElement(i)) Then
            lmgr.createElement(i)
        Endif
        lmgr.showElement(i)
    Next i

End sub
Hier noch die zugehörige API: https://www.openoffice.org/api/docs/com ... nager.html
Hier findet man dann auch die Methoden, um z.B. die Leisten anzudocken

LG
Rasakul

Re: Symbolleisten wieder sichtbar machen

von Karolus » Di, 05.08.2014 18:34

Hallo

In manchen Fällen muss eine Symbolleiste erstmal "kreiert" werden bevor sie sichtbar gemacht werden kann.

Code: Alles auswählen

doc = desktop.getCurrentComponent()
lmgr = doc.getCurrentController().Frame.LayoutManager

toolbars = ("private:resource/toolbar/formdesign",
            "private:resource/menubar/menubar",
            "private:resource/toolbar/formsnavigationbar",
            "private:resource/statusbar/statusbar")

def toggle(layoutmanager, symbolleiste):
    if not layoutmanager.getElement(symbolleiste):
        layoutmanager.createElement( symbolleiste )
    if layoutmanager.isElementVisible(symbolleiste):
        layoutmanager.hideElement(symbolleiste)
        return
    layoutmanager.showElement(symbolleiste)
    layoutmanager.setVisible(True)

def main():
    for leiste in toolbars:
        toggle( lmgr, leiste)
 
Das ist jetzt python - für Übersetzungen nach Basic bin ich unterqualifiziert. 8)

Karolus

Re: Symbolleisten wieder sichtbar machen

von balu » Di, 05.08.2014 12:05

Hallo Wolfram,

deine Antworten sind ja so was von extrem komprimiert, das man damit gar nix anfangen kann.
leider nicht.
finde keinen Grund, warum "hide" funktioniert und "show" nicht.
Hast Du den Code aus dem verlinkten Thread nachgebaut? Und wenn ja, wie; und wo hast Du ihn angewendet?

Wenn ich deinen Code nur minimal auf das hier ändere,

Code: Alles auswählen

Sub Main
glbExpertenmodus = 0
       If glbExpertenmodus = False THEN
           lmgr = ThisComponent.getCurrentController().Frame.LayoutManager
               lmgr.setVisible(false)             
    '           lmgr.hideElement("private:resource/menubar/menubar") 
              lmgr.hideElement("private:resource/statusbar/statusbar")
    '           lmgr.hideElement("private:resource/toolbar/formsnavigationbar")
              lmgr.hideElement("private:resource/toolbar/standardbar")
               lmgr.hideElement("private:resource/toolbar/formdesign")
              lmgr.hideElement("private:resource/toolbar/formcontrols")
            ELSE
          lmgr = ThisComponent.getCurrentController().Frame.LayoutManager
              lmgr.setVisible(true)             
              lmgr.showElement("private:resource/menubar/menubar") 
              lmgr.showElement("private:resource/statusbar/statusbar")
              lmgr.showElement("private:resource/toolbar/formsnavigationbar")
               lmgr.showElement("private:resource/toolbar/standardbar")
              lmgr.showElement("private:resource/toolbar/formdesign")
              lmgr.showElement("private:resource/toolbar/formcontrols")   
        End If
End Sub
dann kann ich in Calc damit die Symbolleisten ein und ausblenden. Ich muss dazu nur

Code: Alles auswählen

Sub Main
glbExpertenmodus = 0
[...]
End Sub
auf

Code: Alles auswählen

Sub Main
glbExpertenmodus = 1
[...]
End Sub
ändern, und schon funzt es.
Also ich weiß beim besten willen einfach nicht wo dein Problem liegt! Wir sitzen nicht auf deinem Schoß um dir beim programmieren zusehen zu können. Gib uns mehr Input damit wir besser helfen können. Der komplette Code der bei dir für das ein- und ausblenden verantwortlich ist, wäre ja schon mal nicht verkehrt, und sage uns wo Du ihn anwendest.

Ach ja! Nenn uns deine AOO oder LO Version, mit der genauen Versionsnummer.



Gruß
balu

Re: Symbolleisten wieder sichtbar machen

von WSO » Di, 05.08.2014 11:12

Moin Rasakul,
klar, das war der erste Test.
Das IF / Else arbeitet korrekt.
Ich denke wir haben hier nen bug.
Gruss,
Wolfram

Re: Symbolleisten wieder sichtbar machen

von Rasakul » Mo, 04.08.2014 16:07

Hi WSO!

blöde Frage, aber hast du geprüft, ob du überhaupt in den Else-Zweig reinkommst?

LG
Rasakul

Re: Symbolleisten wieder sichtbar machen

von WSO » Mo, 04.08.2014 13:19

leider nicht.
finde keinen Grund, warum "hide" funktioniert und "show" nicht.

Re: Symbolleisten wieder sichtbar machen

von balu » Mo, 04.08.2014 12:37

Mahlzeit WSO,

schau doch mal hier, vielleicht hilft dir das weiter.



Gruß
balu

Gelöst: Symbolleisten wieder sichtbar machen

von WSO » Sa, 02.08.2014 15:37

Hallo Zusammen,
Ich habe per Marko Symbolleisten ausgeblendet, kann sie aber nicht wieder auf dem gleich Weg wieder sichtbar machen.

Code: Alles auswählen

	If glbExpertenmodus = False THEN
		 lmgr = oFormDocs.getCurrentController().Frame.LayoutManager
    		 lmgr.setVisible(false)             
'    		 lmgr.hideElement("private:resource/menubar/menubar")  
    		lmgr.hideElement("private:resource/statusbar/statusbar")
'     		lmgr.hideElement("private:resource/toolbar/formsnavigationbar")
    		lmgr.hideElement("private:resource/toolbar/standardbar")
    		 lmgr.hideElement("private:resource/toolbar/formdesign")
    		lmgr.hideElement("private:resource/toolbar/formcontrols")
     	ELSE
		lmgr = oFormDocs.getCurrentController().Frame.LayoutManager
    		lmgr.setVisible(true)             
    		lmgr.showElement("private:resource/menubar/menubar")  
    		lmgr.showElement("private:resource/statusbar/statusbar")
    		lmgr.showElement("private:resource/toolbar/formsnavigationbar")
     		lmgr.showElement("private:resource/toolbar/standardbar")
    		lmgr.showElement("private:resource/toolbar/formdesign")
    		lmgr.showElement("private:resource/toolbar/formcontrols")   
    End If

Ist recht lästig, da ich dummereise auch die Navigationsleiste ausgeblendet hatte und jetzt nicht mehr eingeblendet bekomme.
Kann mir da bitte jemand helfen?
Gruss,
WSO

Nach oben