Startseite › Foren › Deutsches LiveCode-Forum › mit per Skript erstellen Objekten weiterarbeiten ..
- Dieses Thema hat 16 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 4 Jahren, 7 Monaten von
Klaus Major.
-
AutorBeiträge
-
-
August 21, 2020 um 08:52 Uhr #22320
Hallo Gemeinde,
eine Frage, wieder einmal.
Wenn ich per Skript z. B. einen Button erstelle wie kann ich danach mit diesem Button weiterarbeiten?
Ich meine ich kann ihn ja vorher auf der Card mit Rechtsklick nicht auswählen und dann auf edit Script klicken weil er ja zu diesem Zeitpunkt noch nicht da ist. Aber wie mache ich das, dass ich z. B. mit on mouseUp usw weiterarbeiten kann??LG Immanuel
-
August 21, 2020 um 09:35 Uhr #22322
Hi Immanuel,
du kannst dem neuen Button einfach ein Skript zuweisen, mit
set the script of button "Neuer Button" to InDieserVariableIstDasSkript
Danach kannst Du dem Button z.B. einen Mausklick simulieren, in dem Du folgenden Befehl abschickst:
send "mouseup" to button "Neuer Button"
LG
Torsten -
August 21, 2020 um 09:47 Uhr #22324
Hallo Torsten,
edit öffnet mir ja nur den Scripeditor. Ich möchte aber z. B. einen Button per Script erstellen (dynamisch) und der User soll auf den Bettel klicken und es soll etwas geschehen.
So im Normalfall erstelle ich einen Butten und gehe auf den Button Rechtsklick und „Script edit“ danach mouseUp usw.
Mein Problem; der Button existiert ja noch nicht sondern wird ja erst durch irgend eine Aktion (irgendein Klick auf irgendeinen Button) generiert. So und danach soll der User auf eben diesen frisch generierten Butten klicken und es soll wieder etwas passieren.
LG Immanuel
oh da habe ich zu schnell geantwortet
-
August 21, 2020 um 17:08 Uhr #22333
leider funktionier das nicht so.
bei
set the script of button "Neuer Button" to InDieserVariableIstDasSkript
kommt diese Fehlermeldung:
card „KalenderCard“: execution error at line 27 (Chunk: no such object), char 1hier mein Skript:
on cre_button local tCount put 5 into tCount set the visible of fld"table_1" to false repeat tCount times lock screen if Zahl < 1 then put 1 into Zahl end if create btn "testButton" put "testButton"&Zahl into btn_name put "Button "&Zahl into btn_label set the label of btn"testButton" to "Button "&Zahl set the name of btn"testButton" to btn_name --set the text of btn"testButton" to "Button / Feld "&Zahl set the left of btn btn_name to 100 set the top of btn btn_name to 100 unlock screen put 50 * Zahl into Weg put Zahl +1 into Zahl move btn btn_name relative 0,Weg in 0.02 seconds put Zahl set the script of button "btn_name" to dasSkript end repeat put 0 into Zahl end cre_button
nicht wundern ist nur zum lernen und testen
LG Immanuel
-
August 21, 2020 um 17:28 Uhr #22336
Das obige Skript hat aber nur 26 Zeilen!
Wo meckert LC denn nun?Desweiteren:
Zahl ist nicht definiert, dito dasSkriptAusserdem ein MOVE über 0,02 Sekunden kann kaum ein Auge erfassen, hier wäre eventuell ein SET THE LOC … besser?
Probiere das mal aus mit THE TEMPLATEBUTTON:
(THE TEMPLATEXXXXX ist die Vorlage, nach der neue Objekte (create xyz) erstellt werden,
sehr praktisch, wei man hier sehen kann)!on cre_button local tCount put 5 into tCount set the visible of fld "table_1" to false ## Hier vielleicht besser? put 0 into Zahl repeat tCount ## times ## TIMES kann man weglassen lock screen if Zahl < 1 then put 1 into Zahl end if ## LEERZEICHEN erhöhen die Lesbarkeit! put "testButton" & Zahl into btn_name put "Button" && Zahl into btn_label ## Zuerst ein paar Properties des TEMPLATEBUTTONs setzten: set the name of the templatebutton to btn_name set the label of the templatebutton to btn_label set the left of the templatebutton to 100 set the top of the templatebutton to 100 ## Und JETZT den Button erstellen mit den oben gesetzten Props create btn btn_name unlock screen put 50 * Zahl into Weg ## put Zahl +1 into Zahl ## Schneller: add 1 to Zahl move btn btn_name relative 0,Weg in 0.02 seconds put Zahl ## Wo ist dasSkript definiert? set the script of button btn_name to dasSkript end repeat put 0 into Zahl ## Guter Stil: reset the templatebutton end cre_button
-
August 21, 2020 um 17:35 Uhr #22339
bei set the script of button „btn_name“ to dasSkript
gibt es so etwas in dieser Richtung?
on mouseup of button"btn_name" end mouseup
-
August 21, 2020 um 17:38 Uhr #22340
Nein, das geht nicht, da meckert LC zu recht! Wie kommst Du darauf?
Ein ganz normales Buttonskript ist hier gefordert:on mouseup ## tu dies ## mach jenes end mouseup
-
August 21, 2020 um 17:43 Uhr #22342
das heißt ich kann keine Objekte dynamisch erstellen und diese z. B. anklickbar machen?
-
August 21, 2020 um 18:16 Uhr #22343
Doch, das schliesst sich doch nicht aus!
Ich verstehe Deine Bedenken nicht, wenn Du manuell einen Button erstellst und ihm ein Skript schreibst, schreibst Du doch auch nicht:
on mouseup of btn "dieser hier" ...
Sondern einfach „on mouseup…“ und LC weiß, was zu tun ist, wenn man diesen Button klickt!?
-
August 21, 2020 um 18:43 Uhr #22345
ja aber wenn ich den Button erst per Script erstelle ist er ja noch nicht da. Und somit kann ich ja nicht hergehen wie bei Buttons, die ich links aus den Tools raus auf die Card ziehe, und per rechtsklick / edit Script / on mouseup …… schreiben weil der Button ja noch nicht da ist.
-
August 21, 2020 um 19:00 Uhr #22347
Aber Du erstellst doch erst den Button (create button …) und etwas später weist Du ihm ein Skript zu, wo ist das Problem?
... ## Und JETZT den Button erstellen mit den oben gesetzten Props ## 1. create btn btn_name ## JETZT IST ER DA! unlock screen put 50 * Zahl into Weg ## put Zahl +1 into Zahl ## Schneller: add 1 to Zahl move btn btn_name relative 0,Weg in 0.02 seconds put Zahl ## 2. set the script of button btn_name to dasSkript ...
-
August 21, 2020 um 20:28 Uhr #22354
es tut mir leid aber das fress ich nicht.
ich erstelle den Button (ja hab zum Spaß gleich 6 gemacht)
so aber wie mache ich jetzt den Button anklickbar?
wo kommt das „set the script of button btn_name to dasSkript“ hin?
und was muß dann in „dasSkript“ rein?
ich weiß ich stell mich an wie ein Bär zum tanzen aber ich kapiere es nicht.
-
August 21, 2020 um 20:33 Uhr #22355
Schau Dir mein Skript oben an, in dem Loop wird alles gemacht.
Was soll Dein Button denn machen nach einem Klick?
Dementsprechend sieht dasSkript dann aus.Einfaches Beispiel, wir nehmen das Skript hier:
on mouseup beep end mouseup
... ## Dieses Skript gibt nur einen BEEP aus, aber das Prinzip sollte klar sein: put "on mouseup" & CR & "beep" & CR & "end mouseup" into dasSkript ... create btn btn_name ... set the script of button btn_name to dasSkript ...
-
August 21, 2020 um 22:08 Uhr #22359
Danke jetzt habe ich es gefressen. Danke für deine Geduld Klaus.
Gute Nach für heute
-
August 21, 2020 um 22:25 Uhr #22360
SAUBER! 🙂
-
August 24, 2020 um 12:39 Uhr #22410
Entschuldigung eine Frage hätte ich noch.
wenn ich statt dem beep was anderes mit Variablen usw machen möchte wie schreibt man das dann?
weil so geht es nicht:
put "on mouseup" & CR & \ "beep" & CR & \ ## dass hier geht "answer Hallo "&Zahl& CR & \ ## aber das nicht "end mouseup" into dasSkript set the script of button btn_Cname to dasSkript
-
August 24, 2020 um 15:17 Uhr #22412
Ah, OK, das geht dann so etwas aufwendiger:
... ## Wir packen den ANSWER String in eine Variable: put QUOTE & ("Hallo" && Zahl) & QUOTE into answerZahl ## Dasmuss nun natürlich auch in den LOOP: put "on mouseup" & CR & "beep" & CR & "answer" && answerZahl &CR & "end mouseup" into dasSkript set the script of button btn_Cname to dasSkript ...
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.