Startseite › Foren › Deutsches LiveCode-Forum › hintereinander passieren lassen
- Dieses Thema hat 13 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 4 Jahren, 7 Monaten von Klaus Major.
-
AutorBeiträge
-
-
Februar 29, 2020 um 17:56 Uhr #19285
Hallo Leute,
ich komme im Moment nicht weiter. Die ersten 3 Abläufe hintereinander funktionieren, wie sie sollen.
Aber dann? Ich habe da einen unsichtbaren Fehler. Er wird mir nicht angezeigt.
Hier ist mein Versuch:
if the hilited of widget “lesen” then
revSetSpeechSpeed 210
revSpeak fld “Geschichte”
if the hilited of widget “wechsel” then
set the backgroundColor of fld “led1” to red
end if
end if
Kann da mir jemand weiterhelfen.
Die Sache mit dem <Geschichte vorlesen> über einen Schalter funktioniert.
Habe ich den nächsten Schalter, benannt “Wechsel” eingeschaltet, wird mir die Geschichte immer wiederholt, bis ich “beide” Schalter ausschalte. die led1 geht aber nicht an.
Danke GerryS -
Februar 29, 2020 um 18:17 Uhr #19288
Hallo, die Geschichte wird so oft vorgelesen, bis alle > end if< durch sind. Das natürlich nur bei eingeschalteten Schalter. Wenn ich , wie gesagt, den >Wechselschalter< aus lasse liest sie es mir nur einmal vor.
Gruß GerryS -
Februar 29, 2020 um 19:54 Uhr #19290
Müsste es nicht so aussehen?
if the hilited of widget "lesen" then ... else if if the hilited of widget "wechsel" then ... endif
Gruß – Werner –
-
Februar 29, 2020 um 23:04 Uhr #19291
Hm, revspeak ist ja laut Dictionary nicht “blocking”, daher verstehe ich das Ganze nicht so ganz. Ich habe das hier mal nachgestellt, das Feld wird sofort rot und die Story wird vorgelesen, EINMAL!?
Probier doch mal so rum:
... if the hilited of widget "lesen" then if the hilited of widget "wechsel" then set the backgroundColor of fld "led1" to red end if revSetSpeechSpeed 210 revSpeak fld "Geschichte" end if ...
macOS 10.14.6, LC 9.5.1 INDY
-
März 1, 2020 um 14:46 Uhr #19303
Hallo Werner,
danke für die Antwort.Wenn ich das >else< zwischen den Ablauf der beiden Schalter setze, reagiert der Ablauf nicht und bleibt sogar vor dem “lesen-Schalter” stehen und hat keine Lust vorzulesen. Der “Wechselschalter” macht mir auch keine Led’s an.
Hallo Klaus, auch Danke.
executing at 1:11:56 PM
Type Chunk: no such object
Object Timer down
Line set the backgroundColor of fld “led1” to red
Hint uhrAktualisierenIch hab den Wechselschalter mit der Led zwischen den Vorleseschalter gesetzt, da hat er auch vor den beiden letzten Schalter angehalten.
Er hat also die Led nicht gefunden.
Es wäre ja auch langweilig, wenn alles glatt durchlaufen würde. ??
Vielleicht ist der Fehler ja auch VOR diesem Ablauf zu suchen. -
März 1, 2020 um 15:09 Uhr #19305
Wie ich schrieb, das klappt hier alle ganz vorzüglich!
Der Tausch der Reihenfolge hat nichts gebracht?
Hast Du es ausprobiert?
Deine Fehlermeldung weist auf ein nicht vorhandens LC Objekt hin!Bitte poste doch mal Dein gesamtes involvieretes Skript und setze es bitte in die CODE Tags! 😎
-
März 2, 2020 um 18:39 Uhr #19360
`on uhrAktualisieren
revSetSpeechSpeed 270
put fld “uhr” into zeitwert
subtract 1 from zeitwert
put zeitwert into fld “uhr”
revSpeak fld “uhr”
add 1 to fld “meineZahl”
if zeitwert > 0 then
send uhrAktualisieren to me in 1 seconds
else
subtract 30 from fld “meineZahl”
put the foregroundColor of the button “W” into the fld “au”
set backgroundColor of stack “Timer down” to white
set the foregroundColor of fld “uhr” to black
set the foregroundColor of fld “Schalter” to black
set the foregroundColor of fld “meineZahl” to black
set the foregroundColor of fld “vorlesen” to black
set the foregroundColor of fld “Geschichte” to black
beep
if the hilited of widget “farben” then
set backgroundColor of stack “Timer down” to blue
set the foregroundColor of fld “uhr” to white
set the foregroundColor of fld “Schalter” to white
set the foregroundColor of fld “meineZahl” to white
set the foregroundColor of fld “vorlesen” to white
set the foregroundColor of fld “Geschichte” to white
end if
if the hilited of widget “lesen” then
revSetSpeechSpeed 210
revSpeak fld “Geschichte”
end if
end if
end uhrAktualisierenHallo Klaus,
hast du das so gemeint mit Code Tags? -
März 2, 2020 um 18:53 Uhr #19361
Hallo Klaus,
wie meinst du das mit den CODE Tags.
Ich hab da oben das “Code” angeklickt und es hierhin kopiert. Das sah aber komisch aus? -
März 2, 2020 um 18:58 Uhr #19362
Hi Gerry,
hast du das so gemeint mit Code Tags?
seufz, ein Blick auf meinen vorletzen Post sollte diese Frage beantworten…
Aber was genau funktioniert denn an dem Skript nicht?
Und wie lang ist denn Deine “Geschichte”?
Da Du ja “uhrAktualisieren” jede Sekunde abfeuerst.Ich habe mal ein paar Optimierungen vorgenommen, bite auf die Kommentare achten.
on uhrAktualisieren ## Immer wichtig, wenn wir mehr als ein oder zwei Sachen auf dem Montor aktualisieren. ## Das beschleunigt den Bildschirmaufbau, Gilt BESONDERS für Felder! lock screen revSetSpeechSpeed 270 put fld "uhr" into zeitwert subtract 1 from zeitwert put zeitwert into fld "uhr" revSpeak fld "uhr" add 1 to fld "meineZahl" if zeitwert > 0 then ## Strings, dazu gehören auch die Namen der zu SENDenden Handler, immer in Anführungszeichen! send "uhrAktualisieren" to me in 1 seconds else subtract 30 from fld "meineZahl" ## DEFAULT-Wert setzen: put BLACK into tFarbe ## KEIN THE bei der Ansprache von LC Objekten! ## Das benötigen wir bei Custom Properties! ## put the foregroundColor of the button "W" into the fld "au" put the foregroundColor of button "W" into fld "au" set backgroundColor of stack "Timer down" to white beep if the hilited of widget "farben" then ## Die andere Option: put WHITE into tFarbe set backgroundColor of stack "Timer down" to blue end if ## Jetzt erst alle Felder einfärben: ## In einem REPEAT LOOP, spart Tipparbeit! :-) repeat for each item tFeld in "uhr,Schalter,meineZahl,vorlesen,Geschichte" set the foregroundColor of fld tFeld to tFarbe end repeat if the hilited of widget "lesen" then revSetSpeechSpeed 210 revSpeak fld "Geschichte" end if end if ## Alles fertig, Vorhang wieder auf: unlock screen end uhrAktualisieren
Und so sieht das mit den CODE Tags aus! 😎
Rein logisch gibt es aber in dem Skript keinen Grund nicht zu funktionieren!?Gruß
Klaus
-
März 2, 2020 um 22:48 Uhr #19371
Hallo Klaus,
also das rein logische ist ja das, was mich nicht dahinter kommen lässt. Ich habe zuerst einen “kleinen Stack” mit “einzelnen” Funktionen ausprobiert. Wenn das auch bei mir funktioniert, und nicht nur im Buch, mit kleinen Änderungen, dann habe ich es auf einem größeren Stack aufgebaut.
Zuerst habe ich mir eine Zahlenreihe bis Null runtersagen lassen.
Gleichzeitig wurde eine Minuszahl hochgezählt und am Schluss wieder abgezogen.
Bei Null wechselte ein zuvor eingestellter Schalter die Hintergrundfarbe umgeschaltet.
War dieser Schalter nicht auf EIN, dann ändert sich die Farbe wieder, wenn sie vorher anders war. Sonst blieb die Farbe, wie sie war.
Ein anderes Quadrat bekam eine Zufallsfarbe, welche auf einem weiteren Rechteck die 3 Zahlen der Farben angeben.
Nach erreichen der Null vom ersten Ablauf wurde, wieder durch einen Schalter eingestellt, eine kleine Geschichte erzählt. 19 Wörter.
Und DANN SOLLTEN 2 leds, eingeschaltet mit einem Schalter, abwechseln in verschiedenen Farben blinken.
Aber mit den verschiedenen Farben blinken ist noch nicht so weit.!!?? Beim anschalten dieses Schalters
wurde mir die Geschichte so oft vorgelesen, bis die Anzahl der “end if” durch war bis zum Ende.
Die leds wurden nicht einmal hell. WO ist die Logik geblieben.
Das ist nun das komische dabei.
Danke Klaus, dass du bis hierhin durchgelesen hast. -
März 2, 2020 um 22:53 Uhr #19372
Hi Gerry,
hmmm, very FUNKY! 😀
Wenn Du magst, darfst Du mir gerne den Stack zuschicken und ich gucke da mal rein!
Hierhin bitte: klaus AT major-k.deGruß
Klaus
-
März 2, 2020 um 23:07 Uhr #19373
Hallo Klaus,
wie bekommst du die Skipte so hin, dass sie auch manierlich aussehen.
Ich weis es nicht.
wie bekomme ich es an diese Adresse ?
Hast du auch eine E-Mail Adresse?
Ich hätte da noch ein paar Fragen, welche aber hier wohl gar nicht von Interesse sind.
Einige Stellen im Buch verstehe ich bislang gar nicht.
Gruß
Gerd -
März 2, 2020 um 23:12 Uhr #19374
Hi Gerd,
Skript in LC kopieren
Hier PASTEn
Dann das Skript hier wieder markieren
Dann oben auf CODE klicken
Das wars 🙂Tja, meine Emailadresse steht oben ja, aber für ROBOTS nicht lesbar! 😎
Wenn Du selber nicht drauf kommst:
Das AT mit @ ersetzen und die Leerzeichen entfernen, fertig ist eine gültige Emailadresse! 😀Und denk dran, ich besitze das Buch von Hauke nicht!
Gruß
Klaus
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.