Programmierte Button erstellen

Startseite Foren Deutsches LiveCode-Forum Programmierte Button erstellen

Ansicht von 11 Antwort-Themen
  • Autor
    Beiträge
    • #21347
      Oliver122
      Teilnehmer

        Hallo zusammen,

        ich war lange weg, brauche aber jetzt mal wieder Hilfe.

        Ich möchte programmierte Button in einer grp erstellen.
        Die Button Art und Löschen erstellt er, auch als grp.

        weiterhin benutze ich folgendes Script

        edit script of btn "Löschen" of grp ("gruppe"&x)

        und

        on editscript theObject 
           
           
        end editscript

        In den Löschen Button der grp soll nur das Script, dass er beim Betätigen die grp löscht.
        “gruppe”&x, daher weil die Nummer, bei jeder neuen Gruppe um eins erhöht wird, damit der Name unterschiedlich ist.

        Jann mir nun einer helfen, wie ich das Script in den btn bekomme?

        ich würde es zuerst mit

        delete grp ("gruppe"&x)

        versuchen. Dieses Skript muss aber im btn Löschen stehen. Wie bekomme ich das da rein.
        Normalerweise stet das dann ja unter on mouseUp, was auch erst in das Skript muss.

      • #21349
        Klaus Major
        Administrator

          Hallo Oliver,

          mal sehen, ob ich alles richtig verstanden habe:
          1. Du möchtest per Skript diverse Gruppen inklusive Inhalt erstellen.
          2. Pro Gruppe soll es EINEN Button geben, der nach Klick DIESE Gruppe löscht.

          Soweit korrekt?

          OK, Du benötigst kein “edit script of…” o.ä., wenn Du ein Behavior erstellst und das den “Löschen” Buttons zuweist.

          gib dem Behavior dieses Skript:

          on mouseup
            put the short name of the owner of me into tGruppe
            ## -> gruppeX!
          
            ## Der Trick:
            send "delete grp tGruppe" to this cd in 1
          end mouseup

          Zuweisung des Verhaltens:

          ...
          create btn "Löschen" in grp ("gruppe" & X)
          set the behavior of btn "Löschen" of grp  ("gruppe" & X) to the long ID of btn "löschen_behavior"
          ...

          Mit dem Befehl “delete grp xxxxx” im Button wirst Du einen ERROR bekommen, weil LC kein Objekt löschen kann, desesn Skript gerade abgearbeitet wird!
          Aber siehe oben für die Lösung…

          Gruß

          Klaus

        • #21350
          Oliver122
          Teilnehmer

            Hallo Klaus,

            danke für deine Antwort.

            Ja die Fragestellung hast du richtig verstanden.

            Also ich habe die Zeile

            set the behavior of btn "Löschen" of grp ("gruppe" & X) to the long ID of btn "löschen_behavior"

            dann direkt in das Script zur Erstellung der grp gepackt.

            aber wie kann ich dem behavior dein erstes Script denn geben?

          • #21351
            Oliver122
            Teilnehmer

              Was ist überhaupt sie Long ID?

            • #21352
              Klaus Major
              Administrator

                Den Button, der das Behavior enthält, solltest Du manuell erzeugen, der ist quasi Grundaustattung Deines Stacks.

                Aber wenn nicht, niemand hindert Dich daran, so etwas zu skripten:

                ...
                put "on mouseup" & CR & "put the short name of the owner of me into tGruppe" & CR & "send" && QUOTE & "delete grp tGruppe" & QUOTE && "to this cd in 1" & CR & "end mouseup" into tSkript
                set the script of btn "löschen_bahavior" to tSkript
                ...

                🙂

                • #21353
                  Klaus Major
                  Administrator

                    Was ist überhaupt sie Long ID?

                    You can say You to me! 😀
                    Probiere es doch einfach aus oder schau im Dictionary nach!

                • #21354
                  Oliver122
                  Teilnehmer

                    Danke für deine Hilfe.
                    Es klappt noch nicht ganz. Muss mal schauen. Ich schreibe eventuell noch was dazu.

                    Er wirft immer den Fehler no such objekt aus
                    bei

                    set the behavior of btn "Löschen" of grp ("gruppe"&x) to the long ID of btn "Löschen_behavior"

                    Der Button Löschen kann nicht von Beginn an da stehen, weil die gesamte grp erst mit einem
                    Klick auf einen anderen btn erstellt wird. Daher auch X. Ich befürchte aber da ein Problem

                  • #21355
                    Klaus Major
                    Administrator

                      Der Button “Löschen_behavior” MUSS nicht innerhalb der Gruppe sein, DARF er auch nicht,
                      da ein einziger Button als Behavior ausreicht und er auch nicht gelöascht werden soll!

                      Der Button “Löschen_behavior” muss NICHT sichtbar sein, er kann irgendwo im Stack liegen!

                      Aber vorhanden sollte er schon sein, damit Du diese Meldung nicht mehr siehst.
                      Du kannst auch einem Objekt mit dem Inspector ein Behavior an die Backe kleben!

                      Soweit klar? 🙂

                    • #21356
                      Oliver122
                      Teilnehmer

                        Danke,

                        funktioniert zwar noch nicht ganz, aber jetzt habe ich das Prinzip verstanden

                      • #21357
                        Klaus Major
                        Administrator

                          Was hast Du denn bisher und welchen Error bekommst Du damit?

                        • #21358
                          Oliver122
                          Teilnehmer

                            Habe das jetzt genau so gemacht und dem behavior Button das Script gegeben

                             on moudeUp
                               put the short name of the owner of me into tGruppe
                               send "delete grp tGruppe" to this cd in 1
                            end mouseUp

                            tGruppe habe ich auch testweise durch (“gruppe”&x) ersetzt

                            Ergebnis ist
                            Er erstellt die Gruppe aber wenn ich auf den btn Löschen drücke, ändert er das Script auf

                            delete grp gruppe

                            und wirft folgende Fehlermeldung aus:

                            button “löschen_behavior”: execution error at line 2 (Chunk: can’t find background), char 1

                          • #21359
                            Klaus Major
                            Administrator

                              Typo: on mouDeup

                            • #21360
                              Klaus Major
                              Administrator

                                OK, klappt aber wohl nicht so…

                                OK, das hier ist getestet und funktioniert!
                                Kartenskript:

                                command löschen was
                                   delete grp was
                                end löschen

                                Und das Behavior Skript ändern in:

                                on mouseUp
                                   put the short name of the owner of me into tGruppe
                                   send "löschen tGruppe" to this cd in 1
                                end mouseUp
                            Ansicht von 11 Antwort-Themen
                            • Du musst angemeldet sein, um auf dieses Thema antworten zu können.