| |
|
|
- Page 1 - |
|
HofK | Wichtiger Hinweis! Die folgenden Beiträge beziehen sich auf ursprüngliche Versionen von AndroidProfan/Infinity-Profan aus dem Jahr 2015 und sind damit inhaltlich/syntaktisch veraltet und somit nicht lauffähig. (15.01.2016)
_____________________________________________________________
Musste einfach mal trocken testen, wie AndroidProfan - neuer Name Infinity-Profan - sich so coded. In meiner Programmiersteinzeit durfte ich in sauberen grande Druckbuchstaben ein Programmformular beschreiben. Und dann nach persönlicher Abgabe ein, zwei Tage auf die lange gedruckte Fehlerliste warten. Die Steinzeitheimwerker mussten ja auch mit 'nem Faustkeil zurechtkommen.
Jetzt ganz soft getippt und per Netz in alle Welt verbreitet. Mal sehen, was heutzutage so zurückkommt.
Erster Eindruck: ordentlich tabuliert (kommt in der Codebox nicht voll rüber) ist das übersichtlich. Könnte mich glatt damit anfreunden und notfalls auf die Anfänger api verzichten.
Update: Siehe IF-Fehlerfindung unten, aber wohl doch bestanden? Damit sich Fehler nicht verbreiten, habe ich sie markiert und verbessert. Das Pi sooo lang ist - darauf falle ich garantiert nochmal rein.
Die Farben hatte ich bewußt mal rgb() und mal als Konstanten in Internetfarben #hexhexhex angegeben. Dazu hatte ich noch nichts näheres entdeckt oder übersehen ($ Notation). Wäre aber praktisch, die HTML- Notation optional nutzen zu können.
Update: Code ungültig Da die Syntax per gui geändert wurde ist der Code ungültig. Wird demnächst auf den aktuellen Stand gebracht. Ist erfolgt, siehe weiter unten.
Kreisfläche
// Programm Kreisfläche
var headl = "Das erste AndroidA Programm"
var stat = "Status: Kreis"
var kfl = 0.0
var grg = gui( gui.add, gui.grid, gui.hwnd, [3,4] )// GrundRasterGrid
var h_txt = gui( gui.add, gui.text, grg[2,1], headl )// Textcontrol per Überschrift setzen
var m_txt = gui( gui.add, gui.text, grg[2,2], kfl )// Textcontrol Hauptzelle
var s_txt = gui( gui.add, gui.text, grg[2,3], stat )// Textcontrol per internen Status
//----------------------------------------------------
gui gui.mod, gui.bgcolor, gui.hwnd, rgb(192,192,192)// Grundfarbe silver (dezent grau)
gui gui.mod, gui.width, grg, [8,84,8]// Spaltenbreiten prozentual
gui gui.mod, gui.height, grg, [12,70,10,8]// Zeilenhöhen prozentual
gui gui.mod, gui.textcolor, h_txt, rgb(150,191,61)// Überschrift in androidem Grün #96bf3d
gui gui.mod, gui.bgcolor, grg[2,2], rgb(255,255,155)// Hauptzelle gelblich
gui gui.mod, gui.bgcolor, grg[2,3], $e7e7e7// Statuszelle hellgrau
gui gui.mod, gui.textcolor, s_txt, rgb(255,0,0)// roter Statustext
msgbox 0,"Radius","Kreisberechnung","OK","1.0",kflaeche// Interaktion Eingabe
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
proc kflaeche(txt)
// falsch: kfl = math.pi*(float(txt))^2
kfl = math(math.pi)*float(txt)^2// Korrekturen IF
// falsch: gui gui.text, m_txt, "Die Kreisfläche beträgt\nA = " + str(kfl)
gui gui.mod, gui.text, m_txt, "Die Kreisfläche beträgt\nA = " + str(kfl)// ... Ausgabe
endproc
|
|
|
| |
|
|
| |
|
- Page 3 - |
|
|
HofK |
Fehler bei width/height - siehe unten bei 08.03.2015
Nachtrag: Die Zeilen 15 bis 20 dürfen in der aktuellen Fassung von InfinityProfan am Ende kein \ enthalten! Zum Feierabend sind noch die farbigen builtinFunctions online. |
|
|
| |
|
|
|
| Juhu, wieder ein Screenshot - immer her damit!
Machst aber immer noch den fehler myGrid[x,y] statt [myGrid,x,y].
Ich freu mich schon Dein "Draw" einzubauen. |
|
|
| |
|
|
|
HofK | iF (16.02.15)
Machst aber immer noch den fehler myGrid[x,y] statt [myGrid,x,y].
Ups, da habe ich wohl die alte circa die neue Version gebügel. Immer fleißig in die IDE kopiert ohne genauer hinzuschauen. Habe mich nur gewundert, dass der Bug g_gr, [34,66, ] wieder drin war. Mach ich mal den letzten Bildschirmschuss nochmal. |
|
|
| |
|
|
|
HofK |
Fehler bei width/height - siehe unten bei 08.03.2015
Nachtrag: Die Zeilen 15 bis 20 dürfen in der aktuellen Fassung von InfinityProfan am Ende kein \ enthalten! Eine etwas andere Farbvariante, aus autohotkey erzeugt. Man kann auch gewisse Feinheiten erzeugen (Farbe der Punkte bei gui.height und gui.bgcolor beachten). |
|
|
| |
|
|
|
HofK |
Fehler bei width/height - siehe unten bei 08.03.2015
Nachtrag: Die Zeilen 15 bis 20 dürfen in der aktuellen Fassung von InfinityProfan am Ende kein \ enthalten! Die identische Variante, aus autohotkey erzeugt wie oben nur statt Theme monokai nun solarized_light. Irgendwie nicht so bunt aber dezent und augenschonend. Man erkennt, dass die konkreten Farben vom Theme abhängen. Da muss erstmal eine Grundsatzentscheidung zum Theme her. |
|
|
| |
|
|
|
HofK |
Fehler bei width/height - siehe unten bei 08.03.2015
Nachtrag: Die Zeilen 15 bis 20 dürfen in der aktuellen Fassung von InfinityProfan am Ende kein \ enthalten!
Mode AutoHotKey ( [...] ) ist sicher der beste Ausgangspunkt bei einer neuen Sprache, wenn sie nicht einer vorhandenen sehr ähnlich ist. Das Theme ist eine andere Sache. Fummelt man ein wenig in den Teilen rum, aus denen die finale Regulären Ausdrücke gebildet werden und letztendlich circa Javascript HTML, CSS span, class manipuliert werden (überaus komplexes System) kann man Feinheiten anpassen.
Bei AutoHotKey war ; per Kommentarzeile voreingestellt, habe z.B. // daraus gemacht. /// funktioniert auch, wäre aber sehr unüblich.
this.$rules = { start: [ { token: 'comment.line.ahk', regex: '(?:^| )//.*$' }, { token: 'comment.block.ahk', regex: '/\\*', push: [ { token: 'comment.block.ahk', regex: '\\*/', next: 'pop' }, { defaultToken: 'comment.block.ahk' } ] }, ...
Für den Kommentarblock habe ich auch mal /# ...abcdefg ... .... hijklmnop #/ probiert - sieht nett aus, aber möchte man das wirklich?
Auch ein wenig Codefaltung /* <--> ~~ geht schon. Dazu muss man foldingStartMarker: '^\\s*/\\*|^(?![^{]*?;|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|;|/\\*(?!.*?\\*/.*\\S))', foldingStopMarker: '^\\s*\\*/|^\\s*\\}' } bearbeiten. Die aktuellen Änderungen sind jeweils momentan online. |
|
|
| |
|
|
|
| Klaus Hoffmeister (16.02.15)
Die identische Variante, aus autohotkey erzeugt wie oben nur statt Theme monokai nun solarized_light. Irgendwie nicht so bunt aber dezent und augenschonend. Man erkennt, dass die konkreten Farben vom Theme abhängen. Da muss erstmal eine Grundsatzentscheidung zum Theme her.
Ich würde die tolle Mgl., dass man das Thema onthefly ändern kann, durchaus beibelassen und machen oben ins Popupmenü dafür eine Argomenti-Auswahl. Soll der Nutzer entscheiden welches Thema er gerne nutzen möchte. So müssten wir auch keine konkreten Farben festlegen und könnten uns erst einmal rein darauf beschränken, dass der Parser die korrekte Syntax erkennt mit welchen Farben auch immer das Theme ausgestattet ist.
Was hältst Du davon? Das Popup-Menü kann ich leicht erweitern, würde ich php Funktion glob per das Themensuchen verwenden.
Klasse finde ich das die aktuellen Änderungen auch gleich Online sind sodass man auch gleich herumprobieren kann.
Bekommst Du es hin, dass auch if end procs gefaltet werden? Bei den /* rems */ funktioniert das schon sehr lecker. Ich freue mich richtig dass es mit AndroidProfan voran geht. |
|
|
| |
|
|
|
HofK | iF (18.02.15)
Bekommst Du es hin, dass auch if end procs gefaltet werden? Bei den /* rems */ funktioniert das schon sehr lecker. Ich freue mich richtig dass es mit AndroidProfan voran geht.
Hat sich gerade überschnitten. Soeben festgestellt, dass die Bearbeitung der foldingmarker alleine nicht ausreicht! Muss tiefer im System graben.
Das Theme wählbar zu machen ist die beste Lösung! |
|
|
| |
|
|
|
| Dann bau ich mal das mit der Popupmenüthemenauswahloption ein. |
|
|
| |
|
|
|
HofK | If ... procs falten ... hab es prinzipiell gefunden [...] weiter unten: Adding new folding rules to your mode can be a little tricky. ... Und dann kommt "harter Stoff" - da muss ich mich erstmal reinwühlen. Das dauert. |
|
|
| |
|
|
|
| Ja, genau, davor versuche ich mich (bisher ganz erfolgreich!) zu drücken. |
|
|
| |
|
|
|
| So, hab mal pauschal eine Theme-Auswahl eingebaut: [...]
Später wird die Einstellung (naturalmente) auch noch mit dem Benutzeraccount verknüpft statt wie jetzt "nur" in der Session. |
|
|
| |
|
|