Durch Gruppen blättern

Startseite Foren Deutsches LiveCode-Forum Durch Gruppen blättern

Ansicht von 22 Antwort-Themen
  • Autor
    Beiträge
    • #42766
      akrages
      Teilnehmer

      Guten Tag.
      Mir stellt sich immo folgendes Problem:

      Eine Gruppe "Leistung 2022" enthält weitere Untergruppen.
      "Leistung KW_01"
      "Leistung KW_02"
      "Leistung KW_03"
      "Leistung KW_04"

      Diese "Untergruppen" werden mit jeder neuen Woche automatisch erstellt.

      Außerdem gibt es zwei Button "vorblättern" und "zurückblättern"
      Über diese beiden Button möchte ich nun durch diese Unterordner blättern.

      Dazu habe ich folgendes Script im Netz gefunden:
      ##Das folgende Beispiel führt die Schleifenaktion nur dann aus,
      ##wenn der Name der aktuellen Karte den Buchstaben "e" enthält:

         
         //repeat for the number of cards of this stack
            //go to next card
            //if "e" is in the short name of this card then 
               //next repeat
            //end if
            //put the short name of this card & return after myCardsList
         //end repeat
      
      Wie kann man diesen Code für meine Zwecke ändern?
      
      Immo habe ich folgendes Script im Button "vorblättern stehen:
      

      global gAktuelleKalenderwoche

      on mouseUp
      if the Visible of grp "LeistungHeute" is true and the short name of me is "Vorb" then
      set the Visible of grp "LeistungHeute" to false
      ## play sound
      if the environment = "mobile" then
      put specialFolderPath("resources") & "/sound/blättern.wav" into tSound
      mobilePlaySoundOnChannel tSound, 1 ,"now"
      ##Lautstärke einstellen unter Mobile:
      ## 0 - 100 pro Kanal
      mobileSetSoundChannelVolume 1, 60
      else
      play audioClip "blättern.wav"
      set the playloudness to 60
      end if

      ## Ab hier die Gruppe anzeigen in Abhängigkeit der Gruppe die gerade angezeigt wird!
      ## D.h. wenn z.B. die Gruppe "Leistung KW_9" angezeigt wird, dann
      ## die Gruppe "Leistung KW_10" anzeigen usw.

      if there is a grp ("Leistung " & (gAktuelleKalenderwoche)) then show grp ("Leistung " & (gAktuelleKalenderwoche)) with visual effect "scroll left" fast

    • #42768
      Klaus Major
      Verwalter

      Hi akrages,

      bitte die CODE Tags benutzen nach einfügen von Skripten!

      Tut mir leid, ich weiß nicht, was jetzt genau die Frage ist? 😎
      Vielleicht "the visible" abfragen?

      Gruß

      Klaus

    • #42769
      akrages
      Teilnehmer

      Hi Klaus.
      Sorry wegen der fehlenden Code Tags.

      Eine Gruppe "Leistung 2022" enthält weitere Untergruppen.
      "Leistung KW_01"
      "Leistung KW_02"
      "Leistung KW_03"
      "Leistung KW_04"

      Diese "Untergruppen" werden mit jeder neuen Woche automatisch erstellt.

      Außerdem gibt es zwei Button "vorblättern" und "zurückblättern"
      Über diese beiden Button möchte ich nun durch diese Unterordner blättern.

    • #42771
      Torsten
      Teilnehmer

      Hi akrages,

      1. Dein Script ist unvollständig, es fehlt ein end if und ein end mouseup
      2. Es ist nicht klar, ob das Script im Button, in der Card oder im Stack liegt.
      3. Wenn es das Button-Script ist (short name of me is "Vorb"?), fehlt der Teil, in dem der Zähler gAktuelleKalenderwoche hochgesetzt wird.
      4. set the Visible of grp "LeistungHeute" to false ==> das führt doch auch dazu, dass die Untergruppe auch nicht angezeigt wird, oder?

      Happy Scripting
      Torsten

    • #42772
      Klaus Major
      Verwalter

      Liegen alle diese Gruppen auf der selben Karte?
      Auf unterschiedlichen oder den selben Positionen (LOC)?
      Sind Gruppen bereits sichtbar?
      Soll die "vorherige" Gruppe wieder verschwinden, wenn eine neue Gruppe angezeigt wird?
      Kannst Du nicht die Gruppen auf separate Karten legen, dann wäre das alles ein Klacks?! 🙂

      Tut mir leid, ich habe keine Idee, wie Du Dir das vorstellst?

    • #42773
      Klaus Major
      Verwalter

      Eventuell kannst Du ein separate Karte zur Darstellung erstellen und dann dort die einzelnen Gruppen dort "PLACE"n bzw "REMOVE"n beim "Blättern? Verstehst Du?

    • #42774
      akrages
      Teilnehmer

      end if und mouseup sind natürlich vorhanden.
      Und
      Immo habe ich folgendes Script im Button "vorblättern stehen:

      Steht doch alles da.

      Aber vergiss mal mein Script.
      Das hätte ich gar nicht erwähnen sollen. Es verwirrt offensichtlich nur.

      Ich möchte einfach nur mit einem vor und einem zurück Button durch die vorhandenen Untergruppen blättern.

      Also wenn die Gruppe Leistung KW_01 angezeigt wird, dann soll nach Klick auf den Button vor die nächste Gruppe
      Also Gruppe Leistung KW_02 angezeigt werden usw.

      Und natürlich kann ich das mit einer if visible Abfrage lösen.
      Aber 52 mal if Visiible is ja wohl ein bisschen umständlich.
      Deshalb meine Frage nach einer eleganteren Lösung.

    • #42776
      Klaus Major
      Verwalter

      Beantworte doch mal meine Fragen, sonst sitzen wir Ostern noch hier... 😀
      Oder denk mal über meinen letzten Vorschlag nach, den mit einer separaten Karte, auf der nur EINE Gruppe ist und Du dort auch "blättern" kannst. Das wäre eine elegante Lösung!

      Ich werde mal schnell eine kleine Demo zusammenschustern...

    • #42777
      akrages
      Teilnehmer

      Liegen alle diese Gruppen auf der selben Karte? JA
      Auf unterschiedlichen oder den selben Positionen (LOC)? Alle auf dem selben Loc
      Sind Gruppen bereits sichtbar? Ja beim Wechsel auf die Karte zunächst die Gruppe LeistungHeute
      Soll die "vorherige" Gruppe wieder verschwinden, wenn eine neue Gruppe angezeigt wird? Ja
      Kannst Du nicht die Gruppen auf separate Karten legen, dann wäre das alles ein Klacks?! Leider nein.

    • #42779
      Klaus Major
      Verwalter

      OK, hier eine kleine Demo meines Konzepts, die Gruppen auf einer separaten Kaerte anzuzeigen und dort auch durchblättern zu lassen! Bei Fragen bitte fragen! 🙂
      https://www.dropbox.com/s/eqscwfx8khy8rl8/gruppen_bl%C3%A4ttern.livecode.zip?dl=1

    • #42780
      akrages
      Teilnehmer

      Bin gerade nicht an meinem Rechner.
      Ich schaue es mir später an.
      Vielen Dank schon mal.

    • #42782
      Klaus Major
      Verwalter

      Gern geschehen.

      Falls das Nichts für Dich ist, hier noch ein paar weitere Ideen:
      1. Zuerst ALLE Gruppen "Leistung KW_xx" verstecken
      2. Dann die Gruppe "Leistung KW_01" anzeigen
      3. Name dieser angezeigten Gruppe in lokaler Variablen merken
      4. Danach mit Buttons wie in meiner kleinen Demo Blättern, also Gruppe in 3. verstecken und die nächste oder vorige Gruppe anzeigen.

    • #43020
      akrages
      Teilnehmer

      Hallo Klaus
      Erstmal schönen Sonntag.
      -Und was ist denn nun mit "Durch Gruppen blättern"?-
      Hab´s bis jetzt leider nicht hinbekommen.

    • #43021
      Klaus Major
      Verwalter

      Nicht hinbekommen oder noch nicht probiert?
      Falls Ersteres, woran hapert's, kann ich helfen?

    • #43023
      akrages
      Teilnehmer

      Ja ich hoffe, dass Du mir helfen kannst.
      Also ich bin bis hierher gekommen:

      global gMyKWListe2, gActualYear, gZuletztSichtbar
      local gAnzahl

      on mouseUp
         if there is a grp "LeistungHeute" and the visible of grp "LeistungHeute" is true then
            hide grp "LeistungHeute"     
            --show grp (line -1 of (gMyKWListe2)) with visual effect "scroll up" fast
         end if
         put anzahl_gruppen() into tAnzahl 
         
         
         
         -- 1. Alle Gruppen "Leistung KW_.."  der Gruppe ("Leistung " & gActualYear) verstecken.
         repeat for each line i in gMyKWListe2
            hide grp i
         end repeat
         
         -- 2. Dann die Gruppe "Leistung KW_01" anzeigen
         if there is a grp (line 1 of (gMyKWListe2)) and the visible of grp (line 1 of (gMyKWListe2)) is false then
            show grp (line 1 of (gMyKWListe2)) with visual effect "scroll up" fast
            -- 3. Name dieser angezeigten Gruppe in lokaler Variablen merken
            put (line 1 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche von der Gruppe grp "LeistungHeute" sichtbar war
         end if
         -- bis hier alles ok.
         
         -- 4. Danach mit Buttons wie in meiner kleinen Demo Blättern, also Gruppe in 3. verstecken und die nächste oder vorige Gruppe anzeigen.

      Das alles habe ich in einem Button btn "raufblättern" stehen.

      Aber beim Rest deines Sciptes (der wecher im Stack steht) weiß ich einfach nicht,
      wo ich ihn einfügen soll.

      Die Scripte in den beiden Button "vorblättern" und "zurückblättern" habe ich 1:1 übernommen.

    • #43024
      Klaus Major
      Verwalter

      Wie hast Du es denn gemacht? Anzeige auf separater Karte?

      Das müsste ich im Zusammenhang sehen, bitte schick den Stack mal rüber: klaus AT major-k.de

    • #43026
      akrages
      Teilnehmer

      Nein, nicht auf separater Karte.
      Geht nicht, wegen zuvieler Abhängigkeiten.

      Immo habe ich -als Behelf- zwei Button btn "zurückblättern" und "btn "vorblättern"
      Im btn "zurückblättern" steht folgendes Script:

      global gActualYear, gMyKWListe2, gZuletztSichtbar
      
      on mouseUp pMouseButton
         ## Wenn die grp "LeistungHeute" sichtbar ist mouseUp abbrechen.
         if there is a grp "LeistungHeute" and the visible of grp "LeistungHeute" is true then exit mouseUp
         
         -- Eine Liste der Gruppen "Leistung KW_.." erstellen aber vorher eine vorhandene Variable mit diesem Namen leeren!
         put empty into gMyKWListe2
         repeat with x = 1 to the num of Groups of grp ("Leistung " & gActualYear)
            put short name of group x of grp ("Leistung " & gActualYear) & cr after gMyKWListe2
         end repeat
         ## Fertig :-)   
         
         ## play sound
         if the environment = "mobile" then
            if the visible of grp (line 1 of (gMyKWListe2)) <> true then
               put specialFolderPath("resources") & "/sound/blättern.wav" into tSound
               mobilePlaySoundOnChannel tSound, 1 ,"now"
               ##Lautstärke einstellen unter Mobile:
               ## 0 - 100 pro Kanal
               mobileSetSoundChannelVolume 1, 60
            end if
         else
            
            if the visible of grp (line 1 of (gMyKWListe2)) <> true then
               play audioClip "blättern.wav"
               set the playloudness to 60
            end if
         end if
         
         ##Die Liste mit jedem Klick absteigend einzeln anzeigen
         if there is a grp (line 14 of (gMyKWListe2)) and the visible of grp (line 14 of (gMyKWListe2)) is true then
            if there is a grp (line 13 of (gMyKWListe2)) and the visible of grp (line 13 of (gMyKWListe2)) is false then
               hide grp (line 14 of (gMyKWListe2))
               show grp (line 13 of (gMyKWListe2)) with visual effect "scroll right" fast
               put (line 13 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
            end if
         else
            
            if there is a grp (line 13 of (gMyKWListe2)) and the visible of grp (line 13 of (gMyKWListe2)) is true then
               if there is a grp (line 12 of (gMyKWListe2)) and the visible of grp (line 12 of (gMyKWListe2)) is false then
                  hide grp (line 13 of (gMyKWListe2))
                  show grp (line 12 of (gMyKWListe2)) with visual effect "scroll right" fast
                  put (line 12 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
               end if
            else
               
               if there is a grp (line 12 of (gMyKWListe2)) and the visible of grp (line 12 of (gMyKWListe2)) is true then
                  if there is a grp (line 11 of (gMyKWListe2)) and the visible of grp (line 11 of (gMyKWListe2)) is false then
                     hide grp (line 12 of (gMyKWListe2))            
                     show grp (line 11 of (gMyKWListe2)) with visual effect "scroll right" fast
                     put (line 11 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                  end if
               else
                  
                  if there is a grp (line 11 of (gMyKWListe2)) and the visible of grp (line 11 of (gMyKWListe2)) is true then
                     if there is a grp (line 10 of (gMyKWListe2)) and the visible of grp (line 10 of (gMyKWListe2)) is false then
                        hide grp (line 11 of (gMyKWListe2))            
                        show grp (line 10 of (gMyKWListe2)) with visual effect "scroll right" fast
                        put (line 10 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                     end if
                  else
                     
                     if there is a grp (line 10 of (gMyKWListe2)) and the visible of grp (line 10 of (gMyKWListe2)) is true then
                        if there is a grp (line 9 of (gMyKWListe2)) and the visible of grp (line 9 of (gMyKWListe2)) is false then
                           hide grp (line 10 of (gMyKWListe2))
                           show grp (line 9 of (gMyKWListe2)) with visual effect "scroll right" fast
                           put (line 9 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                        end if
                     else
                        
                        if there is a grp (line 9 of (gMyKWListe2)) and the visible of grp (line 9 of (gMyKWListe2)) is true then
                           if there is a grp (line 8 of (gMyKWListe2)) and the visible of grp (line 8 of (gMyKWListe2)) is false then
                              hide grp (line 9 of (gMyKWListe2))
                              show grp (line 8 of (gMyKWListe2)) with visual effect "scroll right" fast
                              put (line 8 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                           end if
                        else
                           
                           if there is a grp (line 8 of (gMyKWListe2)) and the visible of grp (line 8 of (gMyKWListe2)) is true then
                              if there is a grp (line 7 of (gMyKWListe2)) and the visible of grp (line 7 of (gMyKWListe2)) is false then
                                 hide grp (line 8 of (gMyKWListe2))
                                 show grp (line 7 of (gMyKWListe2)) with visual effect "scroll right" fast
                                 put (line 7 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                              end if
                           else
                              
                              if there is a grp (line 7 of (gMyKWListe2)) and the visible of grp (line 7 of (gMyKWListe2)) is true then
                                 if there is a grp (line 6 of (gMyKWListe2)) and the visible of grp (line 6 of (gMyKWListe2)) is false then
                                    hide grp (line 7 of (gMyKWListe2))
                                    show grp (line 6 of (gMyKWListe2)) with visual effect "scroll right" fast
                                    put (line 6 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                                 end if
                              else
                                 
                                 if there is a grp (line 6 of (gMyKWListe2)) and the visible of grp (line 6 of (gMyKWListe2)) is true then
                                    if there is a grp (line 5 of (gMyKWListe2)) and the visible of grp (line 5 of (gMyKWListe2)) is false then
                                       hide grp (line 6 of (gMyKWListe2))
                                       show grp (line 5 of (gMyKWListe2)) with visual effect "scroll right" fast
                                       put (line 5 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                                    end if
                                 else
                                    
                                    if there is a grp (line 5 of (gMyKWListe2)) and the visible of grp (line 5 of (gMyKWListe2)) is true then
                                       if there is a grp (line 4 of (gMyKWListe2)) and the visible of grp (line 4 of (gMyKWListe2)) is false then
                                          hide grp (line 5 of (gMyKWListe2))
                                          show grp (line 4 of (gMyKWListe2)) with visual effect "scroll right" fast
                                          put (line 4 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                                       end if
                                    else
                                       
                                       if there is a grp (line 4 of (gMyKWListe2)) and the visible of grp (line 4 of (gMyKWListe2)) is true then
                                          if there is a grp (line 3 of (gMyKWListe2)) and the visible of grp (line 3 of (gMyKWListe2)) is false then
                                             hide grp (line 4 of (gMyKWListe2))
                                             show grp (line 3 of (gMyKWListe2)) with visual effect "scroll right" fast
                                             put (line 3 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                                          end if
                                       else
                                          
                                          if there is a grp (line 3 of (gMyKWListe2)) and the visible of grp (line 3 of (gMyKWListe2)) is true then
                                             if there is a grp (line 2 of (gMyKWListe2)) and the visible of grp (line 2 of (gMyKWListe2)) is false then
                                                hide grp (line 3 of (gMyKWListe2))
                                                show grp (line 2 of (gMyKWListe2)) with visual effect "scroll right" fast
                                                put (line 2 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                                             end if
                                          else
                                             
                                             if there is a grp (line 2 of (gMyKWListe2)) and the visible of grp (line 2 of (gMyKWListe2)) is true then
                                                if there is a grp (line 1 of (gMyKWListe2)) and the visible of grp (line 1 of (gMyKWListe2)) is false then
                                                   hide grp (line 2 of (gMyKWListe2))
                                                   show grp (line 1 of (gMyKWListe2)) with visual effect "scroll right" fast
                                                   put (line 1 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                                                end if
                                             end if
                                          end if
                                       end if
                                    end if
                                 end if
                              end if
                           end if
                        end if
                     end if
                  end if
               end if
            end if
         end if
      end mouseUp

      Und im btn "zurückblättern" dieses Script:

      global gActualYear, gMyKWListe2, gZuletztSichtbar
      
      on mouseUp pMouseButton
         ## Wenn die grp "LeistungHeute" sichtbar ist mouseUp abbrechen.
         if there is a grp "LeistungHeute" and the visible of grp "LeistungHeute" is true then exit mouseUp
         
         ## play sound
         if the environment = "mobile" then
            if the visible of grp (line -1 of (gMyKWListe2)) <> true then
               put specialFolderPath("resources") & "/sound/blättern.wav" into tSound
               mobilePlaySoundOnChannel tSound, 1 ,"now"
               ##Lautstärke einstellen unter Mobile:
               ## 0 - 100 pro Kanal
               mobileSetSoundChannelVolume 1, 60
            end if
         else
            
            if the visible of grp (line -1 of (gMyKWListe2)) <> true then
               play audioClip "blättern.wav"
               set the playloudness to 60
            end if
         end if
         
         ##Die Liste mit jedem Klick aufsteigend einzeln anzeigen
         if there is a grp (line 1 of (gMyKWListe2)) and the visible of grp (line 1 of (gMyKWListe2)) is true then
            if there is a grp (line 2 of (gMyKWListe2)) and the visible of grp (line 2 of (gMyKWListe2)) is false then
               hide grp (line 1 of (gMyKWListe2))
               show grp (line 2 of (gMyKWListe2)) with visual effect "scroll left" fast
               put (line 2 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
            end if
         else
            
            if there is a grp (line 2 of (gMyKWListe2)) and the visible of grp (line 2 of (gMyKWListe2)) is true then
               if there is a grp (line 3 of (gMyKWListe2)) and the visible of grp (line 3 of (gMyKWListe2)) is false then
                  hide grp (line 2 of (gMyKWListe2))
                  show grp (line 3 of (gMyKWListe2)) with visual effect "scroll left" fast
                  put (line 3 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
               end if
            else
               
               if there is a grp (line 3 of (gMyKWListe2)) and the visible of grp (line 3 of (gMyKWListe2)) is true then
                  if there is a grp (line 4 of (gMyKWListe2)) and the visible of grp (line 4 of (gMyKWListe2)) is false then
                     hide grp (line 3 of (gMyKWListe2))
                     show grp (line 4 of (gMyKWListe2)) with visual effect "scroll left" fast
                     put (line 4 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                  end if
               else
                  
                  if there is a grp (line 4 of (gMyKWListe2)) and the visible of grp (line 4 of (gMyKWListe2)) is true then
                     if there is a grp (line 5 of (gMyKWListe2)) and the visible of grp (line 5 of (gMyKWListe2)) is false then
                        hide grp (line 4 of (gMyKWListe2))
                        show grp (line 5 of (gMyKWListe2)) with visual effect "scroll left" fast
                        put (line 5 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                     end if
                  else
                     
                     if there is a grp (line 5 of (gMyKWListe2)) and the visible of grp (line 5 of (gMyKWListe2)) is true then
                        if there is a grp (line 6 of (gMyKWListe2)) and the visible of grp (line 6 of (gMyKWListe2)) is false then
                           hide grp (line 5 of (gMyKWListe2))
                           show grp (line 6 of (gMyKWListe2)) with visual effect "scroll left" fast
                           put (line 6 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                        end if
                     else
                        
                        if there is a grp (line 6 of (gMyKWListe2)) and the visible of grp (line 6 of (gMyKWListe2)) is true then
                           if there is a grp (line 7 of (gMyKWListe2)) and the visible of grp (line 7 of (gMyKWListe2)) is false then
                              hide grp (line 6 of (gMyKWListe2))
                              show grp (line 7 of (gMyKWListe2)) with visual effect "scroll left" fast
                              put (line 7 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                           end if
                        else
                           
                           if there is a grp (line 7 of (gMyKWListe2)) and the visible of grp (line 7 of (gMyKWListe2)) is true then
                              if there is a grp (line 8 of (gMyKWListe2)) and the visible of grp (line 8 of (gMyKWListe2)) is false then
                                 hide grp (line 7 of (gMyKWListe2))
                                 show grp (line 8 of (gMyKWListe2)) with visual effect "scroll left" fast
                                 put (line 8 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                              end if
                           else
                              
                              if there is a grp (line 8 of (gMyKWListe2)) and the visible of grp (line 8 of (gMyKWListe2)) is true then
                                 if there is a grp (line 9 of (gMyKWListe2)) and the visible of grp (line 9 of (gMyKWListe2)) is false then
                                    hide grp (line 8 of (gMyKWListe2))
                                    show grp (line 9 of (gMyKWListe2)) with visual effect "scroll left" fast
                                    put (line 9 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                                 end if
                              else
                                 
                                 if there is a grp (line 9 of (gMyKWListe2)) and the visible of grp (line 9 of (gMyKWListe2)) is true then
                                    if there is a grp (line 10 of (gMyKWListe2)) and the visible of grp (line 10 of (gMyKWListe2)) is false then
                                       hide grp (line 9 of (gMyKWListe2))
                                       show grp (line 10 of (gMyKWListe2)) with visual effect "scroll left" fast
                                       put (line 10 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                                    end if
                                 else
                                    
                                    if there is a grp (line 10 of (gMyKWListe2)) and the visible of grp (line 10 of (gMyKWListe2)) is true then
                                       if there is a grp (line 11 of (gMyKWListe2)) and the visible of grp (line 11 of (gMyKWListe2)) is false then
                                          hide grp (line 10 of (gMyKWListe2))
                                          show grp (line 11 of (gMyKWListe2)) with visual effect "scroll left" fast
                                          put (line 11 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                                       end if
                                    else
                                       
                                       if there is a grp (line 11 of (gMyKWListe2)) and the visible of grp (line 11 of (gMyKWListe2)) is true then
                                          if there is a grp (line 12 of (gMyKWListe2)) and the visible of grp (line 12 of (gMyKWListe2)) is false then
                                             hide grp (line 11 of (gMyKWListe2))
                                             show grp (line 12 of (gMyKWListe2)) with visual effect "scroll left" fast
                                             put (line 12 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                                          end if
                                       else
                                          
                                          if there is a grp (line 12 of (gMyKWListe2)) and the visible of grp (line 12 of (gMyKWListe2)) is true then
                                             if there is a grp (line 13 of (gMyKWListe2)) and the visible of grp (line 13 of (gMyKWListe2)) is false then
                                                hide grp (line 12 of (gMyKWListe2))
                                                show grp (line 13 of (gMyKWListe2)) with visual effect "scroll left" fast
                                                put (line 13 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                                             end if
                                          else
                                             
                                             if there is a grp (line 13 of (gMyKWListe2)) and the visible of grp (line 13 of (gMyKWListe2)) is true then
                                                if there is a grp (line 14 of (gMyKWListe2)) and the visible of grp (line 14 of (gMyKWListe2)) is false then
                                                   hide grp (line 13 of (gMyKWListe2))
                                                   show grp (line 14 of (gMyKWListe2)) with visual effect "scroll left" fast
                                                   put (line 14 of (gMyKWListe2)) into gZuletztSichtbar ##Die Gruppe grp "Leistung KW_.." merken, welche vor der Gruppe grp "LeistungHeute" sichtbar war.
                                                end if
                                             end if
                                          end if
                                       end if
                                    end if
                                 end if
                              end if
                           end if
                        end if
                     end if
                  end if
               end if
            end if
         end if
      end mouseUp

      Viele if Abfragen aber funzt.

    • #43028
      Klaus Major
      Verwalter

      Au Mann!
      Nun stell Dir 100 Gruppen vor! 😀

      Nee, das geht auch anders:
      1. Zuerst alle Gruppen namens "Leistung KW..." suchen

      ...
      ## Vielleicht on opencard
      global allegruppen,anzahlgruppen
      ...
      put the groupnames of this cd into allegruppen
      filter allegruppen with "Leistung KW*"
      ## Eventuell noch sortieren.
      ## Nun hast Du in allegruppen nur die wichtigen Gruppen, durch die Du blättern willst.
      put the num of lines of allegruppen into anzahlgruppen
      ...

      2. Alle diese Gruppen verstecken

      ...
      global aktuellegruppe
      lock screen
      repeat for each line tGruppe in allegruppen
        hide grp tGruppe
      end repeat
      show grp (line 1 of allegruppen)
      put 1 into aktuellegruppe
      unlock screen
      ...

      3. Nun die erste dieser Gruppen anzeigen und 1 in die globale Variable aktuellegruppe legen
      4. Vorblättern:

      on mouseup
       global aktuellegruppe
      ## Wir können noch eins weiter:
       if aktuellegruppe < anzahlgruppen then
        hide grp (line aktuellegruppe of allegruppen)
        add 1 to aktuellegruppe
        show grp (line aktuellegruppe of allegruppen)
       else
        ## Wieder vorne anfangen
        hide grp (line aktuellegruppe of allegruppen)
        put 1 into aktuellegruppe
        show grp (line aktuellegruppe of allegruppen)
       end if
      end mouseup

      5. zurückblättern:

      on mouseup
       global aktuellegruppe
       ## Wir können noich rückwärts:
       if aktuellegruppe > 1 then
        hide grp (line aktuellegruppe of allegruppen)
        subtract 1 from aktuellegruppe
        show grp (line aktuellegruppe of allegruppen)
       else
        ## Wir sind bei der ersten Gruppe angelangt
        hide grp (line aktuellegruppe of allegruppen)
        ## Wieder hinten anfangen
        put anzahlgruppen intoto aktuellegruppe
        show grp (line aktuellegruppe of allegruppen)
       end if
      end mouseup

      Das war's! 🙂

    • #43030
      akrages
      Teilnehmer

      Das sieht sehr gut aus.

      Bin gerade beim Essen.
      Sobald ich wieder loslegen kann, probiere ich es aus.
      Du bekommst auf jedenfall heute noch Feedback.
      Bis dahin erstmal vielen Dank.

    • #43031
      Klaus Major
      Verwalter

      Am wichtigsten ist es, die Logik dahinter zu verstehen!
      Wir sprechen keine Gruppe mit Namen an, daher funktioniert das
      auch mit 1000 Gruppen oder mehr.

    • #43033
      Klaus Major
      Verwalter

      Dein Problem war, daß Du zu sehr "computerisch" gedacht hast!

      Stell Dir vor, wie Du es mit Stift und Papier machen würdest:
      1. Alle Gruppen aufschreiben
      2. Die erste davon anzeigen und die 1 auf den Zettel als Merker schreiben
      3. Diese Gruppe wieder verstecken und die nächste auf der Liste anzeigen.
      Also 1 zur gemerkten Zahl addieren.
      4. Sind wir bei der letzten auf der Liste angelangt, fangen wir wieder von vorne bei 1 an.

      Rückwärts halt analog dazu, eben hinten (unten auf der Liste) anfangen und 1 von der
      gemerkten Zahl subtrahieren bis wir vorne (oben auf der Liste) angekommen sind.
      Dann wieder hinten anfangen.

      Dann kann man das fast 1:1 in Livecode übertragen.

    • #43035
      akrages
      Teilnehmer

      ...daß Du zu sehr "computerisch" gedacht hast!
      😉 Stimmt!

      -Stell Dir vor, wie Du es mit Stift und Papier machen würdest:-
      Das ist eine gute Idee und die werde ich in Zukunft anwenden. Danke dafür.

      So, ich habe es -dank deiner Hilfe- geschafft.

      Alles funktioniert so wie es soll.

      Ein paar Änderungen waren allerdings notwendig.
      Vielen Dank für deine Hilfe.

    • #43036
      Klaus Major
      Verwalter

      Stell Dir vor, wie Du es mit Stift und Papier machen würdest:-
      Das ist eine gute Idee und die werde ich in Zukunft anwenden. Danke dafür.

      Dazu hatte ich sogar mal einen Vortrag auf einer LC (damals noch Revolution) Konferenz auf Malta gehalten.
      Das war 2004: "Observing and analyzing real life situations in order to develop solutions in LiveCode.Creating a memory game to demonstrate how the steps necessary to solve problems are translated
      into the LiveCode programming language."

      Ein paar Änderungen waren allerdings notwendig.

      Dachte ich mir schon, hatte ich aus dem Kopf so geschrieben, ohne Deine App genauer zu kennen

      Vielen Dank für deine Hilfe.

      Gern geschehen!

Ansicht von 22 Antwort-Themen
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.