Wörter in einer anderen Card ersetzen mit Option Menu

Startseite Foren Deutsches LiveCode-Forum Wörter in einer anderen Card ersetzen mit Option Menu

Schlagwörter: , ,

Ansicht von 5 Antwort-Themen
  • Autor
    Beiträge
    • #25212
      Anonym
      Inaktiv

      Hallo Zusammen,

      ich hab eigentlich ein ziemlich simples, aber mich schon überforderndes Problem:

      Ich möchte im Option Menu eine Auswahl treffen, diese soll dann in der nächsten Card ein Wort in einem vorhandenen Text ersetzen.
      Das ganze habe ich so versucht:
      on menuPick pItemName
      switch pItemName
      case „Çambası“
      replace “Taskiran” in field „1“ of card „Card2“ with „Çambası“
      end switch
      end menuPick

      Leider vergebens 🙁
      was mache ich falsch?

      Danke im voraus

    • #25214
      Klaus Major
      Verwalter

      Merhaba Ali,

      willkommen im Forum!

      Ganz wichtig:
      NIEMALS ein Objekt in LC mit einer Nummer benennen!
      -> field „1“
      wird dann hier von LC als
      -> field 1
      interpretiert, auch wenn es das zweite Feld ist!
      Zur Not ein Präfix vorstellen, also fld „f1“ oder so.

      Im Prinzip ist Dein Skript korrekt, nur die Reihenfolge stimmt nicht. 🙂
      So klappts:

      ...
      replace “Taskiran” with "Çambası" in field 1 of card "Card2"
      ...

      🙂

      Gruß

      Klaus

      • #25219
        Anonym
        Inaktiv

        Hallo Klaus,

        danke für Deine Hilfe, jetzt bin ich ein Schritt weiter. Es gibt keine Fehlermeldung mehr.
        Allerdings passiert nichts… Ich wähle im Option Menu den Punkt „Çambası“ aus, doch der Text in Card2 bleibt gleich (das Wort was ich ersetzt haben möchte bleibt leider gleich).

    • #25220
      Klaus Major
      Verwalter

      Hm, ich habe es hier nachgestellt und fand das hier wie gewünscht in Feld 1 auf meiner Karte 2:

      Feld 1 vorher:
      replace Taskiran with Çambası in field 1 of card „Card2“
      replace Taskiran with Çambası in field 1 of card „Card2“

      Feld 1 nachher:
      replace Çambası with „Çambası“ in field 1 of card „Card2“
      replace Çambası with „Çambası“ in field 1 of card „Card2“

      Mein Skripüt:

      on menuPick pItemName
         switch pItemName
            case "Çambası"
               replace "Taskiran"  with "Çambası" in field 1 of card 2
               break
         end switch
      end menuPick

      Schick mir mal eben den Stack, ich gucke mal schnell rein:
      klaus AT major-k.de

      Gruß

      Klaus

      • #25222
        Anonym
        Inaktiv

        Hallo Klaus,

        unfassbar aber mit deinem Skript hat es geklappt. Lag das am fehlenden „break“?

    • #25223
      Klaus Major
      Verwalter

      Echt? Na, super! 😀

      Nein, am fehlenden BREAK liegt es nicht, das kommt erst ins Spiel,
      wenn Du mehr als einen CASE abhandeln willst.

      AHA!
      Ich hab’s, in Deinem Skript sind die Anführungszeochen um “Taskiran” keine erlaubten
      ASCII Zeichen, sondern ASCII -> 210 und nicht wie benötigt ASCII -> 34.
      Das passiert des öfteren beim Kopieren und Einfügen.
      Sieht man leider ganz schlecht, aber ich bin ja Brillenträger! 😀

      Gruß

      Klaus

      • #25225
        Anonym
        Inaktiv

        Ach du meine Güte 🙂

        Danke Dir vielmals Klaus, ich war schon am verzweifeln.

        Ich wünsche dir (falls wir uns bis dahin nicht mehr lesen) ruhige Feiertage.
        Bleibt gesund und schönen Abend noch

        Gruß
        Ali

      • #25282
        Anonym
        Inaktiv

        Hallo Klaus,

        nach dem das ganze mit Option Menu super geklappt hat (danke hierfür) habe ich ein neues, aber ziemlich ähnliches Problem:

        Bei Option Menu musste wir nur eine Auswahl von 3 Items programmieren.. Was ist allerdings wenn ich keinen Option Menu button habe, sondern ein Textfeld?
        Aus der Card Hauptseite steht ein Textfeld, dieser Inhalt soll eine Stelle des Textfeldes in der nächsten Card „Card2“ ersetzen. Bislang ohne Erfolg

        replace „Hidayet Öztürk’ün“ with the text of „Yakini“ in field „mesaj“ of card Card2

        Hast du vielleicht eine Idee

        Gruß
        Ali

    • #25285
      Klaus Major
      Verwalter

      Hi Ali,

      vielleicht fehlt hier nur die richtige „Adresse“! 🙂

      ...
      replace "Hidayet Öztürk'ün" with (the text of FIELD "Yakini" of cd "Hauptseite") in field "mesaj" of card "Card2"
      ## Eigennamen (Strings) IMMER in Anführungszeichen! Das muss mal gesagt werden! :-D
      ## Die Klammern sind nicht unbedingt nötig, aber manchmal ganz gut zum Verständnis.
      ...

      Mit der richtigen Adresse kannst Du auf jedes Objekt in jedem Stack auf der gesamten Festplatte zugreifen und manipulieren!

      Gruß

      Klaus

      • #25294
        Anonym
        Inaktiv

        Hallo Klaus,

        Ich danke dir erneut! Hat geklappt… Eigentlich ist das ziemlich logisch, wenn man die Adresse der Zeile, die ersetzt werden soll hinschreibt, aber die Adresse der Zeile die das ganze ersetzen soll vergisst kann das ja nichts werden.

        Ich komme der Sache näher,

        danke nochmals

        schönen Abend

        Gruß
        Ali

    • #25292
      Klaus Major
      Verwalter

      Falls Dein Englisch halbwegs passabel ist, empfehle ich Dir wärmstens diese Stacks für die Basics von LC:
      http://www.hyperactivesw.com/revscriptconf/scriptingconferences.html

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