Beispiele | | | | - Seite 1 - |
| Micha12334 | Hallo Leute, ich versuchte mal eine einfache App zur Gewichtskontrolle, zur Diskussion und zur Anschauung zu editieren. Schreib, was ist schlecht, zerreißt es, was könnte man besser machen. Ich weiß, was als erstes kommt: Klammern enfernen,....ok kommt noch. Habe alles auf meinen Tab Lenovo 2 und Samsung S6 getestet. Geht so einigermaßen... (Lenovo = A:5.01, S6= A:5.1.1)
//
// InfinityProfan Program
// Gewichtskontrolle v0.0.1
// created 2016-01-24
var grid =gui.grid(gui.hwnd,[2,5])
var text1 = "Gewichts- \n kontrolle \n in (kg) am: "
var altg = float(altg)
var neug = 0.00
var diff
var neug = float(neug)
var zeit1 = time(7)
var zeit2
var E
//var btnE = gui.button,[grid,2,5],"AUS",ende
altg = file.read("gewicht.txt")
zeit2= file.read("datum.txt")
gui.background(grid,rgb(50,50,50))
gui.background([grid,1,2],rgb(90,90,90))
gui.background([grid,2,2],rgb(90,90,90))
gui.background([grid,1,3],rgb(130,130,130))
gui.background([grid,2,3],rgb(130,130,130))
gui.background([grid,1,4],rgb(150,150,150))
gui.background([grid,2,4],rgb(150,150,150))
gui.background([grid,1,5],rgb(130,130,130))
gui.background([grid,2,5],rgb(100,0,0))
gui.text[grid,1,1] text1
gui.text[grid,2,1] zeit1
gui.text[grid,1,2] "Gewicht am \n"+zeit2
gui.text[grid,2,2] altg
gui.text[grid,1,3] " Neueingabe:"
gui.text[grid,2,3] "HIER drücken" @proc1
gui.text[grid,1,4] "Differenz:"
gui.text[grid,2,5] "E N D E " @proc2
proc proc1
gui.background([grid,2,3],rgb(255,255,255))
msg.box null,null,"OKAY","",@neu
endproc
proc neu btn txt
if str(btn) == 1
if txt <> 0
neug = txt
diff = altg - neug
diff = round(diff,[3])
gui.text[grid,2,4] diff
file.write("gewicht.txt",neug)
file.write("datum.txt",zeit1)
gui.text[grid,1,5] "Neugewicht \n= "+neug +" kg"
msg.box, " Gewicht ist gespeichert ",null,["OKAY"],null,go
endif
endif
endproc
proc go btn txt
if str(btn) == 1
proc2
endif
endproc
proc proc2
msg.box " AUF WIEDERSEHEN ",null,["OKAY"],null,E
sleep 5000
end
endproc
|
| | | | |
| | | | | - Seite 1 - |
| Micha12334 | - Das Problem mit der Eingabebox tritt bei mir auch auf. Ich schob es auf mein Android... Ich verstehe das mit den Übereinanderlegen der Textcontrols nicht. diff liegt auf 2,4 und neug bei 1,5. Was ist hier falsch? Das sleep werde ich nach deinem Vorschlag ändern. Ich danke dir für die schnelle Antwort. Solche Korrekturen sind eine große Hilfe für mich. Micha12333 |
| | | | |
| | | @Micha:
Bei
msg.box " AUF WIEDERSEHEN ",null,["OKAY"],null,E
verstehe ich E nicht weil e in Deinem Beispiel auf keine procaddr zeigt.
@Karl: Soll ich sleep vlt. besser nach dev.thread.sleep verschieben raus aus dem root?
msgbox sleep end
führt ja nur dazu, dass 5 sekunden lang keine msgbox angezeigt werden kann und danach gleich beendet wird. |
| | | | |
| | Micha12334 | Ja Karl, zeige mir bitte, wie das geht. Ich teste dies mit einem timer....
Das "E" hatte ich vergessen rauszuhauen. Manchmal passiert so was am späten Abend..... |
| | | | |
| | | HofK (23.02.2016)
Merkwürdig:
Der Eingabedialog Box mit OKAY erscheint zweimal, der Dialog "Gewicht ist gespeichert" nicht.
Muss es, der proc1 fehlt die Auswertung der Parameter ctrl state -
nur bei State==1 sollte sie auslösen.
state=0: draufgetatzt state=1: weggetatzt (auf state 1 prüfen für Klick!) state=2: weggetatzt außerhalb "Button" (User hat sich anders entschieden) |
| | | | |
| | HofK | Das gui.text mit den Stati 0, 1, 2 war wohl noch nicht dokumentiert? Klingt aber logisch.
@Micha: gui.text [grid,s,z] "irgendwas" erzeugt auf der Gridzelle jeweils ein neues Textcontrol. Der Befehl liefert auch ein Handle des Controls zurück. Das kann/sollte man sich bei Bedarf (ist hier gegeben) in einer Variablen z.B. hTxt merken. Der Text selbst ist erstmal leer ("").
var hTxt=gui.text [grid,2,4] ""
Möchte man nun Text auf das bestehende Textcontrol bringen, dann mus bei gui.text nicht das Handle einer Gridzelle, sondern das Handle eines bestehenden Textcontrols angegeben werden. Also hier z.B. hTxt.
gui.text hTxt "irgendwas anderes"
In deinem Beispiel konnte man sehen, wie die eingegebenen Zahlen wirklich übereinander "gezeichnet" werden, da du im Verlauf mehrere Textcontrols auf der identischen Zelle erzeugst wenn man neue Eingaben macht. Auch cool für Spezialeffekte.
Deinen "Fehler" habe ich auch selbst erst gemacht. [...] Mein Einwand war dann, einen extra Befehl gui.settext zu haben, der nur auf Textcontrols ohne Fehlermeldung durchgeht.
Aber wie immer - es hat Vor- und Nachteile. David muss abwägen. |
| | | | |
| | Micha12334 | Recht vielen Dank an Euch, das hilft mir weiter und ich hab dazugelernt! Darum veröffentliche ich auch meine kleinen Test. 'Learn by doing' ist das Motto für mich. Micha12334 |
| | | | |
| | Micha12334 | Hallo Leute, habe das Programmchen "Gewichtskontrolle" überarbeitet. Ich glaube, so könnte man es veröffentlichen:
// InfinityProfan Program
// neu-g v0.0.1
// created 2016-02-29
grid =gui.grid(gui.hwnd,[2,5])
text1 = "Gewichts- \n kontrolle \n in (kg) am: "
zeit
altg = 0
neug = 0.00
zeit1 = time(7)
altg = file.read("masse.txt")
zeit2= file.read("heute.txt")
gui.background(grid,rgb(0,0,100))
gui.background([grid,1,2],rgb(90,90,90))
gui.background([grid,2,2],rgb(90,90,90))
gui.background([grid,1,3],rgb(130,130,130))
gui.background([grid,2,3],rgb(130,130,130))
gui.background([grid,1,4],rgb(150,150,150))
gui.background([grid,2,4],rgb(150,150,150))
gui.background([grid,1,5],rgb(130,130,130))
gui.background([grid,2,5],rgb(0,0,100))
gui.text [grid,1,1] text1
gui.text [grid,2,1] zeit1
gui.text [grid,1,2] "Gewicht am \n"+zeit2
gui.text [grid,2,2] altg
gui.text [grid,1,3] " Neueingabe:"
gui.text [grid,2,3] "HIER drücken" @proc1
gui.text [grid,1,4] "Differenz:"
gui.text [grid,2,5] "E N D E " @proc2
proc proc1 ctrl state
global grid
if state==1
gui.background([grid,2,3],rgb(255,255,255))
msg.box null,null,"OKAY","",@neu
endif
endproc
proc neu btn txt
global grid,neug,altg,zeit1
if btn==1
if txt!=""
neug = txt
diff = altg - neug
diff = round(diff,[3])
gui.text[grid,2,4] diff
if diff < 0
gui.background([grid,1,4],rgb(150,50,50))
gui.background([grid,2,4],rgb(150,50,50))
endif
if diff > 0
gui.background([grid,1,4],rgb(50,150,50))
gui.background([grid,2,4],rgb(50,150,50))
endif
file.write("masse.txt",neug)
file.write("heute.txt",zeit1)
gui.text[grid,1,5] "Neugewicht \n= "+neug +" kg"
msg.box " Gewicht ist gespeichert ",null,["OKAY"],null,@go
endif
endif
endproc
proc go btn
case btn==1 : proc2
endproc
proc proc2
end msg.box " AUF WIEDERSEHEN ",null,["bye"]
endproc
Testet es selbst einmal und schaut nach bugs und Optik-..... |
| | | | |
| | | Bin schon am drüberstürzen -
quasi mit Zahnbürste und Duschkopf in der Hand. ^^
Hier ein Vertipper sicher: diff = round(diff,[3]) statt round(diff,3)
Tip: mit Funktion long einen String zu long zwingen z.B. für: mywert=long(file.read("file")) bzw. mywert=long file.read "file"
Mist, muss längst los... bis heute Abend! |
| | | | |
| | | | - Seite 2 - |
| | HofK | Bei proc proc2
end msg.box " AUF WIEDERSEHEN ",null,["bye"] endproc
wäre eventuell günstiger:
msg.toast " AUF WIEDERSEHEN " end |
| | | | |
| | Micha12334 | Ja, mit toast und box habe schon rumgespielt. Toast sieht auf dem Samsung S6 besser aus, verliert sich aber auf meinem Tablet. Dort ist Box besser. Das liegt sicher an den Größenverhältnissen zueinander.... |
| | | | |
| | HofK | Die Differenz wird bei mir ( Galaxy Note 2 im Querformat) vom Dialog überdeckt und ist dann nicht sichtbar. |
| | | | |
| | Micha12334 | würde es etwas bringen, "screen.rotation.top" einzufügen? Vielleicht könnte ich auch den Dialog ändern... |
| | | | |
|
AntwortenThemenoptionen | 14.788 Betrachtungen |
ThemeninformationenDieses Thema hat 3 Teilnehmer: |