Deutsch
Befehlssatz und Hilfe

Funktion: gui

 
- Seite 1 -


{ ... } = gui.* ( ...

Die Funktionsgruppe gui bietet Funktionen für die Grafische Benutzeroberfläche.

gui
gui.background: Hintergrund von Control
gui.destroy: Entfernt Control
gui.gravity: Gravitation eines Controls
gui.grid: Erstellt ein Grid-Control.
gui.height: Höhe in Pixel von Control
gui.image (ctrl,file): Erstellt ein Image
gui.show (ctrl,mode): Sichtbarkeit Control
gui.text: Text-Control erstellen
gui.textcolor: Textfarbe von Text-Control
gui.theme: Stil eines Contols
gui.width: Breite in Pixel von Control

Keywords: Controls, Buttons, Eingabe

 
24.01.2015  
 



 
- Seite 2 -


Textcontrol in Zelle erzeugen:

gui gui.text,[grid,x,y],"Hallo Welt"
 
05.02.2015  
 



Hab die Kalkulation der Zellen nochmals überarbeitet.

Kann man das so schreiben und ist es halbwegs verständlich oder kann man das kürzen?

Hinweise zur Berechnung: Egal ob es sich um die Höhen oder der Breiten der Zellen handelt: Beim Anlegen eines Grids sind alle Zellen immer gleich groß - also Höhe und Breite sind "auto".

Definiert man eine Breite o. Höhe für alle Zellen sodass keine übrige Zelle bliebe als Kompensator für die tatsächliche Breite o. Höhe des Parent-Controls, dann gelten alle Breite o. Höhe -Angaben als "Verhältnis" zueinander. Hat ein Grid also 3 Spalten und setzt mal alle Spalten auf die Breite 100, dann werden alle Spalten gleich breit sein.

Hat die mittlere Spalte (also die 2.) die Größe 200, dann wird die mittlere Spalte doppelt so breit wie die beiden anderen Spalten. So kann dann z.B. statt 100,200,100 genauso auch 1,2,1 angegeben werden oder 1000,2000,1000. Sobald aber mindestens 1 Angabe auf "auto" steht, wird die betreffende Zelle sich strecken und alle anderen Zellen erhalten genau die angegebene Größe.

Haben mehrere Zellen keine Größenangabe, so werden alle Zellen mit Größenangabe genau auf die angegebene Größe gebracht und die Zellen ohne Größenangabe teilen sich den Rest gleich auf. Wäre ein Grid größer als sein Parent, was nur dann passieren kann wenn mindestens 1 Zellengröße "auto" ist und andere Zellengrößen addiert schon größer sind als das Parent, dann werden alle Zellengrößen zu gleichen Teilen herunterskaliert bis auf die genaue Passgröße des Parent-Controls.
 
06.02.2015  
 




HofK
... habs sofort verstanden, ist voll ok
und könnte viel schneller mein mit Android Studio den ganzen Vormitttag lang gebasteltes "schönes" Grid mit Text (und Buttons) implementieren
 
06.02.2015  
 



Ja, das normale Prinzip von Android ist komplett anders und recht nervig -
darum habe ich mir auch die Grids einfallen lassen.

Hab oben noch ein paar Beispiele eingekloppt:

Ein Grid auf gui.hwnd erstellen bestehend aus 3 Spalten und 3 Zeilen und das Handle des Grids in myGrid speichern:

var myGrid=gui(gui.grid,gui.hwnd,[3,3])

Ein 6x3 Grid erstellen in Zelle 2,2 vom Grid myGrid und das Handle des 2. Grids speichern:

var myGrid2=gui(gui.grid,[myGrid,2,2],[6,3])

In Zelle 3,1 vom ersten Grid ein Text-Control erstellen:

var myTxt=gui(gui.text,[myGrid,3,1],"Hallo Welt")

Die Höhe einer einzelnen Zeile bzw. der ersten Zeile vom ersten Grid auf 100 Pixel setzen:

gui gui.height,[myGrid,1],100

Alle 3 Höhen vom ersten Grid setzen auf 100 Pixel außer die Höhe der mittleren Zeile die sich automatisch ergeben soll:

gui gui.height,myGrid,[100,null,100]
 
06.02.2015  
 



Hab mal das mit der Gravitation beschrieben:

Gravitation von Zellen definieren:

Zellen besitzen eine horizontale Gravitation, wobei die Gravitation auf den Inhalt der Zelle wirkt und nicht auf die Zelle selbst. Um die Gravitation einer Zelle zu setzen ist gui gui.gravi,[grid,x,y],Wert zu nutzen. Wert kann 1,2 oder 3 sein. 1 steht für links, 2 für mittig und 3 für rechts. Die Gravitation von Zelle 2,2 eines Grids setzen auf rechts+oben: gui gui.gravi,[myGrid,2,2],3
 
06.02.2015  
 



Neu: gui.button

var myButton=gui(gui.button,[myGrid,x,y],"ButtonText",myButtonProc)

Erstellt ein Button in Rasterzelle x,y auf myGrid.

myButtonProc ist eine selbstdefinierte Proc die 2 Parameter empfängt:

proc myButtonProc(long buttonHandle,long event)

In buttonHandle steht das Handle des Buttons, damit man für mehrere
Buttons eine gemeinsame ButtonProc definieren kann. Natürlich
kann jedem Button auch eine eigene ButtonProc zugewiesen werden.

Events:
0: Button ist gedrückt, Finger liegt auf
1: Button wurde losgelassen
2: Finger wurde weggezogen bzw. verschoben auf dem Button


Es werden niemals Events 0,2,1 ausgeworfen, entweder werden
die Events 0,1 oder die Events 0,2 ausgeworfen, damit man einfach
unterscheiden kann, ob vielleicht eine D&D-Operation oder einfach nur
ein (erfolgreicher) "Klick" gemeint sind.
 
08.02.2015  
 



Neu:

gui.text kann auch eine myButtonProc übergeben werden, sodass auch für reine Textcontrol Touchereignisse ausgewertet werden können!

var myText=gui(gui.text,[myGrid,x,y],"Text",myButtonProc)

Erstellt ein TextControl in Rasterzelle x,y auf myGrid.

myButtonProc ist eine selbstdefinierte Proc die 2 Parameter empfängt:

proc myButtonProc(long buttonHandle,long event)

In buttonHandle steht das Handle des TextControls, damit man für
mehrere Controls eine gemeinsame ButtonProc definieren kann.
Natürlich kann jedem TextControl auch eine eigene ButtonProc
zugewiesen werden.

Events:
0: Button ist gedrückt, Finger liegt auf
1: Button wurde losgelassen
2: Finger wurde weggezogen bzw. verschoben auf dem Button


Es werden niemals Events 0,2,1 ausgeworfen, entweder werden
die Events 0,1 oder die Events 0,2 ausgeworfen, damit man einfach
unterscheiden kann, ob vielleicht eine D&D-Operation oder einfach nur
ein (erfolgreicher) "Klick" gemeint sind.
 
08.02.2015  
 



Neu:

gui.textcolor jetzt auch um die Schriftfarbe der Buttons zu setzen.

gui gui.textcolor,myButton,rgb(255,0,0)
 
08.02.2015  
 



Hinweis: Grid-Zellen können keine Textfarbe besitzen da sie keinen Text zeigen. Wenn farbiger Text angezeigt werden soll, dann ein Textcontrol auf einer Grid-Zelle erzeugen und dem Textcontrol eine Farbe zuordnen.

Hinweis: Text-Controls können keine Hintergrundfarbe besitzen, aber die Grid-Zelle auf der ein Text-Control erstellt ist. Wenn für ein Text-Control die Option gui.bgcolor angewandt wird, dann wird sie umgeleitet um die Hintergrundfarbe der Grid-Zelle zu setzen.
 
09.02.2015  
 



Neu: gui.bgcolor jetzt auch für Buttons!
 
09.02.2015  
 



Neu:

Android hat Farbverläufe intern leicht gemacht sodass ich das an
AndroidProfan weitergeben möchte.

Deshalb:

Farbverläufe für Hintergründe mit: gui.bgcolor

Mit gui.bgcolor kann nicht nur eine einzelne Farbe als Hintergrund definiert werden, sondern auch ein beliebig komplexer linearer Farbverlauf per Array:

[Winkel,[%,col],[%,col],...

Col ist mit der Funktion rgb(r,g,b[,a]) zu beziehen, % steht für einen Prozentwert long 0 bis 100.

Ausführlicher:

[WinkelInGrad,[ProzentWert,rgb(r,g,b [,a])],[ProzentWert,rgb(r,g,b [,a])],...]

Hinweis: Es können beliebig viele Abschnitte definiert werden, mindestens jedoch müssen 2 Abschnitte definiert werden. Startet der erste Abschnitt nicht bei Prozentwert 0, dann wird automatisch ein Wert für Prozentwert 0 eingefügt mit der selben Farbe wie die erste Farbe im Array. Endet der letzte Abschnitt nicht bei Prozentwert 100, dann wird automatisch ein Wert für Prozentwert 100 angehängt mit der selben Farbe wie die letzte Farbe im Array.


Winkel ist so zu verstehen: 0° zeigt nach oben, also 12 Uhr, 90° nach rechts (also 3 Uhr).

Beispiel für einen Farbverlauf für gui.hwnd, von oben nach unten, von
schwarz nach weiß:

gui gui.bgcolor , gui.hwnd , [180 , [0,rgb(0,0,0)] , [100,rgb(255,255,255)] ]
 
09.02.2015  
 



Tolle neue Tolligkeit: <-- blinkt!

var myGrid=gui(gui.grid,gui.hwnd,[[100,null,100],[100,null,100]])

Siehe der 3 Parameter, der bisher nur so anzuwenden war: [X-Zellen-Anzahl,Y-Zellen-Anzahl]
und wenn man dann die Breiten und Höhen der Zellen definieren wollte
dann blieb bisher nur: gui gui.width,myGrid,[...

Nun kann man gleich beim Erstellen des Grids sein komplexes Layout
definieren, einfach wenn man statt:

[X-Zellen-Anzahl,Y-Zellen-Anzahl]
ein Array angibt:

[ [Breite,Breite,...] , [Höhe,Höhe,...] ]
Aus der Anzahl der Einträge jedes Arrays wird die Anzahl der X oder Y
Zellen bezogen und es werden gleich die Breiten und Höhen gesetzt.
 
09.02.2015  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

34.249 Betrachtungen

Unbenanntvor 0 min.
Daniel05.08.2017
Micha1233420.03.2017
Michael W.13.10.2016
HofK23.04.2016
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

iF (28x)
HofK (10x)
Micha12334 (1x)


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