Close Stack open Stack (Android 8.1)

Startseite Foren Deutsches LiveCode-Forum Close Stack open Stack (Android 8.1)

Ansicht von 19 Antwort-Themen
  • Autor
    Beiträge
    • #14023
      albin0
      Teilnehmer

        Huhu,

        kurz zu meiner mini App.

        – Main Stack (Startbildschirm mit Infos und einem Button zu Sub Stack 1)
        – Sub Stack 1 (Bildergalerie mit Vergrößerungsfunktion und Auswahlmöglichkeit einzelner Bilder max 10)
        – Sub Stack 2 (Letzter Screen mit abschließenden Infos und einem Textfeld sowie einem Speichern Button)

        Kurz zur gewünschten Funktion:

        Eine kleiner Bildbetrachter für Kinder, diese sollen ihre zehn Lieblingsbilder auswählen können.
        Nach dem Drücken des ersten Button landet man in der Bildgalerie, in der man max zehn Bilder auswählen kann. Die Dateinamen der ausgewählten Bilder sollen dabei in einer Variable (Array) abgelegt werden. Die Bilder sollen automatisch aus einem Verzeichnis in ein Datagrid geladen werden.
        Im letzten Screen sollen die Kinder ihren Vornamen angeben, dieser wird dann zusammen mit dem Array in eine Textdatei geschrieben.

        Ergebnis in der Datei sollte etwa so aussehen:
        Tom | 2.jpg | 5.jpg | 8.jpg
        Lea | 2.jpg | 8.jpg | 12.jpg | 15.jpg
        Ben | 1.jpg | 9.jpg | 12.jpg | 16.jpg | 20.jpg | 23.jpg

        Soweit die Idee.

        Nun die Fragen:
        Ist das mit Livecode umsetzbar?
        Warum wird der Mainstack unter Windows im Test (1. Button) geschlossen und der Galerie Stack geöffnet, unter Android 8.1 im Livetest aber nicht?

        Hier der Code für den 1. Button auf dem Mainstack:
        on press

        close stack “main”
        open stack “galerie”

        end press

        Vielen Dank vorweg.

        Tobias

      • #14025
        Klaus Major
        Administrator

          Hallo Tobias,
          1.

          on press
            close stack "main"
            open stack "galerie"
          end press

          Du meinst sicher “on mouseup”, oder?
          Auf der mobilen Platform kann immer nur EIN Stack zur selben Zeit angezeigt werden, daher siehst Du eigentlich nicht, daß natürlich der Befehl “close stack xyz” den Stack auch wirklich schliesst!

          2. Ja, klingt alles durchaus machbar in LC.
          Allerdings benötigst Du nicht wirklich Substacks hierfür.
          Ein paar weitere Karten im Mainstack reichen sicher aus.
          Der user bemerkt das sowieso nciht.

          Gruß

          Klaus

        • #14026
          Klaus Major
          Administrator

            P.S.
            Um unter Windows das selbe “Benutzererlebnis” wie unter Android zu haben,
            lass die Zeile:

            close stack “main”

            einfach weg. 🙂

          • #14027
            albin0
            Teilnehmer

              Hallo Klaus,

              herzlichen Dank für die prompte Begrüßung und die schnelle Antwort.

              Du meinst sicher “on mouseup”, oder?

              Absolut… Danke dir 🙂

              Ich bin halt neu, aber ich lerne schnell.

              So, die Navigation funzt jetzt und ich habe gelernt den Projektmanager zu verstehen.

              Vielen Dank und vermutlich bis morgen.

              Grüße Tobias

            • #14033
              albin0
              Teilnehmer

                Guten Morgen Zusammen,

                und wieder hänge ich aufgrund der fehlenden Erfahrung mit LC.

                Ich möchte jetzt bei gedrücktem BTN, dass der Inhalt eines Verzeichnisses (In diesem Fall 10 Bilder) in einer Tabelle oder einem Grid angezeigt wird.

                Ich habe zu diesem Thema ein Bsp von Klaus gefunden, leider komme ich hier nicht wirklich weiter.

                Ich kann mir jetzt schon mal das Verzeichnis auswählen welches ich auslesen möchte.
                Mit put Folder zeigt er mir auch den Pfad via Message Box an und mit put File listet er die Bilder auf.

                on mouseUp
                   open card "galerie"
                   set the defaultfolder to "C:/Users/JessiLi/Desktop/Kinder/Bilder/groß"
                   #put defaultfolder
                   put the Files
                end mouseUp

                Wie geht man nun am besten vor wenn man alle Bilder formatiert in einem grid anzeigen lassen möchte?

                Außerdem habe ich versucht mit einer der IF von Klaus beide Pfade abzufangen, funktioniert bei mir leider nur mit dem Windows Pfad, im Livetest mit Android 8.1 bleibt der Pfad leer.

                if 
                   the environment = "mobile" then   (Das scheint nicht zu funktionieren)
                   mobilePickPhoto "library"
                else
                   
                   ## User darf ein JPG oder PNG auswählen:
                   answer file "Bitte ein Bild auswählen:" with type "Jpeg,PNG|jpg,png|"
                   put it into tFile

                Bräuchte da mal noch nen Denkanstoß, bitte bitte…

                Gruß Tobias

              • #14034
                Klaus Major
                Administrator

                  Moin Tobias,

                  keine Bange, das wird schon! 🙂
                  LC ist sehr sehr mächtig, kommt allerdings mit einer entprechenden Lernkurve daher.

                  Hier ein paar Tips:

                  on mouseUp
                     ## open card "galerie"
                     ## Offizielle Syntax für Cards***:
                     go cd "galerie"
                     ## set the defaultfolder to "C:/Users/JessiLi/Desktop/Kinder/Bilder/groß"
                     ## put defaultfolder
                  
                     ## seit Version 8 gibt es eine neue Syntax, eine Funktion, 
                     ## so daß man sich nicht mehr THE DEFAULTFOLDER setzen muss:
                     put files("C:/Users/JessiLi/Desktop/Kinder/Bilder/groß")
                     ## put the Files
                  end mouseUp

                  ***Ich mag etwas penibel erscheinen, wenn ich immer auf die “offizielle” Syntax poche, aber ich habe festgestellt, daß LC mit jeder Version auch pingeliger wird, was “saloppe” Syntax angeht. Also warum das Schicksal herausfordern? Ist jedenfalls meine Devise 🙂

                  Hier bist Du auf dem richtigen Weg, aber es fehlt noch was:

                  ...
                  ## EINE Zeile!
                  if the environment = "mobile" then
                  
                     ## Du solltest unbedingt noch weitere Parameter angeben, nämlich wie groß
                     ## dieses Bild maximal auf der Karte erscheinen soll.
                     ## Ohne das verdeckt das Bild den ganzen Stack und jeder wundert sich :-)
                     mobilePickPhoto "library",300,300
                     ## Nun wird es maximal 300 Pixel breit oder hoch, 
                     ## wobei das Seitenverhältnis bebehalten wird
                  
                     ## Wenn der User ein bild gewählt hat, erstellt LC ein KOPIE
                     ## dieses Bildes als neues IMAGE Objekt auf der Karte!
                     ## Du kannst darauf zugreifen mit -> last image
                     ## Beispiel:
                     set the name of last image to "das userbild"
                  else
                     
                     ## User darf ein JPG oder PNG auswählen:
                     answer file "Bitte ein Bild auswählen:" with type "Jpeg,PNG|jpg,png|"
                     put it into tFile
                     ## Auf dem Desktop bekommst Du so erst einmal nur den Dateinamen.
                  ...

                  Falls Du des Englischen halbwegs mächtig bist, empfehle ich Dir diese Stacks,
                  um die Basics von LC zu verstehen:
                  http://www.hyperactivesw.com/revscriptconf/scriptingconferences.html
                  Die sind schon etwas älter, aber immer noch up-to-date.
                  Nur Widgets wirst Du darin daher nicht finden.

                  Gruß

                  Klaus

                • #14035
                  Klaus Major
                  Administrator

                    Hinweis:
                    Es ist eine gute Idee, für eine neue Frage einen neuen Thread zu eröffnen.
                    Ansonten endet das in einem Thread mit > 50 Postings (hatten wir hier auch schon),
                    den niemand mehr durchliest und das ist wenig hilfreich für andere User mit
                    ähnlichen Problemen.

                  • #14036
                    albin0
                    Teilnehmer

                      Hallo Klaus,

                      du scheinst ja immer online zu sein. 🙂

                      Vielen Dank für deine Mühe vorweg.

                      Falls Du des Englischen halbwegs mächtig bist, empfehle ich Dir diese Stacks,
                      um die Basics von LC zu verstehen:

                      Berlitz B2 ist schon ne Weile her, aber ich schau es mir gerne an.

                      Ich versuche mal mit deinen Tipps weiter zukommen. Ich habe halt leider aktuell nicht die Zeit eine langsame Lernkurve zu durchfahren, daher ja auch die Einfachheit der App.

                      Was die Thread-Erstellung angeht, gebe ich mir zukünftig Mühe.

                      Merci

                      Tobias

                    • #14037
                      Klaus Major
                      Administrator

                        Hi Tobias,

                        tja, ich bin seit langer Zeit arbeitslos und habe daher mehr Zeit als Geld.
                        Also immer schön fragen, ich habe eine Menge Antworten! 🙂

                        Auf meiner Website kannst Du gucken, was ich schon alles mit LC und seinen Vorfahren (MetaCard, Runtime Revolution, Revolution) programmiert habe: https://major-k.de
                        Den oberen Link klicken, der untere führt zu meiner Musikersite.

                        Gruß

                        Klaus

                      • #14038
                        albin0
                        Teilnehmer

                          Dear Klaus, 😉

                          ich bin auch arbeitslos und selbstständiger Fotograf im Nebenberuf, klasse das du so ehrlich bist.

                          Aktuell möchte ich einfach nur eine kleine offline App bauen, wo die Kinder sozusagen die besten Bilder für ein Kita Portfolio aussuchen können. Da ist nichts mit Bezahlerei oder E-Mail oder so. Einfach nur ne offline Gallerie im Kiosk Mode aufm Tablet. Ergebnis ist dann eben ein txt file (Kind mag das, kind2 mag das etc…)

                          Und ich habe eine Menge Fragen.

                          Aktuell funktioniert mobilePickPhoto "library",300,300

                          überhaupt nicht und ich kann mir nicht erklären woran das liegt…

                          Auf dem Desk klappt das mit der Auswahl wunderbar, nur im Livetest geht dieser Befehl nicht. Andere Kommandos funktionieren. Ich bekomme aber partout keine Bilder aus der Handygalerie geladen.

                          Uff…

                          Grüße Tobias

                        • #14039
                          Klaus Major
                          Administrator

                            Oh, pardon, mein Fehler, der Parameter für die maximale Breite/Höhe funktioniert nur unter iOS!

                            Ich besitze selber weder Handy, Tablet oder ähnliche Devices, noch entwickle ich für die mobile Platform. Daher kann ich sowas alles nur theoretisch beantworten und nicht selber testen.

                          • #14040
                            albin0
                            Teilnehmer

                              Kein Problem,

                              wäre ich selber erst in 12 1/2 Wochen drauf gekommen.

                              Ist die Angabe des Seitenverhältnisses, bei “mobilePickPhoto” zwingend nötig oder kann ich sie einfach weglassen?

                              Und wie kann ich alle Bilder der Galerie in ein grid laden?

                              Fragen über Fragen…

                              Wenn ich nerve, einfach sagen, dann müssen wir uns anders einigen 😀

                              Grüße Tobias

                            • #14041
                              Klaus Major
                              Administrator

                                Zur Not IMMER im Dictionary nachschlagen, daher beziehe ich auch meine Informationen.
                                Was heisst “zur Not”? Bitte IMMER dort nachlesen für weitere Infos. 😀

                                LC sorgt beim “Import” über mobilepickphoto selber für die Einhaltung des korrekten Seitenverhältnisses.

                                Datagrid
                                Tja, das ist leider das komplexeste Objekt in LC “wo gibt”! :-/
                                Ich würde ein paar Tage brauchen, um Dir das hier nur grob zu erklären, am besten, Du lädst Dir die Datagrid Docs als PF hier herunter: http://lessons.livecode.com/spaces/lessons/manuals/datagrid
                                Linke Seite unter “Topics” “Api and Properties” in 5 Punkt Schrift -> Download manual PDF.
                                Dann ungefähr 10 mal durchlesen und dann noch ein paar Mal. Dann die Beispiele darin nachbauen.

                                Falls es Dich tröstet, ich muss da auch jedes Mal nachlesen, wenn ich wieder mit Datagrids arbeite.

                              • #14042
                                albin0
                                Teilnehmer

                                  Huhu Klaus,

                                  evtl schieße ich auch ein wenig über das Ziel hinaus. Im Grunde brauche ich die Bilder ja gar nicht in ein Grid, Tabelle o.ä. laden.

                                  Ich nutze ja mit dem Befehl schon den native photo picker von Android, sofern er funktioniert.

                                  Aber wie bereits gesagt, der Befehl läuft bei mir ins Leere. Die apk hat die nötigen Rechte auf den Speicher und auch die Version 8.1 ist korrekt. Ausserdem sind SDK und Java ordentlich eingerichtet.

                                  Wie es aussieht kann ich atm mit dem Befehl unter Android 8.1 nichts reißen.

                                  Schade, ich recherchiere mal weiter.

                                  Lieben Dank

                                  Tobias

                                • #14043
                                  Klaus Major
                                  Administrator

                                    Ich hatte die Erklärung oben schon geliefert, aber offenbar nicht deutlich genug:

                                    ...
                                    ## Das hier:
                                    mobilePickPhoto "library",300,300
                                    ...

                                    funktioniert NUR auf einem iPhone oder iPad!

                                    Für Android Devices musst Du auf die Parameter verzichten, damit der Befehl funktioniert:

                                    ...
                                    mobilePickPhoto "library"
                                    ...
                                  • #14044
                                    albin0
                                    Teilnehmer

                                      Jupp,

                                      habe ich. Funktionierte bis eben dennoch nicht.

                                      Ich habe jetzt mal einen neuen Stack gemacht mit Oreo 8.0 und schwupp jetzt geht es.

                                      Danke dir.

                                    • #14045
                                      albin0
                                      Teilnehmer

                                        So, um das nochmal aufzuklären, es lag doch an den gesetzten Berechtigungen in den “Standalone Applikation Settings” und nicht an der Android Version.

                                        Ich habe jetzt mal alle radio buttons sowie haken bei App Berechtigungen gesetzt und nun funktioniert es auch unter Android 8.1.

                                      • #14046
                                        Klaus Major
                                        Administrator

                                          SAUBER! 🙂

                                        • #14047
                                          albin0
                                          Teilnehmer

                                            Jo, vielen Dank nochmal.

                                            Zum nächsten Punkt mach ich dann einen neuen Thread auf.

                                            Grüßle Tobias

                                          • #14048
                                            Klaus Major
                                            Administrator

                                              Wie sagt der Ami so schön: You are welcome! 🙂

                                          Ansicht von 19 Antwort-Themen
                                          • Du musst angemeldet sein, um auf dieses Thema antworten zu können.