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
      Keymaster

      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
      Keymaster

      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
        Keymaster

        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
      Keymaster

      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
      Keymaster

      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
      Keymaster

      Typo: on mouDeup

    • #21360
      Klaus Major
      Keymaster

      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.