Startseite › Foren › Deutsches LiveCode-Forum › Aktuelles Bild in globales Array speichern. › Antwort auf: Aktuelles Bild in globales Array speichern.
Hi Tobias,
OK:
Allerdings hab ich kein Element im Grid oder im behavior script gefunden das die Bezeichnung „theDataA“ trägt.
theDataA ist nur ein beliebiger Name für die Variable, die das ARRAY für -> the dgdata of grp xyz enthält. Der Name ist völlig egal, wie eigentlich jeder Name für eine Variable.
set the filename of img id 3506 to theImageFolder & line x of gAllPics
GANZ WICHTIG! Klammern setzten beim Zusammensetzen von Objek und/oder Dateinamen!
-> set the filename of img id 3506 to (theImageFolder & line x of gAllPics)
Damit zwingen wir LC zuerst den „Ausdruck“ in Klammern aufzulösen, so daß ein gültigher Dateipfad entsteht.
Und echte und aussagekrätige NAMEN für Objekte sind wirklich wesentlich einprägsamer als -> trallala ID 4711 😎
Sowas:
...
## put 2 into i
## Oder innerhalb eines REPEAT Loops
put "blabla" into fld "einfeld mit Nummer" & i
...
Gibt einen Error, daß es kein Objekt mit dem Namen -> einfeld mit Nummer
gibt. Tut es auch nicht, aber:
…
put „blabla“ into fld („einfeld mit Nummer“ & i)
..
funktioniert, Sofern wir wirklich ein Feld namens -> einfeld mit Nummer2
auf der Karte haben. So arbeitet LC halt und wir sollten dem Rechnung tragen.
Hier hast Du mich wohl falsch verstanden, Du sollst nur PROPERTIES mit THE ansprechen:
on mouseup
global gAuswahl
put THE filename of img "DAS GROSSE BILD" into gAuswahl
if THE filename of img "KLEINES BILD AUF DER LETZTEN KARTE" of card "saveScreen" = gAuswahl then
answer "Dieses Bild ist schon ausgewählt."
else
answer "Bild gewählt"
set the filename of img "KLEINES BILD AUF DER LETZTEN KARTE" of card "saveScreen" to gAuswahl[<strong>1</strong>]
end if
end mouseup
🙂
Hier würde ich vielleicht KEIN Array nehmen, sondern eine einfache Variable mit 10 Zeilen Inhalt, ein Dateipfad pro Zeile. Vielleicht so:
on mouseup
global gAuswahl
put THE filename of img "DAS GROSSE BILD" into tAuswahl
## Checken, ob Bild schon mal ausgewählt wurde:
if lineoffset(tAuswahl,gAuswahl) <> 0 then
answer "Dieses Bild ist schon ausgewählt."
## Ich vermeide verschachtelte IF THEN Klauseln wie der Teufel das Weihwasser! 8-)
## So ist alles wesentlich überschaubarer und man muss nicht nachzählen ob wir wirklich
## auch für jedes IF ein END IF am Ende getippt haben!
exit mouseup
end if
answer "Bild gewählt"
## Nun an gAuswahl anhängen:
if gAuswahl <> EMPTY then
## Wir fügen tAuswahl als NEUE Zeile an!
put CR before tAuswahl
end if
put tAuswahl after gAuswahl
## Hier vielleicht prüfen, ob schon 10 Bilder gewählt wurden
## if the num of lines of gAuswahl = 10 then
## tu was in dem Fall
## end if
end mouseup
Dann später „on preopencard“ der Karte „savescreen“ in einem LOOP alle Dateinamen für die Bilder auf der Karte „en bloc“ setzen. Capisce?
Gruß
Klaus
