Verfasste Forenbeiträge
-
AutorBeiträge
-
Hallo Klaus,
mobileSetKeyboardType "alphabet"
funktioniert leider nicht. Egal ob ich es auf die Card direkt lege oder nur in das Mouse Event des betreffenden Buttons der den Dialog aufruft.
Ich habe jetzt erstmal die Sonderzeichen und Zahlen via regex rausgenommen, aber mit emojis wird man ja blöde…
Deine Variante klingt sehr elegant, weiß gerade nicht weshalb es nicht geht. Muss das ins Stackscript rein?
Grüßle
Super toll…
Hier nochmal meine Fortschritte. Ich kann nun Bilder wählen und auch wieder abwählen.
Bild wählen:
on mouseup global gAuswahl put filename of img id 3506 into tAuswahl ## Checken, ob Bild schon mal ausgewählt wurde: if lineoffset(tAuswahl,gAuswahl) <> 0 then answer "Dieses Bild ist schon ausgewählt." exit mouseup end if ## Hier prüfen wir ob die Variable schon 10 Zeilen enthält if the num of lines of gAuswahl = 10 then answer "Sie können maximal 10 Bilder pro Set wählen." else ## Nun an gAuswahl anhängen: show image "check" ## Wenns nicht leer ist packt er noch ein return (CR) davor if gAuswahl <> EMPTY then ## Wir fügen tAuswahl als NEUE Zeile an! put CR before tAuswahl end if ## Jetzt packt er die Zeile "tAuswahl" rein put tAuswahl after gAuswahl end if end mouseup
Bild abwählen:
on mouseup global gAuswahl put filename of img id 3506 into tAuswahl # Ist das aktuelle Bild in der Variable put lineoffset(tAuswahl,gAuswahl) into tLine if tLine = 0 then #wenn nein answer "Dieses Bild ist nicht ausgewählt" else #wenn ja # wimpel verstecken hide image "check" # Zeile leer machen put empty into item 1 of line tLine of gAuswahl # gAuswahl neu sortieren ohne Leerzeilen filter gAuswahl without EMPTY end if #put gAuswahl into field tTest end mouseup
Vielleicht hilft es ja dem ein oder anderen…
Vielen Dank Klaus, ich bin somit fertig 😀
Grüße Tobias
Huhu Klaus,
Ich musste erst CLEAR nachschlagen
naja, manchmal bin ich einfach kreativ.
Ich probiere lieber rum anstatt einmal zu lesen… 😐
So mach ich mir gerne mal die Arbeit schwer.Ich bin für heute erstmal mega happy. Jetzt fehlt nur noch das abwählen der Bilder, dass bekomme ich dank deiner Hilfe bisher auch noch hin.
Mit besten Grüßen
Tobias
Herrlich wie einfach das doch gehen kann, Danke vielmals Klaus.
Und wieder geht der Pokal raus an dich.
Um hier nochmal meine dilettantischen Gehversuche mit LC zu dokumentieren, meine Rangehensweise mit einem extra Textfile =)
on openCard:global x add 1 to x clear URL ("file:" & specialFolderPath("documents") & "/check.txt")
Button:
on mouseUp global gAuswahl global x if x = 11 then answer "Es wurden zehn Bilder ausgewählt" else put filename of img id 1027 into line x of URL ("file:" & specialFolderPath("documents") & "/check.txt") put URL ("file:" & specialFolderPath("documents") & "/check.txt") into field "fieldTest" end if add 1 to x end mouseUp
Geil oder 😀
Das hat funktioniert, allerdings ist deine Variante wesentlich eleganter.
Vielen Dank nochmal
Tobias
Hallo Klaus,
also die Pfade hab ich natürlich entsprechend auf
put files (specialfolderpath("external documents")) into gAllPics
geändert. Bis gestern Abend hatte ich aber noch einen Denkfehler drin, bzw. hat das Befüllen nicht funktioniert weil hier immer noch die einzelnen Desktoppfade im Grid hinterlegt waren. Nachdem ich die Zellen wieder leer gemacht hatte lief es dann.Ich hab ja “n” selbst als Zähler vergeben somit war mir das auch bewusst. Allerdings hab ich kein Element im Grid oder im behavior script gefunden das die Bezeichnung “theDataA” trägt.
Zum Bahnhof: 😉
Also unter dem großen Bild ist ein Button, wenn man den drückt, soll der aktuelle absolute Bildpfad also bspw.:
/storage/emulated/0/Android/data/com.meine-app.bildauswahl/files/DSC01526.jpg
in einem Array gespeichert werden.
Anschließend ändere ich über die Navigation den Bildpfad, sprich ich lasse mir mit:
set the filename of img id 3506 to theImageFolder & line x of gAllPics
ein anderes Bild groß anzeigen.
Den Pfad dieses Bildes möchte ich jetzt auch dem Array hinzufügen wenn ich den Button drücke.Also was ich sehe, kann ich auswählen. Was ich sehe und schon ausgewählt ist kann ich nicht mehr auswählen.
Button “auswählen”on mouseup global gAuswahl put filename of THE img "DAS GROSSE BILD" into gAuswahl[<strong>1</strong>] if filename of img "KLEINES BILD AUF DER LETZTEN KARTE" of THE card saveScreen = gAuswahl[<strong>1</strong>] then answer "Dieses Bild ist schon ausgewählt." else answer "Bild gewählt" set the filename of THE img "KLEINES BILD AUF DER LETZTEN KARTE" of THE card saveScreen to gAuswahl[<strong>1</strong>] end if end mouseup
JA im Moment geht das eben immer nur für ein Bild wenn ich den Button drücke. Deswegen hab ich auch den Zähler fett gemacht. Wenn ich den jetzt durch ne Variable ersetze, überschreibt er mir bei jede push einfach nur den ersten Eintrag. Baue ich ein repeat Konstrukt in den Button schreibt er mir einfach 10 mal das erste Bild rein. Ich bräuchte sowas wie “Immer wenn… mach das…”
Vielen Dank für deine Mühe, ich neige dazu die Dinge unnötig kompliziert zu umschreiben…
Grüße Tobias
Huhu,
ich habe das DataGrid automatisch befüllt. Funktioniert aktuell leider nur auf dem Desktop. Für Android hab ich es noch nicht geschafft. Sieht so aus:
global gAllPics global theImageFolder global gCount put files("C:/Users/JessiLi/Desktop/Kinder/Bilder") into gAllPics put "C:/Users/JessiLi/Desktop/kinder/Bilder/" into theImageFolder get the number of lines of gAllPics put it into gCount put 1 into i put 1 into n repeat for gCount times put theImageFolder & line i of gAllPics into theDataA[n]["Image URL"] add 1 to i add 1 to n end repeat
Ich weiß es sieht wüst aus, aber es funktioniert erstmal. Leider hab ich noch keine Ahnung was “theDataA[n]” genau ist, ich vermute eine Reihe im Grid. Ich hab mir das mal so aus dem Data Grid Sampler, zu finden in den LC Lessons, zusammen gebastelt.
Eine Frage hätte ich jetzt noch zu was anderem.
Angenommen ich habe einen Button “auswählen”, immer wenn ich den drücke soll er mir den aktuellen Namen, der ja durch die Navigation bereits bekannt ist, des großen Bildes in ein Array speichern. Im Anschluss möchte ich eine Liste mit zehn ausgewählten Bildern.Wie geht das am Besten?
Ich habe es noch nicht geschafft einen Button sinnvoll mit einem repeat zu verknüpfen.
Also in etwa so, Achtung verm. kein Livecode:
put 1 into i
if button “auswählenBTN” of THE card “gallery1” is pressed then
put the filename of image id 1027 into line i of gAuswahlArray
add 1 to i
end ifWenn ich die schleife in den Button also innerhalb des on mouseup lege kommt logischerweise nur müll raus.
Ich habe echt keine Ideen mehr, normal müsste auch noch ein if verschachtelt werden welches die Warnung bei 10 ausgewählten Bildern raushaut.
DANKE vorweg
Tada Tobias
Huhu Klaus und Torsten,
Vielen Dank erstmal das Ihr euch die Arbeit macht und antwortet.
Also ich werde mir das Video mal ansehen, allerdings hab ich bis morgen erstmal Rechnerverbot auferlegt bekommen. ?
Die Geschichte mit den gruppierten Buttons ist übrigens die beste Lösung für die letzte Seite wo die ausgewählten Bilder nochmal klein zu sehen sind.
Die Vorbereitung des Grids mit anschließender dynamischer Befüllung wird wohl bei mir noch ein bisschen dauern. Sobald ich da weiter bin, lass ich euch es wissen.
Merci und frohe Ostern in die Runde
Grüße Tobias
das versetehe ich schon, ist saber keine Grund, nicht trotzdem effektiv zu arbeiten. Das kommt Dir ja bei späteren Projekten nur zu Gute!
Ausserdem überschätze nicht die Kapazitäten eines Tablets.
Eine JPG Datei ist vielleicht < 1 MB, aber nur die Datei!
Entpackt im RAM können die bis zu 10 oder 15 MB groß sein.
Das mal 10 mal eventuell noch mal 3 und schon sind gut 300 MB vom kärglichen RAM belegt im Tablet.Da hast du natürlich völlig Recht und ich möchte auch nicht liederlich erscheinen. Das habe ich auch schon live festgestellt als ich in einer anderen Testversion versucht habe die Skalierung der Bilder innerhalb der App anzupassen. Das hat zwar geklappt aber enorme Ressourcen benötigt, teilweise haben größere Bilder eine halbe Minute gebraucht um korrekt angezeigt zu werden.
Zu 1. wie gesagt, hier hilft eine clevere Namensgebung enorm!
Zu 2 und 3, Datagrids sind die komplexesten Objekte in LC!
Hier vielleicht gar nicht notwendig, weil wir ja nur ein “Grid” für 10 Bilder benötigen. Denke 10 gruppierte Buttons reichen hier schon.Ich denke ich verstehe deinen Ansatz, aber ich habe mich vermutlich schlecht ausgedrückt. Die zehn Buttons schau ich mir auf jeden Fall für die Auswertung, sprich die letzte Seite an. Allerdings hab ich vermutlich vorher das Problem ein Grid nutzen zu müssen. Die Quelle der Bilder ist ein Ordner der leicht 150 Bilder enthalten kann und alle sollen klein angezeigt werden, weshalb ich bisher auf mehrere Cards gesetzt habe.
Da ich aber aufgrund des Seitenverhältnisses des Vollbildes maximal 5-6 Thumbnails auf eine Karte bringen kann, müsste ich um die 20-25 Karten mit je 5-6 Thubnails bauen. Da klickt sich keiner durch. Deswegen dachte ich ich lade den Ordnerinhalt in ein scrollbares grid mit einer Spalte und je nachdem auf welche Reihe der User klickt, das Bild dieser Zelle groß angezeigt wird.
Ich kann die Bilder leider auch nicht durchnummerieren, die sollen Ihre original Namen behalten so wie sie aus der Kamera kommen. 🙁
Vielen Dank erstmal bis hier, die Buttons schau ich mir jetzt mal an.
Ich tüftele weiter…
Grüße Tobias
Hallo Klaus,
schön dich zu lesen. Also vorweg, löse dich von dem Gedanken, dass es eine App für alle, möglichst kompatibel, responsive und performant sein soll.
Die App soll ausschließlich auf einem einzigen Tablet in einer Grundschule laufen. Die Kinder sollen von den geladenen Bildern 10 stk auswählen. Diese Auswahl der Bilder (Array) und der Vorname des Kindes soll anschließend in einem Textfile gespeichert werden.
Ansonsten werde ich deine Vorschläge natürlich berücksichtigen und zukünftig auf die korrekte Syntax achten. 😉
Ich bin jetzt schon mal froh das ich
1. Bilder auslesen kann
2. Bilder aus einem Array auch anzeigen kann. (Leider noch nicht in einem scrollbaren Grid)
3. Zwischen den Bildern hin und her springen kann.
4. Ein Bild auswählen kann
5. Einen Bildpfad speichern und wieder abrufen kann.
6. die globalen Variablen deklarieren und wiederfinden kann.Probleme habe ich nach wie vor bei:
1. Schleifen sinnvoll nutzen um ein Array zu füllen
2. Ein Datengrid automatisch mit den Bildern zu füllen
3. Die Formatierung eines DatengridsIch hab hier zum Verständnis mal ein kleines Video von der App wie sie jetzt ist.
Das gefällt mir schon super, nur würde ich gerne mehrere Bilder auswählen können und eben auch die Auswahl entsprechend anzeigen und in das text file legen.
Sowie die kleinen Bilder jeweils in Grids anzeigen, weil die halt scrollbar sind. Aktuell muss ich für 4 Bilder eine extra Karte machen und das nervt.Thank you for your patience
kind regards Tobias
Hallo Klaus,
danke nochmal für deinen letzten Hinweis.
Hierzu hab ich folgende Idee:
put the formattedwidth of Bild1 into bOriginal put the formattedheight of Bild1 into hOriginal put 1300 into sollBreite put 800 into sollHöhe if bOriginal > hOriginal then if hOriginal > sollHöhe then put (sollHöhe/hOriginal)*bOriginal into sollBreite end if else if bOriginal > sollBreite then put (sollBreite/bOriginal)*hOriginal into sollHöhe end if end if
Obiges hab ich noch nicht getestet, aber ich möchte damit sowohl Hoch als auch Querformat Bilder an meinem Bildobjekt ausrichten, je nachdem. Kann man das theoretisch auch in eine Funktion packen? Unterstützt LC Funktionen? 😀
Aktuell versuche ich aber mittels einer Schleife die einzelnen Lines aus dem “allPics” Array in Variablen zu packen, um ggf später die einzelnen Bildobjekte automatisch zu befüllen, vermutlich auch wieder mittels einer for Schleife.
Ich habe jetzt mit:
put the number of lines of allPics into sumAllPics
Schon mal die Anzahl der Wiederholungen bzw. die Anzahl der Bilder im Ordner ermittelt.Wie würde man denn jetzt in Livecode weiter vorgehen?
Also:
put line 1 of DieBilder into Bild1
put line 2 of DieBilder into Bild2
put line 3 of DieBilder into Bild3
… usw …
soll in eine kleine Schleife, mittels der Anzahl der Bilder automatisiert werden.Ich hab jetzt das Gefühl hier mehrere Denkfehler zu machen und ggf ne Endlosschleife zu bauen:
put line 1 of allPics into Bild repeat for sumAllPics times line +1 answer Bild add 1 to Bild end repeat
Stehe wieder auf dem Schlauch.
Danke vorweg.
Grüße Tobias
Wow,
vielen lieben Dank Klaus, du bist mein persönlicher Held heute. Echt Respekt für deine Geduld, du erklärst die Zusammenhänge ja nicht zum ersten Mal.
Ich musste zwar ein bissel basteln aber nu läuft der Spaß langsam an.
Hier der code bisher:
on mouseUp if the environment = "mobile" then # Ordnerinhalt holen put files (specialfolderpath("external documents")) into DieBilder # nur jpgs erlauben filter DieBilder with "*.jpg" # Dateinamen im Textfeld anzeigen put DieBilder into field "test" # Wenn external documents leer ist Warnung if DieBilder = EMPTY then answer "Kein Bild gefunden!" exit mouseup end if # Bilder in den Bildobjekten anzeigen. set the filename of img id 1019 to (specialfolderpath("external documents") & "/" & line 1 of DieBilder) set the filename of img id 1020 to (specialfolderpath("external documents") & "/" & line 2 of DieBilder) set the filename of img id 1021 to (specialfolderpath("external documents") & "/" & line 1 of DieBilder) set the filename of img id 1022 to (specialfolderpath("external documents") & "/" & line 2 of DieBilder) else answer files "Bitte ein Bild auswählen:" with type "Jpeg,PNG|jpg,png|" put it into DieBilder put it into field "test" end if end mouseUp
In der app gibt es jetzt ein Textfeld, welches die Dateinamen im App Ordner/Files anzeigt.
Es gibt 4 leere Bilder (Da muss man erstmal drauf kommen) die während des Scriptes umbenannt werden und somit auch die Bilder angezeigt werden können.
Und natürlich den Start BTN der das Ganze auslöst.So jetzt muss ich nur mal sehen wie ich das ganze sinnvoll formatiert bekomme, sodass die Bilder auch anständig aussehen.
Ich gehe davon aus, dass ich den Bildobjekten, welche ja im Grunde nur als Masken fungieren, auch ein on mouseUp verpassen kann.
Bin erstmal happy und mache mal weiter.
Vielen Dank, so langsam schließt sich der Kreis…
Grüße Tobias
Jap,
das der Button das script ausführt hab ich verstanden.
Du wirst sicher lachen aber so sieht das gerade bei mir aus und ich komme nicht klar…
on mouseUp if the environment = "mobile" then put files(specialfolderpath("external-documents")) into DieBilder put it into field test (funktioniert garnicht) set the filename of img 1 to (specialfolderpath("external-documents") & "/" & line 1 of DieBilder) set the filename of img 2 to (specialfolderpath("external-documents") & "/" & line 2 of DieBilder) #put it into DieBilder #import paint from file DieBilder else answer files "Bitte ein Bild auswählen:" with type "Jpeg,PNG|jpg,png|" put it into DieBilder put it into field test (zeigt mir die Dateien mit Pfad an) #import paint from file DieBilder (Das funktioniert, allerdings unformatiert, hast du ja in dem anderen thread schon erläutert) end if end mouseUp
Hm, ich glaub ich mach Schluss für Heute, ich check’s wahrscheinlich nicht mehr.
Bildobjekt, da hast du was gesagt.
Selbiges fehlt mir vermutlich, weshalb ich auch null komma nix angezeigt bekomme.
Was brauch ich denn genau auf der card, damit das Bild auch angezeigt wird?
Grüße
Hallo,
wie kann ich jetzt kontrollieren was genau in der Variable “DieBilder” steht?
Wie kann man denn vorgehen wenn man einfach nur zwei zufällige Bilder auf die card bringen will? Ich stehe hier total auf dem Schlauch.
mit
set the filename of img 2 to (specialfolderpath("external-documents") & "/" & line 2 of DieBilder)
ändere ich doch nur die Bezeichnung oder irre ich?
Grüße
Wenn “Klaus” drauf steht, ist auch “Klaus” drin! ?
😀 lol
Danke erstmal für die Mühe, ich schau mir das mal näher an.
Grüße Tobias
-
AutorBeiträge