0

sleep() leider nicht mit Ipad

Ich habe kürzlich den sleep() Befehl entdeckt und mich riesig gefreut, denn ich hatte schon länger eine Idee für solch eine Funktion.
Buttons reagieren auf dem Ipad sehr schnell. Man bekommt deshalb u.U. garnicht mit, ob man den getippt hat oder nicht.
Ich hatte deshalb in der Webversion für meine Buttons mit der sleep() Funktion einen delay eingebaut, so dass der Button nach Auslösen kurz verschwindet. Das wäre ein Super Feedback ob man gedrückt hat oder nicht. Leider musste ich dann feststellen, dass auf dem Ipad sleep() garnicht geht. Schaaaaaaaaaade!

 

Gruß
Oliver M.

12 Antworten

null
    • Dirk_Pulver_2020
    • vor 3 Jahren
    • Gemeldet - anzeigen

    der ist aber nicht dokumentiert.... und und ich habe mir vor 3 Tagen einen gebaut... :-( Der geht aber dann immer

    Pause(3) -> Wartet ca. 3 Sekunden:

    function Pause(s : number) do
     let z := 35000000 * s;
     for i from 1 to z do
      “warten....”
     end
    end;

    • Icarus_Ralf_Becker
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Oliver, wie hast du diesen Befehl entdeckt?

    VG Ralf

    • CitizenDeveloper
    • Oliver_meerkamp
    • vor 3 Jahren
    • Gemeldet - anzeigen

    @ Dirk

    Danke für den Trick mit der Funktion, funktioniert aber auf dem Ipad leider auch nicht.

     

    @ Icarus

    Ich nutze immer die Ninox Referenz im Webinar Team, dort ist sleep() dokumentiert.

    • Dirk_Pulver_2020
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ja - in welcher ? In der 001 nicht - nur in der 002.... welche ist denn nun die führende Information ???

    • Dirk_Pulver_2020
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Cool - habe da die eval() Funktion gefunden !!!!!!! Warum sagt einem das niemand - das ist ja ein Gamechanger....!! :-) :-)

    • Peter_Gaede.2
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Dirk, die Dokumentation ist schon lange nicht wirklich vollständig. Ich verstehe da auch die Leute hinter Ninox nicht: Das Produkt ist super, dahinter fängt es an dunkel zu werden. Auch das Forum ist ein Beispiel dafür. 

    • Icarus_Ralf_Becker
    • vor 3 Jahren
    • Gemeldet - anzeigen

    @Dirk

    Stichwort “Gamechanger”: vielleicht fehlt mir das gerade etwas die Kreativität, aber für welche Anwendungsfälle produziert diese Funktion denn solche “Einschläge”?

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Mit eval() lässt sich ein String als Formel bzw. Funktion interpretieren und ausführen. Da dieser String auch Variablen enthalten kann, lassen sich damit quasi dynamische Funktionen realisieren, also in Abhängigkeit einer Bedingung bspw. entweder FeldA oder FeldB ansprechen. Die Syntax lautet:

    eval(STRING, ID)

    Wobei der STRING einer gültigen Ninox-Formel oder -Befehlszeile entsprechen muss. ID steht für den Datensatz, auf den sich die Berechnung bezieht (in den meisten Fällen wohl “this”). In der einfachsten Form könnte man auf diese Weise eine Art Taschenrechner-Funktion realisieren, in dem man die Zahlen und Operatoren einfach nacheinander in ein Textfeld tippt und dieses dann beim eval() als STRING einsetzt. Aber es ermöglicht eben auch das kontextabhängige Generieren komplexerer select-Abfragen u. ä. 

    Insofern ist der Begriff Gamechanger sicher sehr plakativ, aber nicht maßlos übertrieben. Auch, wenn wahrscheinlich die wenigsten Nutzer sowas jemals brauchen werden. ;)

    • Dirk_Pulver_2020
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Danke, jep genau darum geht es. Ich hatte in der Vergangenheit schon Situationen, in denen ich das gut gebrauchen hätte können. Man kann so den User sogar in Prozesse eingreifen lassen, die eigentlich eine Codeänderung nötig machen würden. Aber es stimmt - ist schon für eher was für fortgeschrittene Anwendungen.

    • Dirk_Pulver
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Kann mir jemand bestätigen, dass mit der eval-Funktion nur lesende Aktionen möglich sind ? Also man  kann damit kein Feld beschreiben, wenn dieses in der Formel drin ist. Oder mache ich da was falsch ?

    Bsp.:
    t := "Feld := 3 + 5";

    eval(t,this);

    • Dirk_Pulver
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Man kann wohl auch Variablen definieren und verwenden, aber offensichtlich lassen sich keine Zeichenkettenoperationen durchführen wie z.B. text := text + "...." um diese dann als Variable zusammenzusetzen

    • Dirk_Pulver
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Also das hier ging einwandfrei aus einem Textblock heraus:

    let t:=text(workdays(Date,'Finishing date'));
    let t2 := Description
    alert(t+", "+t2);
    sleep(1000);
    let b := dialog("Dialog","Input",["Ja","Nein"]);
    if b = "Ja" then b := "Hurrah!" end;
    alert(b);

Content aside

  • vor 3 JahrenZuletzt aktiv
  • 12Antworten
  • 1492Ansichten