Date: prev next · Thread: first prev next last
2021 Archives by date, by thread · List index


Hallo Robert,

ich habe ein bisschen Licht uin das Thema bringen können.
LibreLogo wird offenbar behandelt wie eine Extension. Vielleicht ist es echnisch auch eine, aber das bleibe mal dahingestellt. Da stehen natürlich die eventuellen Symbolleisten woanders als bei den von LibO selbst mitgelieferten, also kein Wunder, dass da etwas anders ist. Xray liest nun nicht einfach das Attribut string oder - im Fall von LibreLogo und anderen Erweiterungen - integer, sondern verwendet die Introspektion. Tatsächlich hat die Eigenschaft integer sowohl bei der Symbolleiste von LibreLogo wie auch der anderen Erweiterung, die ich angeschaut habe, den Wert 24, das identifiziert die Erweiterung also nicht. Die Introspektion kriegt als Input das ganze Objekt, da muss irgendwo die Info drinstecken, aber möglicherweise ist sie eben nicht über ein Attribut erreichbar.

Ich habe den Weg, den Xray geht, der natürlich wesentlich komplexer ist und den ich auch nicht völlig verstehe, zusammengefasst, das sind die nicht eingerückten Zeilen. Die Symbolleiste von LibreLogo ist bei mir auf Index 5. Die Zeile in Kommentar kann man mal testweise ausführen, dann bringt aber die nächste einen Fehler, der Grund ist vielleicht der gleiche wie dafür, dass man innerhalb Xray nicht Xray aufrufen darf. Wenn du die Logik des Programms einsetzen willst, musst du eventuell noch ein bisschen was abfragen, damit keine Fehler erzeugt werden; vielleicht genügt es, wenn du abfragst, ob VARTYPE(vari) = 8, d.h. "string" ist, du willst ja wohl die Namen der Symbolleisten abfragen.

SUB Test
    DIM oFrame AS OBJECT
    oFrame = StarDesktop.getCurrentFrame()
    oWin = oFrame.getContainerWindow()
obj = oFrame.LayoutManager.Elements(5)
invoc =  CreateUnoService("com.sun.star.script.Invocation")
invocCurrObj = invoc.createInstanceWithArguments(Array(obj))
'Xray invocCurrObj 'nur mal zum Testen, wenn das aktiv ist, bringt der nächste Befehl Fehler
vari = invocCurrObj.getValue("ResourceURL")
Xray vari

end sub

Viele Grüße
Gerhard

Am 12.06.2021 um 08:13 schrieb Robert Großkopf:
Hallo Gerhard,
ich würde gerne mal versuchen, ob ich etwas rauskriege, sowas reizt
mich, möchte aber ungern bei Null anfangen. Kannst du mir deinen
Testfall schicken?
Lass Dir die Symbolleiste für LibreLogo anzeigen (im Writer einzustellen
- nutze ich gerade in der Schule)

Ich gehe davon aus, dass Du xray laufen hast.

SUB Test
        DIM oFrame AS OBJECT
        oFrame = StarDesktop.getCurrentFrame()
        oWin = oFrame.getContainerWindow()
        xray oFrame.LayoutManager
        msgbox oFrame.LayoutManager.Elements(0).ResourceURL
END SUB

Ich habe da schon Umwandlungen in Strings versucht, aber die kommen
natürlich zu spät. Wenn Basic da eine Zahl als Variable vorgegaukelt
bekommt, dann macht es die auch daraus. Nur xray kann tatsächlich einen
Pfad entdecken.

Gruß

Robert


--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.