Startseite › Foren › Deutsches LiveCode-Forum › Pulldown-Menü bitte um Hilfe
- Dieses Thema hat 11 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 3 Jahren, 1 Monat von Klaus Major.
-
AutorBeiträge
-
-
Oktober 29, 2021 um 04:12 Uhr #38323
Hallo und Guten Morgen,
Ich bin absoluter Anfänger und habe in Zukunft vieleicht Fragen.
Ich habe ein Pulldownmenü was prima funktioniert. Nun möchte ich die Auswahl auf der selben Card in einem anderen Textfeld anzeigen und auflisten lassen!
Wie geht dass ???
Meine Versuche mit dem put-befehl scheitern.on menuPick tMenuItem
switch tMenuItem
case „Arbeitszimmer“
go to card „ArbeitszimmerAuswahl“
break
case „Badezimmer“
go to card „BadAuswahl“
break
case „Balkon“
go to card „BalkonAuswahl“
break
case „Esszimmer“
go to card „EsszimmerAuswahl“
break
case „Keller“
go to card „KellerAuswahl“
break
case „Kinderzimmer“
go to card „KinderzimmerAuswahl“
break
case „Küche“
go to card „KücheAuswahl“
break
case „Schlafzimmer“
go to card „SchlafzimmerAuswahl“
break
case „Wohnzimmer“
go to card „WohnzimmerAuswahl“
break
case „Benutzerdefiniert“
go to card „BenutzerdefiniertAuswahl“
break
end switch
end menuPickVielen Dank im Voraus für eure Hilfe.
-
Oktober 29, 2021 um 11:28 Uhr #38325
Hi Josh,
willkommen im Forum!
Bin mir nicht ganz sicher, was Du genau machen möchtest…
Auf Karte X ist Dein Pulldownmenu
Wenn der user einen Menüpunkt daraus auwählt, soll zur entsprechenden Karte gegangen
und der gewählte Menüpunkt soll in ein Feld auf Karte X geschrieben werden?Das ginge so:
on menuPick tMenuItem ## Das funktioniert, da wir uns auf Karte X befinden: put tMenuItem into fld "Dein Feld auf Karte X hier" ## dann geht es "normal weiter: switch tMenuItem case "Arbeitszimmer" ...
Ist es das, was Du meinst?
Wenn nicht, bitte näher erklären.Gruß
Klaus
-
Oktober 29, 2021 um 12:39 Uhr #38327
Noch ein paar Ergänzungen…
Du kannst ein Feld von überall mit Text füllen, solange die „Adresse“ stimmt!
Bist Du z.B. auf einer anderen Karte:
put the_text into fld "das feld" OF CD "name der karte mit dem Feld"
Oder gar in einem anderen Stack:
put the_text into fld "das feld" OF CD "name der karte mit dem Feld" OF STack "der stack mit der karte mit dem feld"
Es klingt, als wolltest Du eine Art „History“ in dem Feld aufbauen,
dann würde PUT XXX INTO ja jedes Mal den Inhalt des Feldes überschreiben.Wenn Du da etwas hinzufügen möchtest, geht das natürlich auch, mit PUT XXX AFTER…
Um leere Zeilen zu vermeiden, sollten wir überprüfen, ob das Feld noch leer ist:... if fld "history" = EMPTY then put tItemName into fld "history" else ## Es steht schon was im Feld, also machen wir einen neue Zeile: put CR & tItemName AFTER fld "history" end if ...
-
Oktober 29, 2021 um 12:41 Uhr #38329
Noch ein Hinweis:
Nach dem Einfügen von Code, diesen bitte wieder markieren und oben auf CODE klicken, dann bleibt die Formatierung mit Einrückungen etc. erhalten.on menuPick tMenuItem switch tMenuItem case "Arbeitszimmer" go to card "ArbeitszimmerAuswahl" break case "Badezimmer" go to card "BadAuswahl" break case "Balkon" go to card "BalkonAuswahl" break case "Esszimmer" go to card "EsszimmerAuswahl" break case "Keller" go to card "KellerAuswahl" break case "Kinderzimmer" go to card "KinderzimmerAuswahl" break case "Küche" go to card "KücheAuswahl" break case "Schlafzimmer" go to card "SchlafzimmerAuswahl" break case "Wohnzimmer" go to card "WohnzimmerAuswahl" break case "Benutzerdefiniert" go to card "BenutzerdefiniertAuswahl" break end switch end menuPick
-
Oktober 30, 2021 um 12:02 Uhr #38357
Hi Josch,
ich habe mal ein kleines Video erstellt, um zu zeigen, wie man ein ganz einfaches Pulldown-Menü zur Navigation erstellt und noch ein paar kleins Tipps für Groups, Backgrounds und das Setzen von Fensternamen: https://www.youtube.com/watch?v=kthULnhE06M
Hier das Skript aus dem Button:
on menuPick pChosenItem go to card pChosenItem put "Du bist auf Karte" && pChosenItem into field "Title" set the title of the current stack to pChosenItem end menuPick
Happy Skripting
Torsten -
Oktober 30, 2021 um 13:38 Uhr #38359
Hallo zusammen,
vielen Dank erst einmal für die ausfürliche Hilfe.
Ich werde eure Tips lesen, begreifen und testen. Werde mich später mit einem Feedback zurück melden. -
Oktober 30, 2021 um 14:50 Uhr #38361
So, nun bin ich ein kleines Stück weiter… habe geschrieben und getestes . aber nicht alles verstanden.
Nun werden mir die Räume in einem seperaten Feld angezeigt, auch in einer Liste (untereinander)
Mein Problem ist das nur ein ausgewählter Raum angezeigt wird unzwar „doppelt“Beispiel: Arbeitszimmer
ArbeitszimmerIch benötige aber eine Liste aller zuvor gewählten Räume
Beispiel: Arbeitszimmer
Badezimmer
Balkon
EsszimmerFür euch sicher kein Problem, für mich eine (noch) unlösbare Aufgabe.
on menuPick tMenuItem
put tMenuItem into Field „RaumListe“
if Field „RaumListe“=EMPTY then
put tMenuItem into Field „RaumListe“
else
put CR & tMenuItem AFTER Field „RaumListe“
end if
switch tMenuItem
case „Arbeitszimmer“
go to card „ArbeitszimmerAuswahl“
break
case „Badezimmer“
go to card „BadAuswahl“
break
case „Balkon“
go to card „BalkonAuswahl“
breakVielen Dank schon jetzt, für Rat und Tipps
Josch -
Oktober 30, 2021 um 15:05 Uhr #38363
Hi Josh,
mit Deinem Skript überschreibst Du das Feld jedes mal zuerst mit dem Menuitem, dann noch einmal, nachdem Du geprüft hast, ob das Feld leer ist, was es nciht ist, da Du soeben das Menuitem reingeschrieben hast! 🙂
on menuPick tMenuItem ## Diese Zeile weg und es kommt Freude auf! :-) ## put tMenuItem into Field "RaumListe" ## ERST prüfen, DANN reinschreiben! if Field "RaumListe"=EMPTY then put tMenuItem into Field "RaumListe" else put CR & tMenuItem AFTER Field "RaumListe" end if ...
-
Oktober 30, 2021 um 21:57 Uhr #38378
Guten Abend Herr Major,
vielen Dank für Deine (Ihre) Hilfe.
Es klappt wunderbar, bin total happy!
Morgen geht es weiter mit programmieren – da liegen noch viele Steine im Weg. 🙂 -
Oktober 30, 2021 um 22:07 Uhr #38380
Gern geschehen und wir duzen uns hier. 🙂
Morgen geht es weiter mit programmieren – da liegen noch viele Steine im Weg.
OK, ich bin hier, wenn Du Hilfe brauchst!
-
Oktober 31, 2021 um 18:18 Uhr #38405
Hallo Klaus,
meine Steine die im Weg liegen werden immer mehr 🙂
da ich überhaupt nicht der englischen Sprache mächtig bin, fällt es mir schwer bei so viel Hilfe die richtige zu finden.da es mit dem pulldown-Menü und der auflistung wunderbar klappt möchte ich weiter kommen und lernen.
1. Bei einer erneuten Auswahl aus dem pulldown-Menü soll der Text kein zweites mal in der „RaumListe“ erscheinen, besser wäre keine doppelte Auswahl im pulldown-Menü möglich.
2. Wenn ich diese Card erneut (Programm erneut starte) öffne soll der Inhalt vom Feld „RaumListe“ (Contents) leer sein.
Wie soll das gehen, das kann Livecode sicher nicht [lach laut]
Befehl: empty, clean, clear … keine AhnungIch bedanke mich schon jetzt für deine Hilfe!
P.S. Gibt es eigentlich die Möglichkeit sich in deutsch besser mit der Materie zu beschäftigen?
-
Oktober 31, 2021 um 18:43 Uhr #38407
Hi Josh,
leider gibt es so gut wie keine Literatur über LC in deutsch, sorry.
Zu Deinen Problemen.1. Hier ist es einfacher, zu prüfen, ob ein Menuitem schon im Feld drin ist.
Das erledigen wir mit LINEOFFSET, das liefert uns die Zeilennummer (oder 0)
in der sich ein String in einem Feld/Variable befindet.on menuPick tMenuItem ## Wir prüfen als erstes, ob tMenuItem in dem Feld befindet, dann EXITen wir in dem Fall. ## Also wir verlassen den Handler: if lineoffset(tMenuItem,fld "RaumListe") <> 0 then exit menupick end if ## tMenuItem nicht im Feld, also weiter im Text: ## ERST prüfen, DANN reinschreiben! if Field "RaumListe"=EMPTY then put tMenuItem into Field "RaumListe" else put CR & tMenuItem AFTER Field "RaumListe" end if ...
2. Im Stackskript im „openstack“ Handler diese Zeile hinzufügen.
Bei Bedarf einen „on openstack“ Handler hinzufügen, wenn noch nicht vorhanden:on openstack ## Dein Kram hier, sofern vorhanden... ## ... put EMPTY into fld "RaumListe" of cd 1 ## Oder auf welcher Karte sich das Feld genau befindet: end openstack
Gruß
Klaus
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.