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
        Administrator

          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
              Administrator

                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
                Administrator

                  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
                    Administrator

                      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
                        Administrator

                          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
                            Administrator

                              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
                                Administrator

                                  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
                                    Administrator

                                      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
                                        Administrator

                                          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
                                            Administrator

                                              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
                                              Administrator

                                                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
                                                  Administrator

                                                    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.