Hallo Robert,
Am 15.08.2018 um 20:43 schrieb Robert Großkopf:
Hallo Gerhard,
ich gehe davon aus, dass dein oField das Modell des Steuerelements ist.
(Zur Sicherheit: in meinem Testformular habe ich das über
oField=
ThisComponent.Drawpage.Forms.getByName("MainForm").getByName("Mark")
erreicht.)
Dann kannst du mit
if oField.getPropertySetInfo.hasPropertyByName("BorderColor")
abfragen, ob die Eigenschaft vorhanden ist oder nicht.
Passt genau! Ich lasse allerdings das Event beim Laden des Formulars
abfragen.
oForm = oEvent.Source
FOR i = 0 TO oForm.Count - 1
oField = oForm.getByIndex(i)
...
Na klar, da bist du direkter bei der Form. Das war nur zur Verdeutlichung.
Wo hast Du alle diese Befehle her? Ich habe mir da einen Wolf gesucht
und schließlich die Geschichte mit dem Aufrufen von BorderColor und
gleichzeitigem Errorsprung sowie dem Abspeichern aller Felder, die das
überleben, in ein Array zur weiteren Verwendung ausgetüftelt.
Grundsätzlich habe ich die Bücher zu Makros von Bernard Marcelly und
Laurent Godard und von Thomas Krumbein, die decken ja schon sehr viel ab.
Dass es die PropertySetInfo gibt, hatte ich früher schon festgestellt
und auch schon mal durch Doppelklick einen "Drill-down" gemacht und die
Liste der Eigenschaften angeschaut, deshalb habe ich diesmal aber gar
nicht dort geschaut, ob ich da was finde, sondern gleich Xray von
Bernard Marcelly (da gibt es auf seiner Seite auch eine deutsche
Übersetzung von mir) eingesetzt, was eine Riesenhilfe bei der
Makro-Entwicklung ist.
In diesem Fall hatte ich im Makro, nachdem ich zu oField gelangt war,
die Zeile "Xray oField" eingegeben. Dann sehe ich alle Eigenschaften des
Objekts und in weiteren Ansichten alle Methoden, Listener usw.Der erste
Gedanke war, eine Schleife über die Eigenschaften laufen zu lassen, aber
die PropertySetInfo hat eine Struktur, mit der ich zunächst mal nichts
anfangen kann. Dann habe ich bei den Methoden geschaut. Dann war das vom
Namen her sofort klar, dass das genau der gewünschte Befehl war.
Das ist das Prinzip: ich schaue bei dem fraglichen Objekt die
Eigenschaften und Methoden durch, was vom Namen her in Frage kommen
könnte, schaue ich näher an, erst mal in der API-Referenz von
LibreOffice. Auch wenn da meist nur ein Satz steht, reicht das in den
meisten Fällen, um die Spreu vom Weizen zu trennen. Ansonsten dann
Internetsuche nach diesen Eigenschaften und Methoden oder Ausprobieren,
was sie liefern.
Gruß
Robert
Gruß
Gerhard
--
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.