Ich möchte in einem CALC-Dokument eine Grafik per Makro ein- bzw. aublenden. Die Methode .getGraphicObjects scheint bei der OO Version 1.1.5 die ich benutze nicht zu funktionieren. Ich bekomme immer die Fehlermeldung: Eigenschaft oder Methode nich gefunden.
???
Grafik aus- einblenden
Moderator: Moderatoren
-
- Beiträge: 9
- Registriert: Mi, 22.03.2006 14:09
- Wohnort: Saarland
Hey white_chicken,
Also, die Methode funktioniert natürlich - nur brauchst du dei Drawpage des jeweiligen Tabellenblattes -> oDrawpage = thisComponent.sheets(0) .drawpage
Und darauf sollte es auch funktionieren:-)
Gruss
Thomas
Sicher? worauf wendest du sie denn an?Die Methode .getGraphicObjects scheint bei der OO Version 1.1.5 die ich benutze nicht zu funktionieren.
Also, die Methode funktioniert natürlich - nur brauchst du dei Drawpage des jeweiligen Tabellenblattes -> oDrawpage = thisComponent.sheets(0) .drawpage
Und darauf sollte es auch funktionieren:-)
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
-
- Beiträge: 9
- Registriert: Mi, 22.03.2006 14:09
- Wohnort: Saarland
es klappt einfach nicht
Ich habe eine Tabelle mit Namen "Kapital und Steuern" und dort ein Grafikobjekt mit Namen "warnschild" eingefügt. Diese Grafik möchte ich per Makro ausblenden.
So sieht mein Makroentwurf aus:
Hab jetzt schon einiges ausprobiert aber wie ich es drehe und wende, ich bekomme in der vorletzten Zeile immer wieder die Fehlermeldung: Eigenschaft oder Methode nich gefunden.


Ich habe eine Tabelle mit Namen "Kapital und Steuern" und dort ein Grafikobjekt mit Namen "warnschild" eingefügt. Diese Grafik möchte ich per Makro ausblenden.
So sieht mein Makroentwurf aus:
Code: Alles auswählen
Sub Grafik_ausblenden
myDoc = ThisComponent
mySheet = myDoc.Sheets().getByName("Kapital und Steuern")
Page = mySheet.drawPage
Grafik = Page.getGraphicObjects().GetbyName("warnschild")
Grafik.Visible = false
End Sub
Hab jetzt schon einiges ausprobiert aber wie ich es drehe und wende, ich bekomme in der vorletzten Zeile immer wieder die Fehlermeldung: Eigenschaft oder Methode nich gefunden.



Hey white_chicken,
Calc nutzt das System der Drawpage - und da gibt es nur indexbasierten Zugang.
Im Übrigen gibt es auch keine "Visible" Eigenschaft für Obejte der Drawpage. Das geht eigentlich nur über die Ebeneneigenschaft - nur die sit eben bei Calc auch nicht voll vorhanden.
Abhilfe: Die Transparenz des Grafikobjektes auf 100 setzen - dann ist es vollständig durchsichtig und du hast den gleichen effekt.
Unter der Annahme, dass du nur 1 Grafikobjekt da drin hast:
Hast du mehrere Grafikobjekte, dann musst du eben eine Schleife programmieren und jedes einzelne Element ansprechen, dann mit der Namenseigenschaft vergleichen und so dein gewünschtes Objekt extrahieren.
Viele Grüße
Thomas
Das wundert mich gar nicht. Die Methode getGraphicObjects() gibt es nur bei Writer-Dokumenten für direkt eingebette Objekte.ich bekomme in der vorletzten Zeile immer wieder die Fehlermeldung: Eigenschaft oder Methode nich gefunden.
Calc nutzt das System der Drawpage - und da gibt es nur indexbasierten Zugang.
Im Übrigen gibt es auch keine "Visible" Eigenschaft für Obejte der Drawpage. Das geht eigentlich nur über die Ebeneneigenschaft - nur die sit eben bei Calc auch nicht voll vorhanden.
Abhilfe: Die Transparenz des Grafikobjektes auf 100 setzen - dann ist es vollständig durchsichtig und du hast den gleichen effekt.
Unter der Annahme, dass du nur 1 Grafikobjekt da drin hast:
Code: Alles auswählen
Sub Grafik_ausblenden
myDoc = ThisComponent
mySheet = myDoc.Sheets().getByName("Kapital und Steuern")
Page = mySheet.drawPage
Grafik = Page.getByIndex(0) 'das erste Grafikobjekt
Grafik.transparency = 100 ' ist jetzt durchsichtig
end sub
Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
-
- Beiträge: 9
- Registriert: Mi, 22.03.2006 14:09
- Wohnort: Saarland
@Toxitom: Danke für deine Hilfe!!!
Leider bekomme ich bei der Zeile...
...auch die Fehlermeldung: Eigenschaft oder Methode nich gefunden.
Ich hab es aber jetzt anders gelöst. Nicht über die Transparenz des Grafikobjektes sondern die Größe. Ich setze SIZE einfach auf 0 und schon ist die Grafik auch verschwunden.
Hier der Code dazu:
Leider bekomme ich bei der Zeile...
Code: Alles auswählen
Grafik.transparency = 100 ' ist jetzt durchsichtig

Hier der Code dazu:
Code: Alles auswählen
Sub Grafik_ausblenden
dim Grafik as Object
myDoc = ThisComponent
mySheet = myDoc.Sheets().getByName("Kapital und Steuern")
Page = mySheet.drawPage
Grafik = Page.getByIndex(0)
Dim Size As New com.sun.star.awt.Size
Size.Width = 100
Size.Height = 100
Grafik.Size=Size
End Sub