Deutsch
Beispiele

Gewichtskontrolle

 
- 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


99 kB
Hochgeladen:23.02.2016
Ladeanzahl165
Herunterladen
103 kB
Hochgeladen:23.02.2016
Ladeanzahl119
Herunterladen
114 kB
Hochgeladen:23.02.2016
Ladeanzahl122
Herunterladen
118 kB
Hochgeladen:23.02.2016
Ladeanzahl124
Herunterladen
 
23.02.2016  
 



 
- 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
 
23.02.2016  
 



@Micha:

Bei

msg.box " AUF WIEDERSEHEN ",null,["OKAY"],null,E

verstehe ich E nicht weil e in Deinem Beispiel auf keine procaddr zeigt.
msg.box "Titel","Text","OK","VorgabeText",@myProc

proc myproc(btn,txt)

    print "Es wurde Button "+str(btn)+" gewählt und der eingegebene Text lautet: "+txt

endproc


@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.
 
23.02.2016  
 




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.....
 
24.02.2016  
 



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)
 
24.02.2016  
 




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.
 
24.02.2016  
 




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
 
24.02.2016  
 




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-.....
 
MS
01.03.2016  
 



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!
 
02.03.2016  
 



 
- Seite 2 -



HofK
Bei
proc proc2

end msg.box " AUF WIEDERSEHEN ",null,["bye"]
endproc


wäre eventuell günstiger:

msg.toast " AUF WIEDERSEHEN "
end
 
02.03.2016  
 




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....
 
02.03.2016  
 




HofK
Die Differenz wird bei mir ( Galaxy Note 2 im Querformat) vom Dialog überdeckt und ist dann nicht sichtbar.
 
02.03.2016  
 




Micha12334
würde es etwas bringen, "screen.rotation.top" einzufügen?
Vielleicht könnte ich auch den Dialog ändern...
 
02.03.2016  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

14.788 Betrachtungen

Unbenanntvor 0 min.
DB HoKi28.02.2020
p.specht07.12.2018
Micha1233408.07.2017
bloniTec30.08.2016
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

Micha12334 (7x)
HofK (5x)
iF (4x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie