[Calc] Mit Listenfeld-Formular Bilder ein-/ausblenden (Makro)?

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

Moderator: Moderatoren

icemanx81
Beiträge: 1
Registriert: Di, 14.04.2015 22:20

[Calc] Mit Listenfeld-Formular Bilder ein-/ausblenden (Makro)?

Beitrag von icemanx81 »

Hallo liebe OO-Gemeinde,

ich sitze gerade an einem Projekt, weiß nicht mehr weiter und hoffe, dass ihr mir bei der Lösung helfen könnt.
Und zwar bräuchte ich für Calc ein Makro, welches per Listenfeld-Formular, je nach Eintrag eine Grafik ein- bzw ausblended.
Im Detail handelt es sich bei dem Listenfeld um eine Ja-/Nein-Auswahl die entsprechend ein Häkchen oder Kreuz als Grafik erscheinen lassen soll.
Das ganze soll mehrmals in dem Dokument an verschiedenen Positionen geschehen, müsste also irgendwie mehrmals unabhängig voneinander funktionieren.

Ich hatte in der Vergangenheit dieses Thema mit Hilfe von 2 Checkboxen gelöst, welche über das "Zusatzinformation"-Feld der Checkboxen die entsprechende Grafik mit deren gleichen Namen angesprochen hat. (Ich glaube diese Lösung damals auch hier gefunden zu haben :D )
Diese Lösung soll in meinem jetzigen Dokument allerdings nicht mehr vorkommen und aus den 2 Checkboxen soll ein Listenfeld werden.

Um das ganze zu veranschaulichen, was ich bisher hatte und was ich gerne hätte, hab ich mal eine Beispieldatei mit angehängt.

Ich hoffe, ihr habt für mich eine Lösung für mein kleines Problem. ^_^

Danke schon mal & Gruß
Thomas D.
aka icemanx81
Demo.ods
Beispiel
(47.37 KiB) 52-mal heruntergeladen
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: [Calc] Mit Listenfeld-Formular Bilder ein-/ausblenden (Makro)?

Beitrag von F3K Total »

Hi,
anbei eine Lösung mit diesem Makro:

Code: Alles auswählen

Sub Hide_show_Listbox(event)
    olistbox = event.source.model
    aPictures = Split(olistbox.tag,",")'Hier wird die Zusatzinformation der Listbox am Komma getrennt
                                       'und in ein Array mit zwei Werten, aPictures(0) und aPictures(1) eingelesen
    if olistbox.CurrentValue = "Ja" then 
        sPictureVisible = aPictures(0)
        sPictureUnvisible = aPictures(1)
    else
        sPictureVisible = aPictures(1)
        sPictureUnvisible = aPictures(0)
    endif
    oSheet = thiscomponent.sheets.getbyname("Tabelle1")
    odrawpage = osheet.drawpage
    for i = 0 to odrawpage.count - 1
        oshape = odrawpage(i)
        if oshape.name = sPictureVisible then
            oshape.Transparency = 0
        endif
        if oshape.name = sPictureUnvisible then
             oshape.Transparency = 100
        endif
    next i
End Sub
Gruß R
Dateianhänge
Demo.ods
(46.9 KiB) 64-mal heruntergeladen
Antworten