[zum Teil gelöst] Suche Doku zu com.sun.star.beans.PropertyValue

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

Moderator: Moderatoren

craig22
****
Beiträge: 135
Registriert: Mi, 19.08.2020 13:47

[zum Teil gelöst] Suche Doku zu com.sun.star.beans.PropertyValue

Beitrag von craig22 »

Hallo,

ich stolpere immer wieder über die PropertyValues.
Wo finde ich eine Doku, zu Namen und Values der PropertyValues.

Beispiel wenn ein BItmap markiert wurde:

Code: Alles auswählen

    
REM Quelle: https://ask.libreoffice.org/t/macro-for-saving-sheet-as-single-image-in-calc/29954/4
    Dim props(0) As New com.sun.star.beans.PropertyValue
    props(0).Name = "SelectedFormat"
    props(0).Value = 2  'Apparently this means bitmap format'
Name "SelectedFormat" war mir bisher unbekannt und das Value=2 ein Bitmap bedeutet auch.

Die API gibt leider keine weiteren Auskünfte:
https://www.openoffice.org/api/docs/com ... .html#Name
Zuletzt geändert von craig22 am Fr, 26.11.2021 20:57, insgesamt 1-mal geändert.
Gruß

Craig
_____________________________________________________
WIN 10 Pro 64-Bit • LO 7.1.5.2 (x64) • AOO 4.1.8
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Suche Doku zu com.sun.star.beans.PropertyValue

Beitrag von Stephan »

es gibt keine gesonderte Dokumentation dazu, meines Wissens sind aber alle sog. Structs in der API-REferenz als PropertyValue anzusprechen, z.B. siehe hier von Borderline bis TableSortField:
https://www.openoffice.org/api/docs/com ... le-ix.html

ein wenig HIntergrundwissen zu PropertyValues findest Du auch im Buch von Andrew Pitonyak (in meiner Ausgabe im Kapitel 3.3.8:
https://www.uni-due.de/~abi070/ooo.html


Gruß
Stephan
Karolus
********
Beiträge: 7431
Registriert: Mo, 02.01.2006 19:48

Re: Suche Doku zu com.sun.star.beans.PropertyValue

Beitrag von Karolus »

Hallo
ich stolpere immer wieder über die PropertyValues.
Genau… das struct (muss) an tausendundeins Stellen genutzt werden, und hat selbst null Beziehung zum String des Namens oder eben das allesmögliche was an …Value gebunden wird.

PropertyValue ist quasi der stumme, blinde und taube Bote der zu Übermittlung der Nachricht gebraucht wird.

Du musst eben versuchen an die Doku des Objects zu kommen, das ein PropertyValue verlangt, mit viel Glück findest du dort wiederum welche Namen und welche Values valide sind.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
craig22
****
Beiträge: 135
Registriert: Mi, 19.08.2020 13:47

Re: Suche Doku zu com.sun.star.beans.PropertyValue

Beitrag von craig22 »

Hallo,

vielen Dank für Eure Anworten.

@Stephan
Die Struct's Borderline, Possize, usw. sind mir bekannt.
Auch habe ich gerade OOME bemüht.

Wenn ich statt:

Code: Alles auswählen

props(0).Name = "SelectedFormat"

Code: Alles auswählen

props(0).Name = "Banane"
schreibe,
erhalte ich später im Code einen Fehlermeldung "Objektvariable nicht belegt"

Woher kommt nun der Name "SelectedFormat", bzw. was steht dahinter?
In der API konnte ich dazu nichts finden.

Die Änderung der Value-Eigenschaft von 2 auf 1 führt dazu, dass kein PNG-Bitmap in Draw kopiert wird, sondern eine editierbare Textbox.

Code: Alles auswählen

props(0).Value = 2  'Apparently this means bitmap format'
Auch das ist nicht dokumentiert?

@karolus
karolus hat geschrieben:Genau… das struct (muss) an tausendundeins Stellen genutzt werden, und hat selbst null Beziehung zum String des Namens oder eben das allesmögliche was an …Value gebunden wird.
PropertyValue ist quasi der stumme, blinde und taube Bote der zu Übermittlung der Nachricht gebraucht wird.
Mein Test zeigt etwas anderes, kann auch sein das ich ein wenig begriffstutzig bin.
Aus meiner Sicht besteht eine eindeutige Beziehung zum Rest des Codes.

Was ich meine ist, dass folgendes NICHT funktioniert:

Code: Alles auswählen

    Dim props(0) As New com.sun.star.beans.PropertyValue
    props(0).Name = "Appel"
    props(0).Value = 8000 
Woher stammt "SelectedFormat" und die Value-Eigenschaft und wo sind diese dokumentiert?
Gruß

Craig
_____________________________________________________
WIN 10 Pro 64-Bit • LO 7.1.5.2 (x64) • AOO 4.1.8
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Suche Doku zu com.sun.star.beans.PropertyValue

Beitrag von Stephan »

erhalte ich später im Code einen Fehlermeldung "Objektvariable nicht beleg
das kann ich leider nicht nachvollziehen, siehe Screenshot.
Woher kommt nun der Name "SelectedFormat", bzw. was steht dahinter?
das scheint eine PropertyValue der dispatch-Methode ".uno:ClipboardFormatItems" zu sein. (https://forum.openoffice.org/en/forum/v ... =9&t=27819)
Auch das ist nicht dokumentiert?
Die PropertyValues der dispatch-Befehle sind alle nicht dokumentiert, weder für OOo, noch AOO, noch LO. Ich kenne keine andere Möglichkeit als Diese mittels Probieren herauszufinden, oder im Internet zusammenzuklauben.
Vor einiger Zeit stiess ich auf eine SEite, wo jemand zumindest angefangen hat diese Dinge zu dokumentieren, aber es geht nict recht voran:
https://thebiasplanet.blogspot.com/2018 ... ables.html

Gruß
Stephan
Dateianhänge
propsXRAY.gif
propsXRAY.gif (51.65 KiB) 2633 mal betrachtet
Karolus
********
Beiträge: 7431
Registriert: Mo, 02.01.2006 19:48

Re: Suche Doku zu com.sun.star.beans.PropertyValue

Beitrag von Karolus »

craig hat geschrieben:Mein Test zeigt etwas anderes, kann auch sein das ich ein wenig begriffstutzig bin.
Aus meiner Sicht besteht eine eindeutige Beziehung zum Rest des Codes.
Ja du verwechselst einerseits den leeren Notizzettel mit dem beschriebenen Notizzettel, und glaubst der Notizzettel ist der Erzeuger der Information… isser aber nicht!
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
craig22
****
Beiträge: 135
Registriert: Mi, 19.08.2020 13:47

Re: Suche Doku zu com.sun.star.beans.PropertyValue

Beitrag von craig22 »

Hallo,

hier ein Beispieldokument mit drei Makros, welche alle auf dem Original-Makro basieren,
allerdings habe ich die zu übergebenden Argumente geändert, um deutlich zu machen was ich zuvor beschrieben habe.
CALC Makro Selektion als PNG-File exportieren.ods
(16.25 KiB) 106-mal heruntergeladen
Warum die geänderten Argumente zu unterschiedlichen Ergebnissen führen ist mir vollkommen klar.
Darum geht es in meiner Anfrage auch nicht, sondern eben darum, wo sind diese ganzen Argumente zu den einzelnen Dispatch-Commands dokumentiert.
Die Commands selbst, sind ja dokumentiert, ist aber eine Sackgasse, weil die Hintergrundinformationen (Argumente) fehlen.

@Stephan
Danke, diese Seite hat mich schon ein Stück weitergebracht.
https://thebiasplanet.blogspot.com/p/blog-page.html
Die PropertyValues der dispatch-Befehle sind alle nicht dokumentiert, weder für OOo, noch AOO, noch LO. Ich kenne keine andere Möglichkeit als Diese mittels Probieren herauszufinden, oder im Internet zusammenzuklauben.
Hier frage ich mich dann, woher die Beispiele, welche im Netz, auch hier im Forum zu finden sind herkommen :?

@karolus
karolus hat geschrieben:Ja du verwechselst einerseits den leeren Notizzettel mit dem beschriebenen Notizzettel, und glaubst der Notizzettel ist der Erzeuger der Information… isser aber nicht!
Nein, ich habe nichts verwechselt, sondern habe auf diesen Hinweis von Dir geantwortet:
hat geschrieben:Genau… das struct (muss) an tausendundeins Stellen genutzt werden, und hat selbst null Beziehung zum String des Namens oder eben das allesmögliche was an …Value gebunden wird.
PropertyValue ist quasi der stumme, blinde und taube Bote der zu Übermittlung der Nachricht gebraucht wird.
Ja, der Dispatscher ist der Versender der im Property-Array angegebenen Informationen.
Die Name-Eigenschaft und die Value-Eigenschaft muss zum uno.xxx passen, sonst meckert der Versender, wie in meinem fehlerhaften Beispiel.
".uno:ClipboardFormatItems" fordert somit:
Name= "SelectedFormat"
Value = ODER(0;1;2)

Dank Stephan bin ich hier fündig geworden.
https://thebiasplanet.blogspot.com/2019 ... items.html


Ebenso etwas suche ich gemäß meiner hier gestellten Anfrage.

Andersherum gefragt:
Gibt es einen Codeinspektor speziell für die Commands:
z.B.:
xray ".uno:ClipboardFormatItems"
Gruß

Craig
_____________________________________________________
WIN 10 Pro 64-Bit • LO 7.1.5.2 (x64) • AOO 4.1.8
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Suche Doku zu com.sun.star.beans.PropertyValue

Beitrag von Stephan »

Hier frage ich mich dann, woher die Beispiele, welche im Netz, auch hier im Forum zu finden sind herkommen :?
So leid es mir tut, der einzige Weg den ich kenne ich zu probieren, also mit dem Makrorekorder Makros aufzuzeichnen und zu schauen welche Parameter dort vorkommen.
Man kann dann, wenn man die Namen der Parameter kennt, damit im Internet suchen und findet dann häufig noch etwas mehr Infos.

Ich kenne hingegen wirklich keine Quelle die diese Parameter vollständig/systematisch dokumentiert, obwohl ich selbst zu OOo [sic] Zeiten die damaligen Programmierer von SUN angesprochen hatte, war so etwas nicht erhältlich.



Gruß
Stephan
craig22
****
Beiträge: 135
Registriert: Mi, 19.08.2020 13:47

Re: Suche Doku zu com.sun.star.beans.PropertyValue

Beitrag von craig22 »

Hallo Stephan,

schade.

Deine verlinkte Seite ist ja schon mal eine kleine Hilfe.

Insgesamt finde ich es doch sehr seltsam, dass man an die Interna
der Dispatch-Commands nicht so ohne weiteres herankommt.

Werde noch ein wenig im Netz nach einer Lösung suchen und
wenn ich etwas brauchbares gefunden habe, dann poste ich es hier.

Ich setze meine Anfrage auf zum Teil gelöst.

Vielen Dank.
Gruß

Craig
_____________________________________________________
WIN 10 Pro 64-Bit • LO 7.1.5.2 (x64) • AOO 4.1.8
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Suche Doku zu com.sun.star.beans.PropertyValue

Beitrag von Stephan »

Nachtrag:
ich habe mir mal die Mühe gemacht im AOO-Quellcode zu suchen. Dort finde ich den mutmaßlich relevanten Eintrag für ClipboardFormatItems in der Datei ...\main\svx\source\mnuctrls\clipboardctl.cxx:

Any a;
Sequence< PropertyValue > aArgs( 1 );
aArgs[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "SelectedFormat" ));
aItem.QueryValue( a );
aArgs[0].Value = a;
Dispatch( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:ClipboardFormatItems" )),
aArgs );


Der Quellcode ist hier downloadbar(unter "Source"):
https://openoffice.apache.org/downloads.html

Gruß
Stephan
Antworten