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
-
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; -
Oliver, wie hast du diesen Befehl entdeckt?
VG Ralf
-
@ 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.
-
Ja - in welcher ? In der 001 nicht - nur in der 002.... welche ist denn nun die führende Information ???
-
Cool - habe da die eval() Funktion gefunden !!!!!!! Warum sagt einem das niemand - das ist ja ein Gamechanger....!! :-) :-)
-
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.
-
@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”?
-
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. ;)
-
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.
-
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);
-
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
-
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 4 JahrenZuletzt aktiv
- 12Antworten
- 1500Ansichten