Growbook, Cannabis, Notizbuch, Growbuch, Pflanzenzucht, Samenbank, Seedbank, Software, Stammbaum, Kreuzen, züchten,growen,anbauen,News,GIB,Lux,Omega,Mars, Dünger,BioBizz,Hesi,Athena,
die Software für deinen Anbau

Willkommen

Tutorial 6: Labels und TextFields

The MaxGUI Beginner Tutorial Series - Tutorial 6: Labels und Textfields
(c) Assari Dec 24 2005
Ins Deutsche übersetzt von simi

Lass es uns ein bisschen leicht machen, und ein paar einfache Gadgets anschauen. In diesem Tutorials behandeln wir Labels und Textfields, zwei sehr praktische, aber einfache Gadgets.

Textfields

Ein Textfield-Gadget erlaubt Einlinieneingaben, nützlich, um Formulare für Usereingaben zu erstellen.

Textfields werden mit der CreateTextField-Funktion erstellt:

Function CreateTextField:TGadget(x,y,w,h,group:TGadget,style=0)


Hier ist ein sehr einfaches Textfield-Beispiel:

   

SuperStrict
Import MaxGui.Driver


Local MyWindow:TGadget=CreateWindow("TextField-Beispiel", 200,200,320,240)
Local Label0:TGadget=CreateLabel("Gib etwas ein:",10,10,100,20,MyWindow)
Local Label1:TGadget=CreateLabel("Du hast eingegeben:",10,40,200,40,MyWindow)

Local MyInput:TGadget=CreateTextField(110,10,180,20,MyWindow)


Repeat
  WaitEvent()
  Select EventID()
  Case EVENT_WINDOWCLOSE
     End
  Case EVENT_GADGETACTION
    SetGadgetText(Label1,"Du hast eingegeben:"+TextFieldText(MyInput))
   End Select
Forever


Starte das Programm oben, und gib was in das Feld ein. Du wirst sowas wie unten bekommen.

    Tut6 1
Tut6 2


Lass uns den Code im Detail anschauen.

    Local Label0:TGadget=CreateLabel("Gib etwas ein:",10,10,100,20,MyWindow)
Local Label1:TGadget=CreateLabel("Du hast eingegeben:",10,40,200,40,MyWindow)

Local MyInput:TGadget=CreateTextField(110,10,180,20,MyWindow)


Die zwei ersten Linien erstellen die nötigen Label-Gadgets mit der CreateLabel-Funktion. Zuerst Eines mit dem Infotext (label0) und dann das zweite um den eingegebenen Text auszugeben.

Die CreateTextField-Funktion erstellt dann das Textfeld, wo der Benutzer seine Eingaben machen kann.

      Case EVENT_GADGETACTION
    SetGadgetText(Label1,"Du hast eingegeben:"+TextFieldText(MyInput))
   End Select


Der SetGadgetText-Befehl gibt den eingegebenen Text im Label1 aus. Der Text, welcher vom Benutzer eingegeben wurde, wird von der TextFieldText-Funktion zurückgegeben.

Der CreateTextField-Befehl erlaubt auch ein Textfeld im Passwortstyle zu erstellen. Lass uns sehen, wie das gemacht wird. Beachte die Veränderungen in Fetter Schrift:

   

SuperStrict
Import MaxGui.Driver


Local MyWindow:TGadget=CreateWindow("TextField-Beispiel", 200,200,320,240)
Local Label0:TGadget=CreateLabel("Gib etwas ein:",10,10,100,20,MyWindow)
Local Label1:TGadget=CreateLabel("Du hast eingegeben:",10,40,200,40,MyWindow)

Local MyInput:TGadget=CreateTextField(110,10,180,20,MyWindow, TEXTFIELD_PASSWORD
)


Repeat
  WaitEvent()
  Select EventID()
  Case EVENT_WINDOWCLOSE
     End
  Case EVENT_GADGETACTION
    SetGadgetText(Label1,"Du hast eingegeben:"+TextFieldText(MyInput))
   End Select
Forever


Beachte, dass der Text, den wir eingegeben haben, jetzt mit Sternen (*) dargestellt wird. Der aktuelle Text ist aber immer noch dort, und kann durch die TextFieldText-Funktion abgerufen werden.

    Tut6 1
Tut6 3


Wenn wir einen Vorgabetext anzeigen wollen, können wir dies wie folgt mit dem SetGadgetText-Befehl tun:

   

SuperStrict
Import MaxGui.Driver


Local MyWindow:TGadget=CreateWindow("TextField-Beispiel", 200,200,320,240)
Local Label0:TGadget=CreateLabel("Gib etwas ein:",10,10,100,20,MyWindow)
Local Label1:TGadget=CreateLabel("Du hast eingegeben:",10,40,200,40,MyWindow)

Local MyInput:TGadget=CreateTextField(110,10,180,20,MyWindow)
SetGadgetText(MyInput,"Vorgabetext")

Repeat
  WaitEvent()
  Select EventID()
  Case EVENT_WINDOWCLOSE
     End
  Case EVENT_GADGETACTION
    SetGadgetText(Label1,"Du hast eingegeben:"+TextFieldText(MyInput))
   End Select
Forever


Du siehst folgendes:

    Tut6 4


Wenn wir wollen, dass der User direkt mti dem Eingeben anfangen kann, müssen wir den Fokus auf das Textfeld legen. Dies können wir mit ActivateGadget wie folgt tun:

    Local MyInput:TGadget=CreateTextField(110,10,180,20,MyWindow)
ActivateGadget MyInput


Labels

Wir haben Labels oben, und auch schon in vorherigen Tutorials benutzt. Lass uns diese Funktion ein bisschen mehr im Detail anschauen.

Function CreateLabel:TGadget(name$,x,y,w,h,group:TGadget,style=0)


Der CreateLabel-Befehl unterstüzt folgende Styles:

Konstante Bedeutung
LABEL_FRAME Das Label hat einen einfachen Rand.
LABEL_SUNKENFRAME Das Label hat einen 3D-Rand.
LABEL_SEPARATOR Das Label ist eine viereckige Box. Nützlich um Trennzeichen darzustellen.
LABEL_CENTER Der Text ist mittig dargestellt.
LABEL_RIGHT Der Text ist rechtsbündig dargestellt.


So, lass uns die Wirkung der verschiedenen Styles auf das Aussehen der Labels in unserem Fenster via dem untenstehenden Programm sehen:

SuperStrict
Import MaxGui.Driver


Local MyWindow:TGadget=CreateWindow("Label-Beispiel", 200,200,320,240)
Local Label0:TGadget=CreateLabel("Label mit einem Rand" ,50,10,200,20,MyWindow,
LABEL_FRAME)
Local Label1:TGadget=CreateLabel("Label mit einem 3D-Rand" ,50,35,200,20,MyWindow,.. .LABEL_SUNKENFRAME)
Local Label2:TGadget=CreateLabel("Das ist ein Trennzeichen" ,50,68,200,20,MyWindow, LABEL_SEPARATOR)
Local Label3:TGadget=CreateLabel("Text ist in der Mitte" ,50,85,200,20,MyWindow,.. LABEL_CENTER|LABEL_FRAME)
Local Label4:TGadget=CreateLabel("rechtsbündig" ,50,110,200,20,MyWindow, LABEL_RIGHT|LABEL_FRAME)


Repeat
  WaitEvent()
  Select EventID()
  Case EVENT_WINDOWCLOSE
     End
   End Select
Forever


Nach dem ausführen erscheint etwa so ein Fenster:

    Tut6 5

   
Local Label2:TGadget=CreateLabel("Das ist ein Trennzeichen" ,50,68,200,20,MyWindow, LABEL_SEPARATOR)


Beachte, dass zwar ein Text in der CreateLabel-Funktion mit dem LABEL_SEPARATOR-Style angegeben wurde, aber es wurde keiner angezeigt. Es erscheint lediglich eine horizontale Linie.

   
Local Label3:TGadget=CreateLabel("Text ist in der Mitte" ,50,85,200,20,MyWindow, LABEL_CENTER|LABEL_FRAME)


Um zu zeigen, dass der Text auch wirklich mittig und rechtsbündig dargestellt wird, habe ich den Style mit dem LABEL_FRAME-Style mithilfe des |-Operators kombiniert.

Zum Schluss...

Das war ein ziemlich einfaches Tutorial, mit keinen schwierigen Sachen. Wir müssen uns nur behalten, wie die verschiedenen Styles aussehen/arbeiten.

In diesem Tutorial besprachen wir:

  • TextField, die mit CreateTextField erstellt werden können, und dessen Text via TextFieldText erhalten werden kann.
  • Ein Vorgabetext kann mittels SetGadgetText platziert werden und den Fokous kann man mit ActivateGadget setzen.
  • Die verschiedenen Style von Labels und den Passwort-Style für CreateTextField.