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.