Grafik mit Makro ein und ausblenden

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

Moderator: Moderatoren

Genesis_1985
Beiträge: 8
Registriert: Di, 11.11.2014 22:07

Grafik mit Makro ein und ausblenden

Beitrag von Genesis_1985 »

Hallo,

ich habe mich seit einigen Tagen mit Makros beschäfftigt und ein bisschen was probiert.

Ich möchte, dass wenn eine Zelle z.B. 1 enthält, dass dann ein Makro startet und ein Bild sichtbar wird.

Im Sheet 1 = Statistik sind knapp 20 Bilder alle mit unterschiedlichen Bedingungen, daher reicht mir wenn ich eins hinkriege.

Erst blende ich alle Grafiken aus bei Start, das klappt,
dann soll Zelle(AQ59) abgefragt werden ob sie gleich 1 ist.
Dann soll der Badge1 angezeigt werden.

Aktuell sieht es so aus:

Code: Alles auswählen

REM  *****  BASIC  *****

sub hide_all
    opage=thisComponent.sheets("Statistik").DrawPage
    for i=0 to opage.count-1
      if opage(i).name="Badge1" then oPage(i).Transparency=100
      if opage(i).name="Badge2" then oPage(i).Transparency=100
      if opage(i).name="Badge3" then oPage(i).Transparency=100
      if opage(i).name="Badge4" then oPage(i).Transparency=100
      if opage(i).name="Badge5" then oPage(i).Transparency=100
      if opage(i).name="Badge6" then oPage(i).Transparency=100
      if opage(i).name="Badge7" then oPage(i).Transparency=100
      if opage(i).name="Badge8" then oPage(i).Transparency=100
      if opage(i).name="Badge9" then oPage(i).Transparency=100
    if opage(i).name="Badge10" then oPage(i).Transparency=100
    if opage(i).name="Badge11" then oPage(i).Transparency=100
    if opage(i).name="Badge12" then oPage(i).Transparency=100
    if opage(i).name="Badge13" then oPage(i).Transparency=100
    if opage(i).name="Badge14" then oPage(i).Transparency=100
    if opage(i).name="Badge15" then oPage(i).Transparency=100
    if opage(i).name="Badge16" then oPage(i).Transparency=100
    if opage(i).name="Badge17" then oPage(i).Transparency=100
    if opage(i).name="Badge18" then oPage(i).Transparency=100
    if opage(i).name="Deckblatt1" then oPage(i).Transparency=100   
    next i   
end sub

sub showbadge_1
	osheets = thiscomponent.sheets
    oSourceSheet = osheets.getbyname("Statistik")
    oSourceCell = oSourceSheet.getcellbyposition(42,58)'AQ59
    sSourceString = oSourceCell.value 'auslesen
    opage=thisComponent.sheets("Statistik").DrawPage
    	for i=0 to opage.count-1
      	if opage(i).name="Badge1" then oPage(i).Transparency=0
    	next i
end sub
Moderation: Zur übersichtlichen Darstellung des Textes und vom Programmcode im Text habe ich [​code]…[/code] Tags gesetzt.—lorbass, Moderator

Die Schleife zur Objektabfrage ist wahrscheinlich nicht mehr nötig,
eher ein Relikt, als ich die Objekte noch aus einem anderen Blatt eingefügt hatte
und daher vorher schauen musste ob es 'schon' da ist.

never change a halbwegs running system

Dank und Gruß
Bjoern


EDIT:

aktuell starte ich die Frage über einen Button.
Hat auch seinen Reiz, so kann der User immer zwischendurch schauen, ob er einen neue Trophäe freigeschaltet hat.

Schön wäre aber ein Automatismus im Hintergrund mit einem Pop-Up, dass etwas erreicht wurde.

EDIT 2:
Danke für das ändern der Ansicht.
Jetzt weiß ich wie es geht
Zuletzt geändert von Genesis_1985 am Di, 25.11.2014 16:45, insgesamt 1-mal geändert.
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Grafik mit Makro ein und ausblenden

Beitrag von F3K Total »

Moin,
Genesis_1985 hat geschrieben:Schön wäre aber ein Automatismus im Hintergrund mit einem Pop-Up, dass etwas erreicht wurde.
Das kannst Du mit eine eigenen Function machen.
Bsp:

Code: Alles auswählen

function ERFOLG(Zelle,Wert)
   if Zelle >= Wert then
       msgbox ("Klasse, du hast "+Zelle+" Punkte erreicht",64,"Erfolg")
   endif
end function
Wenn du nun z.B. in Zelle B2 die Formel

Code: Alles auswählen

=ERFOLG(A2,5)
schreibst, kommt sobald der Wert in Zelle A2 den Wert 5 erreicht, die Meldung:
EF.png
EF.png (11.14 KiB) 2893 mal betrachtet
Gruß R
Genesis_1985
Beiträge: 8
Registriert: Di, 11.11.2014 22:07

Re: Grafik mit Makro ein und ausblenden

Beitrag von Genesis_1985 »

Hi,

Danke für den Tipp, MessageBox werde ich versuchen zu übernehmen.
Sieht echt einfach aus.
Aktuell erscheinen nur die Grafiken, wenn bestimmte Werte erreicht werden.
Einige blenden wieder aus, wenn der User wieder unproduktiver wird.
Aber ein Pop-Up fehlte noch
Danke
Antworten