GUI-Steuerelemente

GUI-Steuerelemente sind Interaktionselemente, die via Gui.Add in ein GUI-Fenster eingefügt werden können.

Inhaltsverzeichnis

ActiveX

Ermöglicht die Einbettung einer ActiveX-Komponente wie das MSIE-Browser-Steuerelement in ein GUI-Fenster.

Syntax:

GuiCtrl := MeineGui.Add("ActiveX", Optionen, KomponenteName)
GuiCtrl := MeineGui.AddActiveX(Optionen, KomponenteName)

Beispiel:

WB := MeineGui.Add("ActiveX", "w980 h640", "Shell.Explorer")

ActiveX: Parameter

Optionen

Typ: Zeichenkette

Siehe allgemeine Optionen und Styles.

KomponenteName

Typ: Zeichenkette

Der Name der ActiveX-Komponente.

ActiveX: Bemerkungen

Nach der Erstellung des Steuerelements kann das ActiveX-Objekt via GuiControl.Value abgerufen werden.

Mit ComObjConnect können die Ereignisse des ActiveX-Objekts verarbeitet werden.

Mit ComObjType kann der Typ des ActiveX-Objekts ermittelt werden.

Gui-Beispiel #10 zeigt einen einfachen Webbrowser, der mit dem WebBrowser-Steuerelement erstellt wurde.

Button

Auch bekannt als Schaltfläche. Kann gedrückt werden, um eine Aktion auszulösen.

Syntax:

GuiCtrl := MeineGui.Add("Button", Optionen, Name)
GuiCtrl := MeineGui.AddButton(Optionen, Name)

Beispiel:

MeinBtn := MeineGui.Add("Button", "Default w80", "OK")
MeinBtn.OnEvent("Click", MeinBtn_Click)  ; MeinBtn_Click beim Anklicken aufrufen.

Erscheinungsbild:

Button

Button: Parameter

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

Default: Macht die Schaltfläche zur Standardschaltfläche. Das Click-Ereignis der Standardschaltfläche wird jedes Mal automatisch ausgelöst, wenn der Benutzer Enter drückt, es sei denn, der Tastaturfokus liegt auf einer anderen Schaltfläche oder einem mehrzeiligen Eingabefeld mit aktiviertem WantReturn-Style.

(Unübliche numerische Styles): Eine Liste von Styles finden Sie in der Button-Styles-Tabelle.

Name

Typ: Zeichenkette

Der Anzeigename der Schaltfläche. Kann Zeilenvorschübe (`n) zum Starten neuer Zeilen enthalten.

Ein Und-Zeichen (&) kann verwendet werden, um einen Buchstaben zu unterstreichen, wie z.B. den Buchstaben P in "&Pause". Dies ermöglicht dem Benutzer, Alt+P als Tastaturkurzbefehl zu drücken. Um ein Und-Zeichen darzustellen, müssen zwei aufeinanderfolgende Und-Zeichen (&&) angegeben werden.

Button: Bemerkungen

Jedes Mal, wenn der Benutzer auf die Schaltfläche klickt oder Leer oder Enter drückt, während die Schaltfläche den Fokus hat, wird das Click-Ereignis ausgelöst.

Die Ereignisse DoubleClick, Focus und LoseFocus werden ebenfalls unterstützt. Da diese Ereignisse nur ausgelöst werden, wenn das Steuerelement den BS_NOTIFY-Style (0x4000) hat, fügt GuiControl.OnEvent diesen Style automatisch hinzu.

Verwenden Sie GuiControl.Opt, um die Standardschaltfläche später zu ändern. Zum Beispiel würde AndererBtn.Opt("+Default") eine andere Schaltfläche zur Standardschaltfläche machen, während MeinBtn.Opt("-Default") das Fenster so verändern würde, dass es keine Standardschaltfläche mehr hat.

Bekannte Einschränkung: Bestimmte Desktop-Designs können den Text einer Schaltfläche nicht ordnungsgemäß darstellen. Sollte dies der Fall sein, versuchen Sie, -Wrap (minus Wrap) in Optionen einzufügen. Dies verhindert aber auch, dass mehr als eine Textzeile angezeigt wird.

CheckBox

Auch bekannt als Kontrollkästchen. Ein kleines Quadrat zum Setzen oder Entfernen eines Häkchens, um Ein/Aus, Ja/Nein usw. anzugeben.

Syntax:

GuiCtrl := MeineGui.Add("CheckBox", Optionen, Beschriftung)
GuiCtrl := MeineGui.AddCheckBox(Optionen, Beschriftung)

Beispiel:

MeineCB := MeineGui.Add("CheckBox",, "An Rechnungsadresse versenden?")

Erscheinungsbild:

CheckBox

CheckBox: Parameter

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

Check3: Aktiviert einen dritten Zustand, der angibt, dass die CheckBox weder markiert noch unmarkiert ist.

Checked: Die CheckBox ist zu Beginn markiert (hat ein Häkchen). Direkt nach dem Wort Checked kann optional 0, 1 oder -1 (oder das Wort Gray) angegeben werden, um den Startzustand (unmarkiert, markiert oder unbestimmt) zu definieren. Mit anderen Worten, "Checked" ist dasselbe wie "Checked" VarMitEins.

(Unübliche numerische Styles): Eine Liste von Styles finden Sie in der CheckBox-Styles-Tabelle.

Beschriftung

Typ: Zeichenkette

Ein Text, der rechts neben dem Kästchen angezeigt wird. Diese Beschriftung dient in der Regel als Aufforderung oder Beschreibung und kann Zeilenvorschübe (`n) zum Starten neuer Zeilen enthalten.

Ein Und-Zeichen (&) kann verwendet werden, um einen Buchstaben zu unterstreichen, wie z.B. den Buchstaben P in "&Pause". Dies ermöglicht dem Benutzer, Alt+P als Tastaturkurzbefehl zu drücken. Um ein Und-Zeichen darzustellen, müssen zwei aufeinanderfolgende Und-Zeichen (&&) angegeben werden.

CheckBox: Bemerkungen

GuiControl.Value liefert 1 für markiert, 0 für unmarkiert oder -1 für unbestimmt. Gui.Submit speichert dieselben Werte.

Jedes Mal, wenn die CheckBox angeklickt wird, wechselt sie in den nächsten ihrer insgesamt zwei oder drei Zustände und löst dann das Click-Ereignis aus, damit das Skript sofort auf die Benutzereingabe reagieren kann.

Die Ereignisse DoubleClick, Focus und LoseFocus werden ebenfalls unterstützt. Da diese Ereignisse nur ausgelöst werden, wenn das Steuerelement den BS_NOTIFY-Style (0x4000) hat, fügt GuiControl.OnEvent diesen Style automatisch hinzu. Dieser Style ist standardmäßig nicht aktiv, da er verhindert, dass schnelle Klicks den Zustand des Häkchens ändern (z.B. wenn der Benutzer zweimal klickt, um von unmarkiert zu markiert und dann zu unbestimmt zu wechseln).

Wenn in Optionen eine Breite (W), aber keine Zeilen (R) oder Höhe (H) angegeben ist, werden Textzeilen bei Bedarf umbrochen und die Höhe des Steuerelements automatisch gesetzt.

Bekannte Einschränkung: Bestimmte Desktop-Designs können den Text einer CheckBox nicht ordnungsgemäß darstellen. Sollte dies der Fall sein, versuchen Sie, -Wrap (minus Wrap) in Optionen einzufügen. Dies verhindert aber auch, dass mehr als eine Textzeile angezeigt wird.

ComboBox

Auch bekannt als Kombinationsfeld. Eine aufklappbare Liste mit Auswahlmöglichkeiten, aber auch ein Eingabefeld zum Eintragen von formatlosem Text als Alternative zur Auswahl eines Listeneintrags.

Syntax:

GuiCtrl := MeineGui.Add("ComboBox", Optionen, Einträge)
GuiCtrl := MeineGui.AddComboBox(Optionen, Einträge)

Beispiel:

MeineCB := MeineGui.Add("ComboBox",, ["Rot", "Grün", "Blau", "Schwarz", "Weiß"])

Erscheinungsbild:

ComboBox

ComboBox: Parameter

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

ChooseN: Geben Sie für N die Positionsnummer eines Listeneintrags an, der vorab ausgewählt sein soll. Zum Beispiel bewirkt Choose5, dass der fünfte Listeneintrag vorab ausgewählt wird (wie bei anderen Optionen kann das auch eine Variable sein, z.B. "Choose" Var). Um die aktuelle Auswahl zu ändern, nachdem das Steuerelement erstellt wurde, verwenden Sie GuiControl.Choose.

Uppercase oder Lowercase: Wandelt alle Listeneinträge in Groß- oder Kleinbuchstaben um.

Sort: Sortiert die Listeneinträge automatisch in alphabetischer Reihenfolge, was auch Einfluss auf Listeneinträge hat, die nachträglich via GuiControl.Add hinzugefügt werden. Die Sort-Option ermöglicht auch eine inkrementelle Suche, wenn die Liste aufgeklappt ist; diese Suche erlaubt die Auswahl eines Listeneintrags durch Eingabe der ersten Zeichen seines Namens.

Limit: Beschränkt die Benutzereingabe auf die sichtbare Breite des Eingabefelds der ComboBox.

Simple: Veranlasst die ComboBox, sich so zu verhalten, als sei sie ein Eingabefeld mit einer ListBox darunter.

Wn: Setzt die Breite des Steuerelements. Zum Beispiel bewirkt w400, dass das Steuerelement 400 Pixel breit gemacht wird. Wenn diese Option weggelassen wird, ist die Breite standardmäßig das 15-fache der aktuellen Schriftgröße.

Rn oder Hn: Setzt die Höhe der aufklappbaren Liste. Zum Beispiel bewirkt r7, dass die Liste 7 Zeilen hoch gemacht wird, oder h400, dass die Gesamthöhe von Auswahlfeld und Liste auf 400 Pixel gesetzt wird. Wenn beide Optionen weggelassen werden, wird die Liste automatisch auf Basis der verfügbaren Höhe des Desktops vergrößert.

(Unübliche numerische Styles): Eine Liste von Styles finden Sie in der ComboBox-Styles-Tabelle.

Einträge

Typ: Array

Ein Array von Einträgen wie z.B. ["Rot", "Grün", "Blau"]. Um Einträge hinzuzufügen oder zu entfernen, nachdem das Steuerelement erstellt wurde, verwenden Sie GuiControl.Add bzw. GuiControl.Delete.

ComboBox: Bemerkungen

GuiControl.Value liefert die Positionsnummer des aktuell ausgewählten Listeneintrags (der erste Eintrag ist 1, der zweite 2 und so weiter), oder 0, wenn das Steuerelement Text enthält, der mit keinem Listeneintrag übereinstimmt, während GuiControl.Text den Inhalt des Eingabefelds der ComboBox liefert. Gui.Submit speichert den Text, es sei denn, das Steuerelement hat die AltSubmit-Option und der Text stimmt mit einem Listeneintrag überein, dann wird die Positionsnummer des Eintrags gespeichert.

Jedes Mal, wenn der Benutzer einen anderen Listeneintrag auswählt oder den Text des Steuerelements ändert, wird das Change-Ereignis ausgelöst. Die Ereignisse Focus und LoseFocus werden ebenfalls unterstützt.

Das folgende Beispiel zeigt, wie die Höhe des Auswahlfeldes oder die Höhe jedes Listeneintrags mit der CB_SETITEMHEIGHT-Meldung geändert werden kann:

MeineGui := Gui()
MeineCB := MeineGui.Add("ComboBox", "w200 Choose1", ["Eins", "Zwei"])
; CB_SETITEMHEIGHT = 0x0153
SendMessage(0x0153, -1, 50, MeineCB)  ; Höhe des Auswahlfeldes setzen.
SendMessage(0x0153, 0, 50, MeineCB)  ; Höhe jedes Listeneintrags setzen.
MeineGui.Show("h70")

Wenn Sie das Öffnen und Schließen der aufklappbaren Liste später automatisieren möchten, verwenden Sie ControlShowDropDown und ControlHideDropDown.

Custom

Ermöglicht die Einbettung eines AutoHotkey-fremden Steuerelements in ein GUI-Fenster.

Syntax:

GuiCtrl := MeineGui.Add("Custom", Optionen, Text)
GuiCtrl := MeineGui.AddCustom(Optionen, Text)

Beispiel:

MeineCBEx := MeineGui.Add("Custom", "ClassComboBoxEx32")

Custom: Parameter

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

ClassName: Geben Sie für Name den Win32-Klassennamen des gewünschten Steuerelements an. Zum Beispiel ClassComboBoxEx32, das ein ComboBoxEx-Steuerelement hinzufügt, oder ClassScintilla, das ein Scintilla-Steuerelement hinzufügt (beachten Sie, dass die Bibliothek SciLexer.dll zuvor geladen sein muss).

Wn: Setzt die Breite des Steuerelements. Zum Beispiel bewirkt w400, dass das Steuerelement 400 Pixel breit gemacht wird. Wenn diese Option weggelassen wird, ist die Breite standardmäßig das 30-fache der aktuellen Schriftgröße.

Rn oder Hn: Setzt die Höhe des Steuerelements. Zum Beispiel bewirkt r7, dass im Steuerelement Platz für 7 Zeilen geschaffen wird, oder h400, dass die Gesamthöhe des Steuerelements auf 400 Pixel gesetzt wird. Wenn beide Optionen weggelassen werden, ist die Höhe standardmäßig 5 Zeilen.

Text

Typ: Zeichenkette

Beliebiger Text. Je nach Typ des benutzerdefinierten Steuerelements kann es vorkommen, dass der Text ignoriert wird.

AutoHotkey verwendet die Standard-Textroutinen des Systems beim Abrufen/Setzen von Texten im Steuerelement via Gui.Add oder GuiControl.Value.

Custom: Bemerkungen

Da die Bedeutung des Codes jeder Benachrichtigung vom Steuerelement abhängt, das die Benachrichtigung gesendet hat, wird GuiControl.OnEvent nicht für Custom-Steuerelemente unterstützt. Wenn das Steuerelement jedoch Benachrichtigungen in Form von WM_NOTIFY- oder WM_COMMAND-Meldungen sendet, kann das Skript diese mit GuiControl.OnNotify bzw. GuiControl.OnCommand abfangen und verarbeiten.

Gui-Beispiel #11 zeigt, wie man ein IP-Adressen-Steuerelement hinzufügt und verwendet.

DateTime

Ein Eingabefeld, das der Benutzer zur Eingabe eines Datums und/oder einer Uhrzeit verwenden kann. Ein aufklappbarer Kalender ist ebenfalls vorhanden.

Syntax:

GuiCtrl := MeineGui.Add("DateTime", Optionen, Format)
GuiCtrl := MeineGui.AddDateTime(Optionen, Format)

Beispiel:

MeinDT := MeineGui.Add("DateTime",, "LongDate")

Erscheinungsbild:

DateTime

DateTime: Parameter

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

ChooseZeitstempel: Geben Sie für Zeitstempel ein Datum im YYYYMMDD-Format an, wenn ein anderes Datum als das heutige vorab ausgewählt sein soll. Zum Beispiel bewirkt Choose20050531, dass der 31. Mai 2005 vorab ausgewählt wird (wie bei anderen Optionen kann das auch eine Variable sein, z.B. "Choose" Var). Die Tageszeit kann ebenfalls angegeben werden (Einzelheiten finden Sie unten in den Bemerkungen). Geben Sie für Zeitstempel das Wort None an, um das Steuerelement ohne vorab ausgewähltes Datum anzuzeigen. ChooseNone stattet das Steuerelement zudem mit einem Kontrollkästchen aus, das unmarkiert ist, wenn kein Datum ausgewählt ist. Wenn kein Datum ausgewählt ist, wird GuiControl.Value einen leeren Wert (leere Zeichenkette) liefern. Um die aktuelle Auswahl zu ändern, nachdem das Steuerelement erstellt wurde, verwenden Sie GuiControl.Choose.

RangeMinMax: Beschränkt die Datumsauswahl auf einem bestimmten Zeitraum. Geben Sie für MinMax das Start- und Enddatum im YYYYMMDD-Format an (mit einem Bindestrich dazwischen). Zum Beispiel bewirkt Range20050101-20050615, dass nur ein Datum innerhalb der ersten 5,5 Monate des Jahres 2005 ausgewählt werden kann. Das Start- oder Enddatum kann weggelassen werden, um die Auswahl im Steuerelement nur in eine Richtung zu beschränken. Zum Beispiel bewirkt Range20010101, dass kein Datum vor 2001 ausgewählt werden kann, oder Range-20091231 (Bindestrich am Anfang), dass kein Datum nach 2009 ausgewählt werden kann. Fehlt diese Option, kann ein beliebiges Datum zwischen den Jahren 1601 und 9999 ausgewählt werden. Die Tageszeit kann nicht beschränkt werden.

Right: Bewirkt, dass der Kalender auf der rechten statt linken Seite des Steuerelements aufgeklappt wird.

1: Stellt rechts neben dem Steuerelement ein UpDown-Steuerelement zum Ändern von Datum-Zeit-Werten zur Verfügung, das die Schaltfläche zum Aufklappen des Monatskalenders ersetzt. Diese Option funktioniert nicht in Verbindung mit dem LongDate-Format.

2: Stattet das Steuerelement mit einem Kontrollkästchen aus, das der Benutzer verwenden kann, um kein ausgewähltes Datum anzugeben. Diese Option kann nach der Erstellung des Steuerelements nicht mehr geändert werden.

Wn: Setzt die Breite des Steuerelements. Zum Beispiel bewirkt w400, dass das Steuerelement 400 Pixel breit gemacht wird. Wenn diese Option weggelassen wird, ist die Breite standardmäßig das 30-fache der aktuellen Schriftgröße.

Rn oder Hn: Setzt die Höhe des Steuerelements. Zum Beispiel bewirkt r7, dass im Steuerelement Platz für 7 Zeilen geschaffen wird, oder h400, dass die Gesamthöhe des Steuerelements auf 400 Pixel gesetzt wird. Wenn beide Optionen weggelassen werden, ist die Höhe standardmäßig 1 Zeile.

(Unübliche numerische Styles): Eine Liste von Styles finden Sie in der DateTime-Styles-Tabelle.

Format

Typ: Zeichenkette

Wenn leer oder weggelassen, wird standardmäßig ShortDate verwendet. Andernfalls geben Sie eines der folgenden Formate an, das zu Beginn angezeigt werden soll. Um das Format zu ändern, nachdem das Steuerelement erstellt wurde, verwenden Sie dessen SetFormat-Methode.

ShortDate: Verwendet das kurze Datumsformat gemäß den aktuellen Sprach- und Regionseinstellungen des Benutzers. Zum Beispiel: 01.06.2005

LongDate: Verwendet das lange Datumsformat gemäß den aktuellen Sprach- und Regionseinstellungen des Benutzers. Zum Beispiel: Mittwoch, 1. Juni 2005

Time: Verwendet das Zeitformat gemäß den aktuellen Sprach- und Regionseinstellungen des Benutzers. Obwohl das Datum nicht angezeigt wird, ist es im Steuerelement vorhanden und wird zusammen mit der Zeit im YYYYMMDDHH24MISS-Format abgerufen. Zum Beispiel: 21:37:45

(benutzerdefiniertes Format): Geben Sie eine beliebige Kombination von Datums- und Zeitformaten an. Zum Beispiel bewirkt "d.M.yy HH:mm", dass 1.6.05 21:37 angezeigt wird, oder "dddd MMMM d, yyyy hh:mm:ss tt", dass Mittwoch Juni 1, 2005 09:37:45 angezeigt wird. Buchstaben und Zahlen, die direkt angezeigt werden sollen, müssen wie folgt in einfache Anführungszeichen gesetzt werden: "'Datum:' dd.MM.yy 'Zeit:' hh:mm:ss tt". Nicht-alphanumerische Zeichen wie Leerzeichen, Tabulatoren, Schrägstriche, Doppelpunkte, Kommas und andere Satzzeichen müssen hingegen nicht in einfache Anführungszeichen gesetzt werden. Eine Ausnahme bildet das einfache Anführungszeichen selbst: Um es darzustellen, sind vier aufeinanderfolgende einfache Anführungszeichen ('''') erforderlich, oder nur zwei, wenn das Anführungszeichen bereits von einem äußeren Anführungszeichenpaar umschlossen ist.

DateTime: Methoden

Neben den regulären Methoden/Eigenschaften eines GUI-Steuerelements besitzt dieses Steuerelement die folgenden Methoden:

SetFormat

Setzt das Anzeigeformat eines DateTime-Steuerelements.

GuiCtrl.SetFormat(Format)

Format ist eine Formatzeichenkette, wie oben beschrieben. Mit dieser Methode kann das Anzeigeformat geändert werden, nachdem das DateTime-Steuerelement erstellt wurde.

DateTime: Bemerkungen

Die Tageszeit kann ebenfalls bei der Choose-Option angegeben werden. Allerdings genügt es nicht, nur die Zeit anzugeben – das Datum muss ebenfalls vorhanden sein. Das Format der Zeitkomponente ist HH24MISS (Stunden, Minuten, Sekunden), wobei HH24 für das 24-Stunden-Format steht, z.B. 09 für 9 Uhr morgens oder 21 für 9 Uhr abends. Die resultierende Datum-Zeit-Zeichenkette ist im YYYYMMDDHH24MISS-Format.

Bei Datumsangaben im YYYYMMDDHH24MISS-Format ist nur der beginnende Teil erforderlich. Die restlichen weggelassenen Elemente werden mit folgenden Standardwerten ersetzt: MM mit Monat 01, DD mit Tag 01, HH24 mit Stunde 00, MI mit Minute 00 und SS mit Sekunde 00.

Das Heute-Feld im unteren Bereich des aufklappbaren Kalenders kann angeklickt werden, um das heutige Datum auszuwählen. Das Monat-Jahr-Feld im oberen Bereich ist nützlich, um zu einem anderen Monat oder Jahr zu navigieren.

Navigation mit der Tastatur: Mit den Pfeiltasten /, den Ziffernblocktasten +/- und Pos1/Ende können die Werte des Steuerelements erhöht oder verringert werden. Verwenden Sie und , um innerhalb des Steuerelements von einem Feld zum anderen zu navigieren. Verwenden Sie innerhalb des ausklappbaren Kalenders die Pfeiltasten, um von einem Tag zum anderen zu navigieren; Bild↑/Bild↓, um zum vorherigen/nächsten Monat zu navigieren; und Pos1/Ende, um den ersten/letzten Tag des Monats auszuwählen.

GuiControl.Value liefert das Datum und die Uhrzeit des aktuell ausgewählten Feldes im YYYYMMDDHH24MISS-Format. Datum und Uhrzeit sind immer vorhanden, egal ob diese im Steuerelement tatsächlich sichtbar sind oder nicht. Gui.Submit speichert denselben Wert.

Jedes Mal, wenn der Benutzer das Datum oder die Uhrzeit ändert, wird das Change-Ereignis ausgelöst. Die Ereignisse Focus und LoseFocus werden ebenfalls unterstützt.

Um die Farben eines beliebigen Bereichs im aufklappbaren Kalender zu ändern, verwenden Sie SendMessage wie folgt:

DTM_SETMCCOLOR    := 0x1006

MCSC_BACKGROUND   := 0 ; Gesamthintergrund
MCSC_MONTHBK      := 4 ; Hintergrund des Monats
MCSC_TEXT         := 1 ; Text des Monats
MCSC_TITLEBK      := 2 ; Hintergrund des Titels
MCSC_TITLETEXT    := 3 ; Text des Titels
MCSC_TRAILINGTEXT := 5 ; Text der anderen Monate

HinterFarbe := 0xFFAA99 ; Neue Hintergrundfarbe des Kalenders (BGR, nicht RGB).
TextFarbe := 0x0066CC ; Neue Textfarbe des Kalenders (BGR, nicht RGB).

MeineGui := Gui()
MeinDT := MeineGui.Add("DateTime")
MeinDT.OnNotify(-754, DTN_DROPDOWN) ; Klassisches Design erzwingen.
SendMessage(DTM_SETMCCOLOR, MCSC_MONTHBK, HinterFarbe, MeinDT)
SendMessage(DTM_SETMCCOLOR, MCSC_TEXT, TextFarbe, MeinDT)
MeineGui.Show()

DTN_DROPDOWN(MeinDT, lParam) {
    hCal := SendMessage(0x1008, 0, 0, MeinDT) ; 0x1008 ist DTM_GETMONTHCAL.
    DllCall("UxTheme\SetWindowTheme", "Ptr", hCal, "WStr", "", "WStr", "")
}

Auch bekannt als Dropdownliste. Eine aufklappbare Liste mit Auswahlmöglichkeiten.

Syntax:

GuiCtrl := MeineGui.Add("DropDownList", Optionen, Einträge)
GuiCtrl := MeineGui.AddDropDownList(Optionen, Einträge)

Beispiel:

MeineDDL := MeineGui.Add("DropDownList",, ["Schwarz", "Weiß", "Rot", "Grün", "Blau"])

Erscheinungsbild:

DDL
DropDownList

Der Name des Steuerelements kann entweder DropDownList oder DDL sein.

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

ChooseN: Geben Sie für N die Positionsnummer eines Listeneintrags an, der vorab ausgewählt sein soll. Zum Beispiel bewirkt Choose5, dass der fünfte Listeneintrag vorab ausgewählt wird (wie bei anderen Optionen kann das auch eine Variable sein, z.B. "Choose" Var). Um die aktuelle Auswahl zu ändern, nachdem das Steuerelement erstellt wurde, verwenden Sie GuiControl.Choose.

Uppercase oder Lowercase: Wandelt alle Listeneinträge in Groß- oder Kleinbuchstaben um.

Sort: Sortiert die Listeneinträge automatisch in alphabetischer Reihenfolge, was auch Einfluss auf Listeneinträge hat, die nachträglich via GuiControl.Add hinzugefügt werden. Die Sort-Option ermöglicht auch eine inkrementelle Suche, wenn die Liste aufgeklappt ist; diese Suche erlaubt die Auswahl eines Listeneintrags durch Eingabe der ersten Zeichen seines Namens.

Wn: Setzt die Breite des Steuerelements. Zum Beispiel bewirkt w400, dass das Steuerelement 400 Pixel breit gemacht wird. Wenn diese Option weggelassen wird, ist die Breite standardmäßig das 15-fache der aktuellen Schriftgröße.

Rn oder Hn: Setzt die Höhe der aufklappbaren Liste. Zum Beispiel bewirkt r7, dass die Liste 7 Zeilen hoch gemacht wird, oder h400, dass die Gesamthöhe von Auswahlfeld und Liste auf 400 Pixel gesetzt wird. Wenn beide Optionen weggelassen werden, wird die Liste automatisch auf Basis der verfügbaren Höhe des Desktops vergrößert.

(Unübliche numerische Styles): Eine Liste von Styles finden Sie in der DropDownList-Styles-Tabelle.

Einträge

Typ: Array

Ein Array von Einträgen wie z.B. ["Rot", "Grün", "Blau"]. Um Einträge hinzuzufügen oder zu entfernen, nachdem das Steuerelement erstellt wurde, verwenden Sie GuiControl.Add bzw. GuiControl.Delete.

GuiControl.Value liefert die Positionsnummer des aktuell ausgewählten Listeneintrags (der erste Eintrag ist 1, der zweite 2 und so weiter), oder 0, wenn nichts ausgewählt ist, während GuiControl.Text den Text des aktuell ausgewählten Eintrags zurückgibt. Gui.Submit speichert den Text, es sei denn, das Steuerelement hat die AltSubmit-Option, dann wird die Positionsnummer des Eintrags gespeichert.

Jedes Mal, wenn der Benutzer einen anderen Listeneintrag auswählt, wird das Change-Ereignis ausgelöst. Die Ereignisse Focus und LoseFocus werden ebenfalls unterstützt.

Das folgende Beispiel zeigt, wie die Höhe des Auswahlfeldes oder die Höhe jedes Listeneintrags mit der CB_SETITEMHEIGHT-Meldung geändert werden kann:

MeineGui := Gui()
MeineDDL := MeineGui.Add("DDL", "w200 Choose1", ["Eins","Zwei"])
; CB_SETITEMHEIGHT = 0x0153
SendMessage(0x0153, -1, 50, MeineDDL)  ; Höhe des Auswahlfeldes setzen.
SendMessage(0x0153, 0, 50, MeineDDL)  ; Höhe jedes Listeneintrags setzen.
MeineGui.Show("h70")

Wenn Sie das Öffnen und Schließen der aufklappbaren Liste später automatisieren möchten, verwenden Sie ControlShowDropDown und ControlHideDropDown.

Edit

Auch bekannt als Eingabefeld. Ein Feld, das der Benutzer zur Eingabe eines formatlosen Textes verwenden kann.

Syntax:

GuiCtrl := MeineGui.Add("Edit", Optionen, Text)
GuiCtrl := MeineGui.AddEdit(Optionen, Text)

Beispiel:

MeinEdit := MeineGui.Add("Edit", "r9 w135", "Der Text innerhalb des Eingabefelds (lassen Sie diesen Parameter weg, um ein leeres Feld anzuzeigen).")

Erscheinungsbild:

Edit

Edit: Parameter

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

LimitN: Beschränkt die Benutzereingabe. Wenn N weggelassen wird, wird die Eingabe auf die sichtbare Breite des Eingabefelds beschränkt. Andernfalls geben Sie für N eine bestimmte Anzahl von Zeichen an, um die Eingabe zu limitieren. Zum Beispiel bewirkt Limit10, dass der Benutzer nur maximal 10 Zeichen in das Eingabefeld eintragen kann.

Uppercase oder Lowercase: Alle Zeichen, die der Benutzer einträgt, werden automatisch in Groß- oder Kleinbuchstaben umgewandelt.

Multi: Ermöglicht mehr als eine Textzeile im Eingabefeld. In der Regel kann diese Option weggelassen werden, weil das Steuerelement automatisch als mehrzeilig erkannt wird, wenn Text mehrere Zeilen enthält, die Höhe des Steuerelements größer als seine Standardzeilenhöhe ist, oder die Zeilenanzahl des Steuerelements explizit größer als 1 ist. Zum Beispiel bewirkt r3 in Optionen, dass ein dreizeiliges Eingabefeld standardmäßig mit folgenden Eigenschaften erstellt wird: vertikaler Scrollbalken; automatischer Zeilenumbruch; Enter erzeugt einen Zeilenumbruch, anstatt die Standardschaltfläche des Fensters auszulösen.

Number: Verhindert, dass der Benutzer etwas anderes als Zahlen in das Feld eintragen kann (es ist aber immer noch möglich, nicht-numerische Werte via Zwischenablage einzufügen). Eine numerische Benutzereingabe kann auch durch Anfügen eines UpDown-Steuerelements an das Eingabefeld erzwungen werden.

Password: Maskiert die Benutzereingabe (z.B. für eine Passworteingabe), d.h. alle Zeichen, die der Benutzer einträgt, werden mit einem Maskierungszeichen ersetzt. Wenn Sie ein anderes Maskierungszeichen benötigen, geben Sie es direkt nach dem Wort Password an. Zum Beispiel bewirkt Password*, dass das Sternchen als Maskierungszeichen verwendet wird, nicht der ausgefüllte Kreis. Beachten Sie, dass diese Option nicht mit mehrzeiligen Eingabefeldern funktioniert.

ReadOnly: Verhindert, dass der Benutzer den Inhalt des Steuerelements ändern kann. Der Text kann jedoch immer noch gescrollt, markiert und in die Zwischenablage kopiert werden.

Tn: Setzt Tabstopps innerhalb eines mehrzeiligen Eingabefelds (Tabstopps sind Sprungmarken für direkt geschriebene Tabulatorzeichen und ermöglichen so eine spaltenweise Formatierung des Textes). Wenn die T-Option nicht verwendet wird, werden Tabstopps auf je 32 Dialogeinheiten gesetzt (die Breite jeder "Dialogeinheit" ist systemintern festgelegt). Wenn die T-Option nur einmal verwendet wird, werden Tabstopps auf je n Dialogeinheiten innerhalb der verfügbaren Breite des Steuerelements gesetzt. Zum Beispiel bewirkt t64 eine Verdopplung des Standardabstands zwischen den Tabstopps. Um benutzerdefinierte Tabstopps zu setzen, geben Sie die T-Option mehrmals an, z.B. t8 t16 t32 t64 t128. Für jede absolute Spaltenposition in der Liste wird ein Tabstopp gesetzt, bis zu einem Maximum von 50 Tabstopps.

WantCtrlA: Geben Sie -WantCtrlA (minus WantCtrlA) an, um zu verhindern, dass der Benutzer den gesamten Text im Eingabefeld mit Strg+A markieren kann.

WantReturn: Geben Sie -WantReturn (minus WantReturn) an, um zu verhindern, dass Enter von einem mehrzeiligen Eingabefeld erfasst wird. Das Drücken von Enter wäre dann das gleiche wie, als würde man die Standardschaltfläche des Fensters (falls vorhanden) drücken. Um trotzdem eine neue Zeile zu beginnen, kann der Benutzer Strg+Enter drücken.

WantTab: Bewirkt, dass Tab ein Tabulatorzeichen erzeugt, anstatt zum nächsten Steuerelement zu navigieren. Wenn diese Option nicht angegeben ist, kann der Benutzer Strg+Tab drücken, um ein Tabulatorzeichen innerhalb eines mehrzeiligen Eingabefelds zu erzeugen. Beachten Sie, dass WantTab auch in einem einzeiligen Eingabefeld funktioniert.

Wrap: Geben Sie -Wrap (minus Wrap) an, um den automatischen Zeilenumbruch in einem mehrzeiligen Eingabefeld zu deaktivieren. Dieser Style kann nach der Erstellung des Steuerelements nicht mehr geändert werden. Um es dennoch zu tun, gibt es folgende Möglichkeiten: 1) Zerstören Sie das Fenster und erstellen Sie es danach neu; oder 2) Erstellen Sie zwei überlappende Eingabefelder, eines mit automatischem Zeilenumbruch und das andere ohne. Der derzeit nicht verwendete kann leer gelassen und/oder versteckt werden.

Wn: Setzt die Breite des Steuerelements. Zum Beispiel bewirkt w400, dass das Steuerelement 400 Pixel breit gemacht wird. Wenn diese Option weggelassen wird, ist die Breite eines leeren Eingabefelds standardmäßig das 15-fache der aktuellen Schriftgröße. Ein nicht-leeres Eingabefeld wird standardmäßig auf die Breite der längsten Zeile gesetzt.

Rn oder Hn: Setzt die Höhe des Steuerelements. Zum Beispiel bewirkt r7, dass im Steuerelement Platz für 7 Zeilen geschaffen wird, oder h400, dass die Gesamthöhe des Steuerelements auf 400 Pixel gesetzt wird. Wenn beide Optionen weggelassen werden, ist die Höhe eines einzeiligen Eingabefelds standardmäßig 1 Zeile, während ein leeres mehrzeiliges Eingabefeld standardmäßig eine Höhe von 3 Zeilen hat. Ein nicht-leeres Eingabefeld hat standardmäßig eine Höhe, die sich nach der Anzahl der enthaltenen Zeilen richtet.

(Unübliche numerische Styles): Eine Liste von Styles finden Sie in der Edit-Styles-Tabelle.

Text

Typ: Zeichenkette

Wenn leer oder weggelassen, ist das Steuerelement anfangs leer. Andernfalls geben Sie den Text an, der im Steuerelement erscheinen soll.

Um eine neue Zeile zu beginnen, fügen Sie entweder einen einzelnen Zeilenvorschub (`n) oder ein Wagenrücklauf-Zeilenvorschub-Paar (`r`n) ein. Beide Varianten erzeugen Wagenrücklauf-Zeilenvorschub-Paare (`r`n) innerhalb des Eingabefelds. Wenn Sie jedoch GuiControl.Value oder Gui.Submit verwenden, um den Inhalt des Steuerelements abzurufen, wird jedes Wagenrücklauf-Zeilenvorschub-Paar (`r`n) immer in einen einzelnen Zeilenvorschub (`n) übersetzt. Um diese Zeilenumbruchübersetzung zu umgehen, verwenden Sie GuiControl.Text. Außerdem kann via Fortsetzungsbereich eine lange Zeile in mehrere kurze Zeilen aufgeteilt werden.

Edit: Bemerkungen

Jedes Mal, wenn der Benutzer den Inhalt des Steuerelements ändert, wird das Change-Ereignis ausgelöst.

Ein beim Schreiben verursachter automatischer Zeilenumbruch, sofern aktiv (Standard bei mehrzeiligen Eingabefeldern), ist rein visueller Natur – es werden keine Zeilenvorschubzeichen erzeugt (nur Enter ist dazu in der Lage).

Um eine Textdatei in ein Eingabefeld zu laden, verwenden Sie FileRead und GuiControl.Value:

MeinEdit := MeineGui.Add("Edit", "r20")
MeinEdit.Value := FileRead("C:\Meine Datei.txt")

GroupBox

Ein rechteckiger Rahmen, der in der Regel mehrere Steuerelemente umschließt, um ihre Zusammengehörigkeit zu verdeutlichen.

Syntax:

GuiCtrl := MeineGui.Add("GroupBox", Optionen, Titel)
GuiCtrl := MeineGui.AddGroupBox(Optionen, Titel)

Beispiel:

MeineGB := MeineGui.Add("GroupBox", "w200 h100", "Geographische Kriterien")

Erscheinungsbild:

GroupBox

GroupBox: Parameter

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

Wrap: Bewirkt, dass Titel mehr als eine Textzeile haben kann.

Wn: Setzt die Breite des Steuerelements. Zum Beispiel bewirkt w400, dass das Steuerelement 400 Pixel breit gemacht wird. Wenn diese Option weggelassen wird, ist die Breite standardmäßig das 15-fache der aktuellen Schriftgröße plus das 2-fache des X-Abstands.

Rn oder Hn: Setzt die Höhe des Steuerelements. Zum Beispiel bewirkt r7, dass im Steuerelement Platz für 7 Zeilen geschaffen wird, oder h400, dass die Gesamthöhe des Steuerelements auf 400 Pixel gesetzt wird. Wenn beide Optionen weggelassen werden, ist die Höhe standardmäßig 2 Zeilen.

(Unübliche numerische Styles): Eine Liste von Styles finden Sie in der GroupBox-Styles-Tabelle.

Titel

Typ: Zeichenkette

Der Titel wird in der oberen linken Ecke des Rahmens angezeigt, sofern angegeben.

Ein Und-Zeichen (&) kann verwendet werden, um einen Buchstaben zu unterstreichen, wie z.B. den Buchstaben K in "&Kriterien". Dies ermöglicht dem Benutzer, den Tastaturkurzbefehl Alt+K zu drücken, um den Tastaturfokus auf das erste eingabefähige Steuerelement zu setzen, das nach dem GroupBox-Steuerelement erstellt wurde. Um ein Und-Zeichen darzustellen, müssen zwei aufeinanderfolgende Und-Zeichen (&&) angegeben werden.

Hotkey

Ein Feld, das der Benutzer zur Eingabe einer Tastenkombination verwenden kann. Wenn der Benutzer z.B. Strg+Alt+C drückt, wird "STRG + ALT + C" im Eingabefeld angezeigt.

Syntax:

GuiCtrl := MeineGui.Add("Hotkey", Optionen, TasteName)
GuiCtrl := MeineGui.AddHotkey(Optionen, TasteName)

Beispiel:

MeinHotkey := MeineGui.Add("Hotkey",, "^!c")

Erscheinungsbild:

Hotkey

Hotkey: Parameter

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

LimitN: Geben Sie für N die Summe einer oder mehrerer der folgenden Zahlen an, um die Benutzereingabe auf bestimmte Tastenkombinationen zu beschränken: 1 ignoriert Tasten ohne Modifikatoren, 2 ignoriert nur Umschalt-modifizierte Tasten, 4 ignoriert nur Strg-modifizierte Tasten, 8 ignoriert nur Alt-modifizierte Tasten, 16 ignoriert Umschalt+Strg-modifizierte Tasten, 32 ignoriert Umschalt+Alt-modifizierte Tasten und 128 ignoriert Umschalt+Strg+Alt-modifizierte Tasten (64 wird nicht unterstützt; verhält sich falsch). Zum Beispiel bewirkt Limit1, dass der Benutzer keine modifikatorlosen Tastenkombinationen wie z.B. Buchstaben und Zahlen eingeben kann, oder Limit15, dass der Benutzer mindestens zwei Modifikatortasten drücken muss. Gibt der Benutzer eine verbotene Modifikatorkombination ein, wird diese automatisch und visuell mit Strg+Alt ersetzt.

Wn: Setzt die Breite des Steuerelements. Zum Beispiel bewirkt w400, dass das Steuerelement 400 Pixel breit gemacht wird. Wenn diese Option weggelassen wird, ist die Breite standardmäßig das 15-fache der aktuellen Schriftgröße.

Rn oder Hn: Setzt die Höhe des Steuerelements. Zum Beispiel bewirkt r7, dass im Steuerelement Platz für 7 Zeilen geschaffen wird, oder h400, dass die Gesamthöhe des Steuerelements auf 400 Pixel gesetzt wird. Wenn beide Optionen weggelassen werden, ist die Höhe standardmäßig 1 Zeile.

TasteName

Typ: Zeichenkette

Wenn leer oder weggelassen, ist das Steuerelement anfangs leer. Andernfalls geben Sie die Modifikatoren und den Tastennamen der Tastenkombination an, die im Steuerelement erscheinen soll. Zum Beispiel ^!p für "STRG + ALT + P". Es werden nur die Modifikatoren ^ (STRG), ! (ALT) und + (UMSCHALT) unterstützt. Weitere verfügbare Tastennamen finden Sie in der Tastenliste.

Einige Tasten werden unter demselben Namen angezeigt, aber unter verschiedenen Namen abgerufen. Zum Beispiel wird sowohl ^Numpad7 als auch ^NumpadHome als "STRG + 7 (ZEHNERTASTATUR)" angezeigt.

Hotkey: Bemerkungen

GuiControl.Value liefert eine Zeichenkette bestehend aus Modifikatorsymbolen und dem Tastennamen. Diese Zeichenkette ist kompatibel mit der Hotkey-Funktion. Beispiele: ^!c, +!Home, +^Down, ^Numpad1, !NumpadEnd. Wenn das Steuerelement keine Tastenkombination enthält, wird diese Zeichenkette leer sein. Gui.Submit speichert dieselben Werte.

Jedes Mal, wenn der Benutzer den Inhalt des Steuerelements ändert (durch Drücken einer Taste), wird das Change-Ereignis ausgelöst. Beachten Sie, dass das Ereignis auch bei einer unvollständigen Tastenkombination ausgelöst wird. Wenn der Benutzer z.B. Strg gedrückt hält, wird das Ereignis einmal ausgelöst und GuiControl.Value nur ein Zirkumflex (^) liefern. Wenn der Benutzer dann die Tastenkombination vervollständigt, wird das Ereignis erneut ausgelöst und GuiControl.Value die vollständige Kombination liefern.

Das Hotkey-Steuerelement hat nur begrenzte Möglichkeiten. Es unterstützt z.B. keine Maus/Controller-Tastenkombinationen oder Win (LWin und RWin). Stellen Sie stattdessen Kontrollkästchen bereit, die der Benutzer anklicken kann, um zusätzliche Modifikatoren wie z.B. Win anzugeben.

Ein Textsteuerelement, das Links enthalten kann, die denen in einem Webbrowser ähneln.

Syntax:

GuiCtrl := MeineGui.Add("Link", Optionen, Zeichenkette)
GuiCtrl := MeineGui.AddLink(Optionen, Zeichenkette)

Beispiel:

MeinLink1 := MeineGui.Add("Link",, 'Das ist ein <a href="https://www.autohotkey.com">Link</a>')
MeinLink2 := MeineGui.Add("Link",, 'Links können überall im Text angegeben werden, wie <a id="A">hier</a> oder <a id="B">dort</a>')

Erscheinungsbild:

Link
Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

(Unübliche numerische Styles): Eine Liste von Styles finden Sie in der Link-Styles-Tabelle.

Zeichenkette

Typ: Zeichenkette

Eine Zeichenkette, die angezeigt werden soll. Umschließen Sie einen beliebigen Textabschnitt mit <A> und </A>, um einen anklickbaren Link zu erzeugen, optional mit einem ID- und/oder HREF-Attribut. Die Zeichenkette kann Zeilenvorschübe (`n) zum Starten neuer Zeilen enthalten. Außerdem kann via Fortsetzungsbereich eine lange Zeile in mehrere kurze Zeilen aufgeteilt werden.

Ein Und-Zeichen (&) kann verwendet werden, um einen Buchstaben zu unterstreichen, wie z.B. den Buchstaben V in "&Vorname". Dies ermöglicht dem Benutzer, den Tastaturkurzbefehl Alt+V zu drücken, um den Tastaturfokus auf das erste eingabefähige Steuerelement zu setzen, das nach dem Link-Steuerelement erstellt wurde. Um ein Und-Zeichen darzustellen, müssen zwei aufeinanderfolgende Und-Zeichen (&&) angegeben werden.

Obwohl es wie HTML aussieht, unterstützen Link-Steuerelemente nur den Start-Tag <A> (optional mit einem ID- und/oder HREF-Attribut) und den End-Tag </A>.

Wenn in Optionen eine Breite (W), aber keine Zeilen (R) oder Höhe (H) angegeben ist, werden Textzeilen bei Bedarf umbrochen und die Höhe des Steuerelements automatisch gesetzt.

Jedes Mal, wenn der Benutzer einen Link anklickt, wird das Click-Ereignis ausgelöst. Wenn das Steuerelement keinen Click-Rückruf hat (der mit GuiControl.OnEvent registriert wurde), wird der HREF-Wert des Links automatisch ausgeführt, als hätte man ihn an die Run-Funktion übergeben.

Siehe OnEvent-Beispiel #1 für eine Demonstration.

ListBox

Auch bekannt als Listenfeld. Eine Liste mit Auswahlmöglichkeiten.

Syntax:

GuiCtrl := MeineGui.Add("ListBox", Optionen, Einträge)
GuiCtrl := MeineGui.AddListBox(Optionen, Einträge)

Beispiel:

MeineLB := MeineGui.Add("ListBox", "r5", ["Rot", "Grün", "Blau", "Schwarz", "Weiß"])

Erscheinungsbild:

ListBox

ListBox: Parameter

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

ChooseN: Geben Sie für N die Positionsnummer eines Listeneintrags an, der vorab ausgewählt sein soll. Zum Beispiel bewirkt Choose5, dass der fünfte Listeneintrag vorab ausgewählt wird (wie bei anderen Optionen kann das auch eine Variable sein, z.B. "Choose" Var). Um die aktuelle Auswahl zu ändern, nachdem das Steuerelement erstellt wurde, verwenden Sie GuiControl.Choose. Wenn das Steuerelement die Multi-Option hat, rufen Sie GuiControl.Choose wiederholt auf, um mehrere Listeneinträge vorab auszuwählen.

Multi oder 0x8: Ermöglicht die Auswahl mehrerer Listeneinträge mit UMSCHALT- oder STRG-modifizierten Klicks. 0x8 ermöglicht dasselbe, aber ohne Drücken eines Modifikators. Wenn diese Option vorhanden ist, werden GuiControl.Value, GuiControl.Text und Gui.Submit einen Array von ausgewählten Listeneinträgen liefern/speichern. Einzelheiten finden Sie in den Bemerkungen unten.

ReadOnly: Verhindert, dass Listeneinträge beim Auswählen farblich hervorgehoben werden, allerdings werden GuiControl.Value, GuiControl.Text und Gui.Submit weiterhin die ausgewählten Listeneinträge liefern/speichern.

Sort: Sortiert die Listeneinträge automatisch in alphabetischer Reihenfolge, was auch Einfluss auf Listeneinträge hat, die nachträglich via GuiControl.Add hinzugefügt werden. Die Sort-Option ermöglicht auch eine inkrementelle Suche, mit der ein Listeneintrag durch Eingabe der ersten Zeichen seines Namens ausgewählt werden kann.

Tn: Setzt einen Tabstopp. Kann verwendet werden, um den Text in Spalten zu formatieren. Wenn die T-Option nicht verwendet wird, werden Tabstopps auf je 32 Dialogeinheiten gesetzt (die Breite jeder "Dialogeinheit" ist systemintern festgelegt). Wenn die T-Option nur einmal verwendet wird, werden Tabstopps auf je n Dialogeinheiten innerhalb der verfügbaren Breite des Steuerelements gesetzt. Zum Beispiel bewirkt t64 eine Verdopplung des Standardabstands zwischen den Tabstopps. Um benutzerdefinierte Tabstopps zu setzen, geben Sie die T-Option mehrmals an, z.B. t8 t16 t32 t64 t128. Für jede absolute Spaltenposition in der Liste wird ein Tabstopp gesetzt, bis zu einem Maximum von 50 Tabstopps.

0x100: Wendet den LBS_NOINTEGRALHEIGHT-Style an. Dieser Style bewirkt, dass die ListBox genau die angegebene Höhe hat. Wenn dieser Style nicht verwendet wird, wird die Höhe so angepasst, dass die Zeile am Ende der Liste vollständig sichtbar ist. Außerdem verhindert dieser Style, dass die ListBox automatisch beim Ändern ihrer Schrift kleiner gemacht wird.

Wn: Setzt die Breite des Steuerelements. Zum Beispiel bewirkt w400, dass das Steuerelement 400 Pixel breit gemacht wird. Wenn diese Option weggelassen wird, ist die Breite standardmäßig das 15-fache der aktuellen Schriftgröße.

Rn oder Hn: Setzt die Höhe des Steuerelements. Zum Beispiel bewirkt r7, dass im Steuerelement Platz für 7 Zeilen geschaffen wird, oder h400, dass die Gesamthöhe des Steuerelements auf 400 Pixel gesetzt wird. Wenn beide Optionen weggelassen werden, ist die Höhe standardmäßig 3 Zeilen.

(Unübliche numerische Styles): Eine Liste von Styles finden Sie in der ListBox-Styles-Tabelle.

Einträge

Typ: Array

Ein Array von Einträgen wie z.B. ["Rot", "Grün", "Blau"]. Um Einträge hinzuzufügen oder zu entfernen, nachdem das Steuerelement erstellt wurde, verwenden Sie GuiControl.Add bzw. GuiControl.Delete.

ListBox: Bemerkungen

GuiControl.Value liefert die Positionsnummer des aktuell ausgewählten Listeneintrags (der erste Eintrag ist 1, der zweite 2 und so weiter), oder 0, wenn nichts ausgewählt ist, während GuiControl.Text den Text des aktuell ausgewählten Eintrags zurückgibt. Gui.Submit speichert den Text, es sei denn, das Steuerelement hat die AltSubmit-Option, dann wird die Positionsnummer des Eintrags gespeichert.

Wenn das Steuerelement die Multi-Option hat, werden GuiControl.Value, GuiControl.Text und Gui.Submit ein Array von ausgewählten Einträgen liefern/speichern. Zum Beispiel bedeutet [1, 2, 3], dass die ersten drei Listeneinträge ausgewählt sind. Um die Listeneinträge einzeln aus dem Array zu extrahieren, können Sie MeineLB.Text[1] (1 wäre der erste Eintrag) oder wie folgt eine For-Schleife verwenden:

For Index, Feld in MeineLB.Text
{
    MsgBox "Auswahl Nr. " Index " ist " Feld
}

Jedes Mal, wenn der Benutzer einen oder mehrere Listeneinträge aus- oder abwählt, wird das Change-Ereignis ausgelöst. Die Ereignisse DoubleClick, Focus und LoseFocus werden ebenfalls unterstützt.

Um das Hinzufügen sehr vieler Listeneinträge performanter zu machen, verwenden Sie MeineLB.Opt("-Redraw"), bevor Sie die Operation durchführen, und danach MeineLB.Opt("+Redraw"). Weitere Informationen finden Sie unter Redraw.

ListView

Eines der umfangreichsten Steuerelemente, das vom Betriebssystem zur Verfügung gestellt wird. Es wird häufig verwendet, um eine Tabelle in Form von Zeilen und Spalten darzustellen. Das wohl bekannteste Beispiel dafür ist die detaillierte Auflistung von Dateien und Ordnern im Explorer.

Syntax:

GuiCtrl := MeineGui.Add("ListView", Optionen, SpaltenTitel)
GuiCtrl := MeineGui.AddListView(Optionen, SpaltenTitel)

Beispiel:

MeineLV := MeineGui.Add("ListView", "r20 w700", ["Name", "Ordner", "Größe (KB)", "Typ"])

Erscheinungsbild:

ListView

Weitere Informationen finden Sie auf der separaten ListView-Seite.

MonthCal

Ein hohes und breites Steuerelement, das alle Tage eines Monats in Kalenderform darstellt. Der Benutzer kann ein einzelnes Datum oder einen Datumsbereich auswählen.

Syntax:

GuiCtrl := MeineGui.Add("MonthCal", Optionen, Zeitstempel)
GuiCtrl := MeineGui.AddMonthCal(Optionen, Zeitstempel)

Beispiel:

MeinMC := MeineGui.Add("MonthCal")

Erscheinungsbild:

MonthCal

MonthCal: Parameter

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

Multi: Mehrfachauswahl. Ermöglicht dem Benutzer, einen Bereich benachbarter Datumsfelder mittels UMSCHALT-Klicks oder durch Halten und Ziehen der linken Maustaste auszuwählen (der Benutzer kann aber weiterhin ein einzelnes Datum auswählen). Diese Option ist automatisch wirksam, wenn mit dem Zeitstempel-Parameter ein Datumsbereich angegeben wurde. Diese Option kann nach der Erstellung des Steuerelements nicht mehr geändert werden.

RangeMinMax: Beschränkt die Datumsauswahl auf einem bestimmten Zeitraum. Geben Sie für MinMax das Start- und Enddatum im YYYYMMDD-Format an (mit einem Bindestrich dazwischen). Zum Beispiel bewirkt Range20050101-20050615, dass nur ein Datum oder Datumsbereich innerhalb der ersten 5,5 Monate des Jahres 2005 ausgewählt werden kann. Das Start- oder Enddatum kann weggelassen werden, um die Auswahl im Kalender nur in eine Richtung zu beschränken. Zum Beispiel bewirkt Range20010101, dass kein Datum vor 2001 ausgewählt werden kann, oder Range-20091231 (Bindestrich am Anfang), dass kein Datum nach 2009 ausgewählt werden kann. Fehlt diese Option, kann ein beliebiges Datum zwischen den Jahren 1601 und 9999 ausgewählt werden.

4: Zeigt die Kalenderwochen (1-53) auf der linken Seite jeder Tageszeile an. Die Wochennummerierung wird durch die lokalen Benutzereinstellungen des Betriebssystems bestimmt. Die drei möglichen Modi sind in der Dokumentation zu LOCALE_IFIRSTWEEKOFYEAR beschrieben.

8: Verhindert, dass das heutige Datum innerhalb des Steuerelements hervorgehoben wird.

16: Verhindert, dass das heutige Datum im unteren Bereich des Steuerelements angezeigt wird.

(Unübliche numerische Styles): Eine Liste von Styles finden Sie in der MonthCal-Styles-Tabelle.

Zeitstempel

Typ: Zeichenkette

Wenn leer oder weggelassen, wird das heutige Datum vorab ausgewählt. Andernfalls geben Sie Datumswerte im Format YYYYMMDD an - entweder ein einzelnes Datum, oder einen Datumsbereich durch Einfügen eines Bindestrichs zwischen zwei Datumswerten. Zum Beispiel bewirkt "20050531", dass der 31. Mai 2005 ausgewählt wird, und "20050525-20050531", dass jeder Tag vom 25. bis 31. Mai 2005 ausgewählt wird.

MonthCal: Bemerkungen

Breite (W) und Höhe (H) sollten bei einem MonthCal-Steuerelement weggelassen werden, da es sich automatisch für die Darstellung eines einzelnen Monats dimensioniert. Um mehrere Monate vertikal darzustellen, geben Sie R2 oder höher in Optionen an. Um mehrere Monate horizontal darzustellen, geben Sie W-2 (W minus 2) oder höher an. Diese Optionen können gleichzeitig vorhanden sein, um das Steuerelement in beide Richtungen zu erweitern.

Das Heute-Feld im unteren Bereich des Steuerelements kann angeklickt werden, um das heutige Datum auszuwählen. Das Monat-Jahr-Feld im oberen Bereich ist nützlich, um einen anderen Monat oder ein anderes Jahr auszuwählen.

Navigation mit der Tastatur: Alle unterstützten Tastaturkurzbefehle finden Sie unter DateTime (innerhalb des aufklappbaren Kalenders).

Bei Datumswerten im YYYYMMDD-Format kann MM und/oder DD weggelassen werden, so dass diese jeweils als 1 interpretiert werden. Zum Beispiel wird 200205 als 20020501 und 2005 als 20050101 behandelt.

GuiControl.Value liefert das Datum des aktuell ausgewählten Feldes im YYYYMMDD-Format (ohne Zeitkomponente). Gui.Submit speichert denselben Wert. Wenn die Mehrfachauswahl-Option aktiv ist, wird stattdessen das Start- und Enddatum mit einem Bindestrich dazwischen abgerufen (z.B. 20050101-20050108). Wenn in einem Mehrfachauswahl-Kalender nur ein Datum ausgewählt wurde, sind Start- und Enddatum zwar vorhanden, aber identisch. Mit StrSplit können Start- und Enddatum voneinander getrennt werden. Zum Beispiel würde Datum := StrSplit(MeinMC.Value, "-") das Startdatum in Datum[1] und das Enddatum in Datum[2] speichern.

Jedes Mal, wenn der Benutzer die Auswahl ändert, wird das Change-Ereignis ausgelöst.

Die Farben der Tageszahlen im Kalender richten sich nach den Farben, die via Gui.SetFont oder C-Option festgelegt wurden, sofern das Steuerelement das klassische Design hat. Um die Farben der anderen Bereiche des Kalenders zu ändern, verwenden Sie SendMessage wie folgt:

MCM_SETCOLOR      := 0x100A

MCSC_BACKGROUND   := 0 ; Gesamthintergrund
MCSC_MONTHBK      := 4 ; Hintergrund des Monats
MCSC_TEXT         := 1 ; Text des Monats
MCSC_TITLEBK      := 2 ; Hintergrund des Titels
MCSC_TITLETEXT    := 3 ; Text des Titels
MCSC_TRAILINGTEXT := 5 ; Text der anderen Monate

TitelHinterFarbe := 0xFFAA99 ; Neue Hintergrundfarbe des Titels (BGR, nicht RGB).
TitelTextFarbe := 0x0066CC ; Neue Textfarbe des Titels (BGR, nicht RGB).

MeineGui := Gui()
MeinMC := MeineGui.Add("MonthCal", "-Theme")
SendMessage(MCM_SETCOLOR, MCSC_TITLEBK, TitelHinterFarbe, MeinMC)
SendMessage(MCM_SETCOLOR, MCSC_TITLETEXT, TitelTextFarbe, MeinMC)
MeineGui.Show()

Picture

Ein Bereich zum Anzeigen eines Bildes.

Syntax:

GuiCtrl := MeineGui.Add("Picture", Optionen, BildDatei)
GuiCtrl := MeineGui.AddPicture(Optionen, BildDatei)

Beispiel:

MeinPic := MeineGui.Add("Picture", "w300 h-1", "C:\Meine Bilder\Firmenlogo.gif")

Picture: Parameter

Picture

Der Name des Steuerelements kann entweder Picture oder Pic sein.

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

AltSubmit: Weist das Programm an, die GDIPlus.dll von Microsoft zum Laden des Bildes zu verwenden, was bei GIF-, BMP- und Symbolbildern zu einer anderen Darstellung führen kann. Zum Beispiel bewirkt AltSubmit, dass ein GIF-Bild mit transparentem Hintergrund als transparente Bitmap geladen wird, die den Effekt von BackgroundTrans zulässt (die Transparenz von Symbolen ist auch ohne AltSubmit wirksam).

Wn und Hn: Die Breite und Höhe zum Skalieren des Bildes, wobei n ein Integer ist (diese Dimensionen bestimmen auch das zu ladende Symbol aus einer Multi-Symbol-Datei). Wenn eine Dimension weggelassen wird oder -1 ist, wird sie unter Beibehaltung des Seitenverhältnisses automatisch auf Basis der anderen Dimension berechnet. Wenn beide Dimensionen weggelassen werden, wird die Originalgröße des Bildes verwendet. Wenn eine der Dimensionen 0 ist, wird für diese Dimension die Originalgröße verwendet. Zum Beispiel bewirkt w200 h-1, dass das Bild 200 Pixel breit gemacht und dessen Höhe automatisch gesetzt wird. Wenn das Bild nicht geladen oder angezeigt werden kann (z.B. weil die Datei nicht gefunden wurde), wird ein Fehler ausgelöst und das Steuerelement nicht hinzugefügt.

IconN: Um eine andere Symbolgruppe als die erste in der Datei zu verwenden, geben Sie für N die Nummer der Gruppe an. Zum Beispiel bewirkt Icon2, dass das Standardsymbol aus der zweiten Symbolgruppe geladen wird.

BildDatei

Typ: Zeichenkette

Der Name einer Bild- oder Multi-Symbol-Datei (die im A_WorkingDir-Verzeichnis vermutet wird, wenn kein absoluter Pfad angegeben ist), oder ein Bitmap- oder Symbol-Handle wie z.B. "HBITMAP:" handle.

Bilddatei: Die ohne GDIPlus unterstützten Bildformate sind GIF, JPG, BMP, ICO, CUR und ANI. Andere Bildformate wie PNG, TIF, Exif, WMF und EMF verwenden standardmäßig GDIPlus.

Multi-Symbol-Datei: Symbole und Cursor können aus folgenden Dateitypen geladen werden: ICO, CUR, ANI, EXE, DLL, CPL, SCR und andere Typen, die Symbolressourcen enthalten. Um eine andere Symbolgruppe als die erste in der Datei zu verwenden, verwenden Sie die Icon-Option.

Picture: Bemerkungen

Jedes Mal, wenn der Benutzer das Bild anklickt, wird das Click-Ereignis ausgelöst. Das DoubleClick-Ereignis wird ebenfalls unterstützt. Nur Picture-Steuerelemente mit dem SS_NOTIFY-Style (0x100) senden Klick- und Doppelklickbenachrichtigungen, daher wird GuiControl.OnEvent automatisch diesen Style hinzufügen, wenn ein Click- oder DoubleClick-Rückruf registriert wird. Der SS_NOTIFY-Style veranlasst das Betriebssystem, den Text des Steuerelements automatisch in die Zwischenablage zu kopieren, wenn das Steuerelement doppelt angeklickt wird.

Um ein Bild als Hintergrund für andere Steuerelemente zu verwenden, muss das Bild normalerweise vor solchen Steuerelementen hinzugefügt werden. Wenn solche Steuerelemente jedoch eingabefähig sind und das Bild den SS_NOTIFY-Style (oben beschrieben) hat, muss das Bild nach diesen Steuerelementen erstellt werden und 0x4000000 (WS_CLIPSIBLINGS) in den Optionen des Picture-Steuerelements eingefügt werden. Dieser Trick kann auch verwendet werden, um ein Bild als Hintergrund für ein Tab- oder ListView-Steuerelement zu definieren.

Animierte GIF-Dateien werden in einem Picture-Steuerelement angezeigt, aber nicht animiert. Verwenden Sie stattdessen das ActiveX-Steuerelement. Zum Beispiel:

; Geben Sie unten den Pfad zur GIF-Datei an, die animiert werden soll (lokale Dateien sind auch möglich):
pic := "http://www.animatedgif.net/cartoons/A_5odie_e0.gif"
MeineGui := Gui()
MeineGui.Add("ActiveX", "w100 h150", "mshtml:<img src='" pic "' />")
MeineGui.Show()

Progress

Auch bekannt als Fortschrittsbalken. Ein zweifarbiger Balken, der den Fortschritt einer Operation visuell darstellt.

Syntax:

GuiCtrl := MeineGui.Add("Progress", Optionen, StartPos)
GuiCtrl := MeineGui.AddProgress(Optionen, StartPos)

Beispiel:

MeinProgress := MeineGui.Add("Progress", "w200 h20 cBlue", 75)

Erscheinungsbild:

Progress

Progress: Parameter

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

CFarbe: Ändert die Farbe des Balkens. Geben Sie für Farbe einen der 16 primären HTML-Farbnamen oder einen 6-stelligen RGB-Farbwert an. Beispiele: cRed, cFFFF33, cDefault. Wenn die C-Option nie verwendet wird (oder cDefault angegeben ist), wird die Standardbalkenfarbe des Systems verwendet.

BackgroundFarbe: Ändert die Hintergrundfarbe des Balkens. Geben Sie für Farbe einen der 16 primären HTML-Farbnamen oder einen 6-stelligen RGB-Farbwert an. Beispiele: BackgroundGreen, BackgroundFFFF33, BackgroundDefault. Wenn die Background-Option nie verwendet wird (oder BackgroundDefault angegeben ist), wird die Hintergrundfarbe des Fensters oder die des darunter liegenden Tab-Steuerelements verwendet.

RangeMinMax: Setzt den Wertebereich auf etwas anderes als 0 bis 100. Geben Sie für MinMax den Minimal- und Maximalwert an (mit einem Bindestrich dazwischen). Zum Beispiel erlaubt Range0-1000 Zahlen zwischen 0 und 1000; Range-50-50 Zahlen zwischen -50 und 50; und Range-10--5 Zahlen zwischen -10 und -5.

Smooth: Zeigt einen einfachen durchgehenden Balken an. Wenn diese Option fehlt und der Balken keine benutzerdefinierten Farben hat, wird der Balken an das aktuelle Windows-Design angepasst. Andernfalls wird der Balken in mehreren Segmenten dargestellt.

Vertical: Bewirkt, dass der Balken steigt oder fällt, anstatt sich horizontal zu bewegen.

Wn: Setzt die Breite des Steuerelements. Zum Beispiel bewirkt w400, dass das Steuerelement 400 Pixel breit gemacht wird. Wenn diese Option weggelassen wird, ist die Breite eines horizontalen Balkens standardmäßig das 15-fache der aktuellen Schriftgröße und die Breite eines vertikalen Balkens standardmäßig das 2-fache der aktuellen Schriftgröße.

Rn oder Hn: Setzt die Höhe des Steuerelements. Zum Beispiel bewirkt r7, dass das Steuerelement 7 Zeilen hoch gemacht wird, oder h400, dass dessen Höhe auf 400 Pixel gesetzt wird. Wenn beide Optionen weggelassen werden, ist die Höhe eines horizontalen Balkens standardmäßig das 2-fache der aktuellen Schriftgröße und die Höhe eines vertikalen Balkens standardmäßig 5 Zeilen.

(Unübliche numerische Styles): Eine Liste von Styles finden Sie in der Progress-Styles-Tabelle.

StartPos

Typ: Integer

Wenn leer oder weggelassen, beginnt der Balken bei 0 oder beim niedrigsten zulässigen Bereichswert. Andernfalls geben Sie die Startposition des Balkens an.

Progress: Bemerkungen

GuiControl.Value liefert die aktuelle numerische Position des Balkens. Gui.Submit speichert denselben Wert.

Um die Position des Balkens später zu ändern, gehen Sie wie folgt vor:

MeinProgress.Value += 20  ; Aktuelle Position um 20 erhöhen.
MeinProgress.Value := 50  ; Aktuelle Position auf 50 setzen.

Bei horizontalen Fortschrittsbalken ist die Dicke des Balkens identisch zur Höhe des Steuerelements. Bei vertikalen Fortschrittsbalken ist sie identisch zur Breite des Steuerelements.

Radio

Auch bekannt als Optionsfeld. Ein kleiner Kreis, der markiert oder unmarkiert sein kann.

Syntax:

GuiCtrl := MeineGui.Add("Radio", Optionen, Beschriftung)
GuiCtrl := MeineGui.AddRadio(Optionen, Beschriftung)

Beispiel:

MeinRadio := MeineGui.Add("Radio",, "Artikel erst versenden, wenn sie auf Lager sind.")

Erscheinungsbild:

Radio

Radio: Parameter

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

Checked: Das Radio-Steuerelement ist zu Beginn markiert (im eingeschalteten Zustand). Direkt nach dem Wort Checked kann optional 0 oder 1 angegeben werden, um den Startzustand (unmarkiert oder markiert) zu definieren. Mit anderen Worten, "Checked" ist dasselbe wie "Checked" VarMitEins.

Group: Startet eine neue Radiogruppe.

(Unübliche numerische Styles): Eine Liste von Styles finden Sie in der Radio-Styles-Tabelle.

Beschriftung

Typ: Zeichenkette

Ein Text, der rechts neben dem Kreis angezeigt wird. Diese Beschriftung dient in der Regel als Aufforderung oder Beschreibung und kann Zeilenvorschübe (`n) zum Starten neuer Zeilen enthalten.

Ein Und-Zeichen (&) kann verwendet werden, um einen Buchstaben zu unterstreichen, wie z.B. den Buchstaben P in "&Pause". Dies ermöglicht dem Benutzer, Alt+P als Tastaturkurzbefehl zu drücken. Um ein Und-Zeichen darzustellen, müssen zwei aufeinanderfolgende Und-Zeichen (&&) angegeben werden.

Radio: Bemerkungen

Solche Steuerelemente befinden sich üblicherweise in Radiogruppen, die jeweils aus zwei oder mehr Radio-Steuerelementen bestehen. Wenn der Benutzer ein Radio-Steuerelement auswählt, werden alle anderen Radio-Steuerelemente in der Gruppe automatisch abgewählt (der Benutzer kann auch mit den Pfeiltasten innerhalb einer Gruppe navigieren). Eine Radiogruppe wird automatisch erstellt und umfasst eine Reihe von nacheinander erstellten Radio-Steuerelementen. Um eine neue Gruppe zu beginnen, verwenden Sie die Group-Option für das erste Radio-Steuerelement – oder fügen Sie einfach ein Nicht-Radio-Steuerelement dazwischen ein, was automatisch eine neue Gruppe beginnt.

GuiControl.Value liefert 1 für markiert oder 0 für unmarkiert. Um stattdessen die Positionsnummer des ausgewählten Radio-Steuerelements in einer Radiogruppe abzurufen, geben Sie einem der Radio-Steuerelemente einen Namen und verwenden Sie Gui.Submit.

Jedes Mal, wenn der Benutzer das Radio-Steuerelement auswählt, wird das Click-Ereignis ausgelöst. Im Gegensatz zum Einzelvariablenmodus, der im vorigen Absatz beschrieben wurde, muss der Ereignisrückruf für jedes Radio-Steuerelement in einer Radiogruppe registriert werden, bei dem sie aufgerufen werden soll. Auf diese Weise ist es möglich, das Anklicken bestimmter Radio-Steuerelemente zu ignorieren.

Die Ereignisse DoubleClick, Focus und LoseFocus werden ebenfalls unterstützt. Da diese Ereignisse nur ausgelöst werden, wenn das Steuerelement den BS_NOTIFY-Style (0x4000) hat, fügt GuiControl.OnEvent diesen Style automatisch hinzu.

Wenn in Optionen eine Breite (W), aber keine Zeilen (R) oder Höhe (H) angegeben ist, werden Textzeilen bei Bedarf umbrochen und die Höhe des Steuerelements automatisch gesetzt.

Bekannte Einschränkung: Bestimmte Desktop-Designs können den Text eines Radio-Steuerelements nicht ordnungsgemäß darstellen. Sollte dies der Fall sein, versuchen Sie, -Wrap (minus Wrap) in Optionen einzufügen. Dies verhindert aber auch, dass mehr als eine Textzeile angezeigt wird.

Slider

Auch bekannt als Schieberegler. Ein Regler, den der Benutzer entlang einer vertikalen oder horizontalen Linie verschieben kann. Ein bekanntes Beispiel hierfür ist der Lautstärkeregler im Tray-Bereich der Taskleiste.

Syntax:

GuiCtrl := MeineGui.Add("Slider", Optionen, StartPos)
GuiCtrl := MeineGui.AddSlider(Optionen, StartPos)

Beispiel:

MeinSlider := MeineGui.Add("Slider",, 50)

Erscheinungsbild:

Slider

Slider: Parameter

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

Buddy1StrlmntID und Buddy2StrlmntID: Platziert automatisch bis zu zwei vorhandene Steuerelemente an den Enden des Schiebereglers. Buddy1 wird auf der linken oder oberen Seite angezeigt (abhängig davon, ob die Vertical-Option vorhanden ist). Buddy2 wird auf der rechten oder unteren Seite angezeigt. Geben Sie für StrlmntID den Namen oder das HWND eines existierenden Steuerelements an. Zum Beispiel würde Buddy1MeinObertext ein Steuerelement zuweisen, dessen expliziter Name "MeinObertext" ist. Der Text oder die ClassNN eines Steuerelements kann ebenfalls verwendet werden, allerdings nur bis zum ersten Leer- oder Tabulatorzeichen.

Center: Der Regler (verschiebbare Knopf) ist nicht wie üblich an einem Ende spitzförmig, sondern wird als Rechteck dargestellt.

Invert: Kehrt das Steuerelement um, so dass zum Verringern des Wertes der Regler nach rechts/unten statt nach links/oben verschoben werden muss. Dies wird typischerweise verwendet, um einen vertikalen Schieberegler zu einem klassischen Lautstärkeregler zu machen. Beachten Sie, dass die ToolTip-Option diese Umkehrung ignoriert und daher nicht verwendet werden sollte.

Left: Der Regler (verschiebbare Knopf) ist nicht wie üblich am unteren, sondern oberen Ende spitzförmig. Wenn die Vertical-Option aktiv ist, ist der Regler links statt rechts spitzförmig.

LineN: Geben Sie für N die Anzahl der Positionen an, die verschoben werden sollen, wenn der Benutzer , , oder drückt. Zum Beispiel Line2.

NoTicks: Entfernt die Teilstriche entlang der Linie.

PageN: Geben Sie für N die Anzahl der Positionen an, die verschoben werden sollen, wenn der Benutzer Bild↑ oder Bild↓ drückt. Zum Beispiel Page10.

RangeMinMax: Setzt den Wertebereich auf etwas anderes als 0 bis 100. Geben Sie für MinMax den Minimal- und Maximalwert an (mit einem Bindestrich dazwischen). Zum Beispiel erlaubt Range1-1000 die Auswahl einer Zahl zwischen 1 und 1000; Range-50-50 eine Zahl zwischen -50 und 50; und Range-10--5 eine Zahl zwischen -10 und -5.

ThickN: Geben Sie für N die Dicke des Reglers (verschiebbaren Knopfs) in Pixel an. Zum Beispiel Thick30. Um den Regler dicker zu machen, ist es wahrscheinlich notwendig, entweder die Center-Option anzugeben oder das Design des Steuerelements zu entfernen (durch Angabe von -Theme).

TickIntervalN: Zeigt in regelmäßigen Abständen Teilstriche entlang der Linie an. Geben Sie für N das Intervall an, wie oft die Teilstriche angezeigt werden sollen (wenn das Intervall nie gesetzt wurde, gilt standardmäßig 1). Je kleiner das Intervall, desto mehr Teilstriche werden gesetzt. Zum Beispiel bewirkt TickInterval10, dass an jede 10. Position ein Teilstrich angezeigt wird.

ToolTip: Zeigt einen Tooltip mit der numerischen Position des Schiebereglers, wenn der Benutzer den Regler mit der Maus zieht. Um den Tooltip auf einer unüblichen Position anzuzeigen, geben Sie stattdessen eines der folgenden Wörter an: ToolTipLeft oder ToolTipRight (für vertikale Schieberegler); ToolTipTop oder ToolTipBottom (für horizontale Schieberegler).

Vertical: Bewirkt, dass der Regler nach oben/unten statt nach links/rechts geschoben werden muss.

Wn: Setzt die Breite des Steuerelements. Zum Beispiel bewirkt w400, dass das Steuerelement 400 Pixel breit gemacht wird. Wenn diese Option weggelassen wird, ist die Breite eines horizontalen Schiebereglers standardmäßig das 15-fache der aktuellen Schriftgröße und die Breite eines vertikalen Schiebereglers standardmäßig 30 Pixel (außer wenn eine Dicke angegeben wurde).

Rn oder Hn: Setzt die Höhe des Steuerelements. Zum Beispiel bewirkt r7, dass das Steuerelement 7 Zeilen hoch gemacht wird, oder h400, dass dessen Höhe auf 400 Pixel gesetzt wird. Wenn beide Optionen weggelassen werden, ist die Höhe eines horizontalen Schiebereglers standardmäßig 30 Pixel (außer wenn eine Dicke angegeben wurde) und die Höhe eines vertikalen Schiebereglers standardmäßig 5 Zeilen.

(Unübliche numerische Styles): Eine Liste von Styles finden Sie in der Slider-Styles-Tabelle.

StartPos

Typ: Integer

Wenn leer oder weggelassen, beginnt der Schieberegler bei 0 oder beim niedrigsten zulässigen Bereichswert. Andernfalls geben Sie die Startposition des Reglers an.

Slider: Bemerkungen

GuiControl.Value liefert die aktuelle numerische Position des Schiebereglers. Gui.Submit speichert denselben Wert.

Jedes Mal, wenn der Benutzer aufgehört hat, den Regler zu verschieben (z.B. beim Loslassen der linken Maustaste nach einem Ziehvorgang), wird das Change-Ereignis ausgelöst. Wenn das Steuerelement die AltSubmit-Option hat, wird das Change-Ereignis deutlich häufiger ausgelöst, nämlich nach jeder sichtbaren Bewegung des Reglers, während der Benutzer ihn mit der Maus zieht. Der Rückruf erhält eine Zahl, die angibt, wie der Regler verschoben wurde. Einzelheiten finden Sie unter Change.

Der Benutzer kann den Regler wie folgt verschieben: 1) mit der Maus ziehen; 2) auf den Linienbereich klicken; 3) das Mausrad drehen, während das Steuerelement den Fokus hat; 4) folgende Tasten drücken, während das Steuerelement den Fokus hat: , , , , Bild↑, Bild↓, Pos1 und Ende.

StatusBar

Auch bekannt als Statusleiste. Eine Leiste mit Text und/oder Symbolen am unteren Rand eines Fensters, die üblicherweise verwendet wird, um geänderte Zustände zu melden.

Syntax:

GuiCtrl := MeineGui.Add("StatusBar", Optionen, Text)
GuiCtrl := MeineGui.AddStatusBar(Optionen, Text)

Beispiel:

MeineSB := MeineGui.Add("StatusBar",, "Starttext der Leiste (kann leer gelassen werden).")
MeineSB.SetText("Es sind " ReihenAnzahl " Reihen markiert.")

Erscheinungsbild:

StatusBar

StatusBar: Parameter

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

BackgroundFarbe: Ändert die Hintergrundfarbe des Steuerelements. Geben Sie für Farbe einen Farbnamen (siehe Farbentabelle) oder RGB-Wert (mit oder ohne 0x-Präfix) an. Beispiele: BackgroundSilver, BackgroundFFDD99, BackgroundDefault. Beachten Sie, dass das Steuerelement das klassische Design haben muss.

(Unübliche numerische Styles): Eine Liste von Styles finden Sie in der StatusBar-Styles-Tabelle.

Text

Typ: Zeichenkette

Wenn leer oder weggelassen, ist das Steuerelement anfangs leer. Andernfalls geben Sie den Text an, der im Steuerelement erscheinen soll.

StatusBar: Methoden

Neben den regulären Methoden/Eigenschaften eines GUI-Steuerelements besitzt dieses Steuerelement die folgenden Methoden:

SetText

Zeigt einen neuen Text in einem bestimmten Segment der Statusleiste an.

GuiCtrl.SetText(NeuerText , SegmentNummer, Style)

Parameter

NeuerText

Typ: Zeichenkette

Es können bis zu zwei Tabulatorzeichen (`t) im neuen Text verwendet werden: Alles, was sich rechts vom ersten Tabulatorzeichen befindet, wird innerhalb des Segments zentriert, und alles, was sich rechts vom zweiten Tabulatorzeichen befindet, wird rechtsbündig gemacht.

SegmentNummer

Typ: Integer

Wenn weggelassen, wird standardmäßig 1 verwendet. Andernfalls geben Sie einen Integer im Bereich von 1 bis 256 an.

Style

Typ: Integer

Wenn weggelassen, wird standardmäßig 0 verwendet, also ein klassischer Rahmen, der das Segment aussehen lässt, als wäre es abgesenkt. Andernfalls geben Sie 1 an, um das Segment ohne Rahmen darzustellen, oder 2, um das Segment aussehen zu lassen, als wäre es angehoben.

SetParts

Teilt die Leiste in mehrere Segmente gemäß bestimmter Breiten auf.

GuiCtrl.SetParts(Breite1, Breite2, ... Breite255)

Parameter

Breite1 ... Breite255

Typ: Integer

Wenn alle Parameter weggelassen werden, wird der Urzustand der Leiste (ein einzelnes, langes Segment) wiederhergestellt. Andernfalls können die Breiten der neuen Segmente angegeben werden, wobei zu beachten ist, dass die Breite des letzten Segments automatisch auf die verbleibende Breite der Leiste gesetzt wird. Zum Beispiel bewirkt MeineSB.SetParts(50, 50), dass drei Segmente erstellt werden: Die ersten zwei mit einer Breite von 50 und das letzte mit der verbleibenden Breite. Die Zahlen sind in Pixel.

Rückgabewert

Typ: Integer

Diese Methode gibt das Fensterhandle (HWND) des Steuerelements zurück.

Bemerkungen

Alle Segmente, die mit dieser Methode "gelöscht" wurden, werden das nächste Mal, wenn sie angezeigt werden, vorerst ohne Text dargestellt. Außerdem werden ihre Symbole automatisch zerstört.

SetIcon

Zeigt ein kleines Symbol links neben dem Text eines bestimmten Segments an.

GuiCtrl.SetIcon(DateiName , SymbolNummer, SegmentNummer)

Parameter

DateiName

Typ: Zeichenkette

Der Name einer Bild- oder Multi-Symbol-Datei wie z.B. "Shell32.dll", oder ein Bitmap- oder Symbol-Handle wie z.B. "HICON:" handle. Eine Liste unterstützter Formate finden Sie unter Picture. Die Datei wird im A_WorkingDir-Verzeichnis vermutet, wenn kein absoluter Pfad angegeben ist.

SymbolNummer

Typ: Integer

Wenn weggelassen, wird standardmäßig 1 verwendet (die erste Symbolgruppe). Andernfalls geben Sie die Nummer der Symbolgruppe an, die in der Datei verwendet werden soll. Zum Beispiel bewirkt 2, dass das Standardsymbol aus der zweiten Symbolgruppe verwendet wird. Wenn negativ, wird dessen Absolutwert als Ressourcen-ID eines Symbols innerhalb einer EXE-Datei vermutet.

SegmentNummer

Typ: Integer

Wenn weggelassen, wird standardmäßig 1 verwendet. Andernfalls geben Sie einen Integer im Bereich von 1 bis 256 an.

Rückgabewert

Typ: Integer

Diese Methode gibt das Handle des Symbols (HICON) zurück. HICON ist eine Systemressource, die für die meisten Skripte irrelevant ist und automatisch zerstört wird, sobald das Fenster der Statusleiste zerstört wird. Außerdem wird ein altes Symbol automatisch zerstört, wenn es mit dieser Methode durch ein neues Symbol ersetzt wird. Dies lässt sich wie folgt vermeiden:

SendMessage(0x040F, SegmentNummer - 1, HICON, MeineSB)  ; 0x040F ist SB_SETICON.

StatusBar: Bemerkungen

Für eine einfache Statusleiste genügt es, SetText aufzurufen, um dem Benutzer mitzuteilen, dass sich etwas geändert hat. Um mehr als eine Information zu melden, kann die Leiste via SetParts in mehrere Segmente aufgeteilt werden. Mit SetIcon können Symbole in die Leiste eingefügt werden.

Jedes Mal, wenn der Benutzer auf die Leiste klickt, wird das Click-, DoubleClick- oder ContextMenu-Ereignis ausgelöst, und der Rückruf erhält die Segmentnummer. Allerdings kann die Nummer ein sehr großer Integer sein, wenn der Benutzer in der Nähe des Größenziehpunkts auf der rechten Seite der Leiste klickt.

Obwohl Schriftgröße, Schriftart und Schriftstil über GuiControl.SetFont festgelegt werden können (wie bei den meisten anderen Steuerelementen auch), kann die Textfarbe nicht geändert werden. Allerdings kann mit der Background-Option die Hintergrundfarbe der Statusleiste geändert werden.

Um die Leiste versteckt zu erstellen, verwenden Sie MeineSB := MeineGui.Add("StatusBar", "Hidden"). Um die Leiste irgendwann nach ihrer Erstellung zu verstecken, verwenden Sie MeineSB.Visible := false. Mit MeineSB.Visible := true kann sie wieder sichtbar gemacht werden. Beachten Sie, dass beim Verstecken der Leiste die Höhe des Fensters nicht reduziert wird. Falls das gewünscht ist, verwenden Sie einfach MeineGui.Show("AutoSize").

Bekannte Einschränkungen: 1) Steuerelemente, die sich mit der Statusleiste überschneiden, werden manchmal über diese gezeichnet. Um das zu verhindern, gibt es z.B. die Möglichkeit, solche Steuerelemente mit dem Size-Ereignis dynamisch zu verkleinern. 2) Positionierungs- und Größenoptionen werden ignoriert. 3) Jedes Fenster kann maximal eine Statusleiste enthalten.

TreeView-Beispiel #1 zeigt eine mehrfach segmentierte Statusleiste.

Tab

Ein Steuerelement, das aus mehreren Registerkarten besteht. Jede Registerkarte kann eigene Steuerelemente enthalten. Der Wechsel zwischen den Registerkarten erfolgt durch Anklicken oder Auswählen ihrer Reiter. Sichtbar sind stets nur die Steuerelemente der aktuell aktiven Registerkarte.

Syntax:

GuiCtrl := MeineGui.Add("Tab", Optionen, ReiterNamen)
GuiCtrl := MeineGui.AddTab(Optionen, ReiterNamen)

Beispiel:

MeinTab := MeineGui.Add("Tab",, ["Allgemein", "Ansicht", "Einstellungen"])

Erscheinungsbild:

Tab

Tab: Parameter

Tab

Der Name des Steuerelements kann entweder Tab, Tab2 oder Tab3 sein.

Tab: Aus Gründen der Abwärtskompatibilität beibehalten, da sich Tab und Tab2/Tab3 unterschiedlich verhalten.

Tab2: Tab2 behebt seltene Neuzeichnungsprobleme im originalen Tab-Steuerelement, aber verursacht einige andere Probleme.

Tab3: Empfohlen. Behebt einige Probleme, die Tab und Tab2 betreffen. Steuerelemente werden innerhalb eines unsichtbaren "Tab-Dialogfensters" platziert, das zusammen mit dem Tab-Steuerelement verschoben oder vergrößert/verkleinert wird. Das Tab-Steuerelement ist standardmäßig thematisiert.

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

ChooseN: Geben Sie für N die Positionsnummer einer Registerkarte an, die vorab ausgewählt sein soll. Zum Beispiel bewirkt Choose5, dass die fünfte Registerkarte vorab ausgewählt wird (wie bei anderen Optionen kann das auch eine Variable sein, z.B. "Choose" Var). Um die aktuelle Auswahl zu ändern, nachdem das Steuerelement erstellt wurde, verwenden Sie GuiControl.Choose.

Background: Geben Sie -Background (minus Background) an, um die benutzerdefinierte Hintergrundfarbe des Fensters zu überschreiben und die Standardfarbe des Systems für Tab-Steuerelemente zu verwenden.

Theme: Passt das Tab-Steuerelement an das aktuelle Windows-Design an. Allerdings werden die meisten Steuerelemente im Tab-Steuerelement seltsam aussehen, da ihr Hintergrund nicht mit dem des Tab-Steuerelements übereinstimmt. Um dieses Problem zumindest bei einigen Steuerelementen (z.B. Text) zu korrigieren, fügen Sie BackgroundTrans in ihren Optionen ein. Tab3 ist standardmäßig thematisiert und erfordert diese Korrektur nicht.

Buttons: Zeigt anstelle von Reitern eine Reihe von Schaltflächen im oberen Bereich des Steuerelements an (in diesem Fall ist der Rahmen standardmäßig nicht vorhanden, weil der Anzeigebereich in der Regel keine Steuerelemente enthält).

Left, Right oder Bottom: Geben Sie eines dieser Wörter an, um die Reiter nicht wie üblich im oberen, sondern im linken, rechten oder unteren Bereich des Steuerelements anzuzeigen. Bei Left und Right sind Einschränkungen zu beachten; siehe TCS_VERTICAL.

Wrap: Geben Sie -Wrap (minus Wrap) an, um zu verhindern, dass die Reiter mehr als eine Reihe beanspruchen (wenn aus Platzgründen nicht alle Reiter angezeigt werden können, werden zwei Pfeilschaltflächen bereitgestellt, die der Benutzer drücken kann, um zum gewünschten Reiter zu scrollen).

Wn: Setzt die Breite des Steuerelements. Zum Beispiel bewirkt w400, dass das Steuerelement 400 Pixel breit gemacht wird. Wenn diese Option weggelassen wird, ist die Breite standardmäßig das 30-fache der aktuellen Schriftgröße plus das 3-fache des X-Abstands. Tab3 mit Untersteuerelementen ignoriert diese Standardeinstellung.

Rn oder Hn: Setzt die Höhe des Steuerelements. Zum Beispiel bewirkt r7, dass im Steuerelement Platz für 7 Zeilen geschaffen wird, oder h400, dass die Gesamthöhe des Steuerelements auf 400 Pixel gesetzt wird. Wenn beide Optionen weggelassen werden, ist die Höhe standardmäßig 10 Zeilen. Tab3 mit Untersteuerelementen ignoriert diese Standardeinstellung.

(Unübliche numerische Styles): Eine Liste von Styles finden Sie in der Tab-Styles-Tabelle.

ReiterNamen

Typ: Array

Ein Array von Namen wie z.B. ["Rot", "Grün", "Blau"] zur Benennung der Reiter der Registerkarten. Um Registerkarten hinzuzufügen oder zu entfernen, nachdem das Steuerelement erstellt wurde, verwenden Sie GuiControl.Add bzw. GuiControl.Delete.

Tab: Methoden

Neben den regulären Methoden/Eigenschaften eines GUI-Steuerelements besitzt dieses Steuerelement die folgenden Methoden:

UseTab

Bewirkt, dass danach hinzugefügte Steuerelemente einer Registerkarte zugeordnet werden.

GuiCtrl.UseTab(Registerkarte, VollNameVergleich)

Parameter

Registerkarte

Typ: Integer oder Zeichenkette

Wenn leer oder weggelassen, wird standardmäßig 0 verwendet, wodurch danach hinzugefügte Steuerelemente keinem Tab-Steuerelement zugeordnet werden. Andernfalls geben Sie 1 für die erste Registerkarte, 2 für die zweite und so weiter an.

Wenn eine Zeichenkette (oder numerische Zeichenkette) angegeben ist, wird UseTab alle Reiternamen der Registerkarten durchgehen, bis es eine Übereinstimmung findet. Die Suche erfolgt nicht Groß-/Kleinschreibung-sensitiv. Mit VollNameVergleich kann das Übereinstimmungsverhalten geändert werden.

VollNameVergleich

Typ: Boolesch

Wenn weggelassen, wird standardmäßig false verwendet.

Wenn false, wird eine Registerkarte verwendet, deren Reitername mit der Zeichenkette beginnt. Wenn das Steuerelement z.B. die Registerkarte mit dem Reiternamen "UNIX-Text" enthält, genügt die Angabe des Wortes unix (kleingeschrieben), um diese Registerkarte zu verwenden.

Wenn true, wird eine Registerkarte verwendet, deren Reitername vollständig mit der Zeichenkette übereinstimmt.

Tab: Bemerkungen

Standardmäßig werden alle Steuerelemente, die nach dem Erstellen eines Tab-Steuerelements hinzugefügt werden, der ersten Registerkarte zugeordnet. Dies kann jederzeit mit UseTab wie folgt geändert werden:

MeinTab.UseTab()  ; Künftige Steuerelemente werden keinem Tab-Steuerelement zugeordnet.
MeinTab.UseTab(3)  ; Künftige Steuerelemente werden der dritten Registerkarte des aktuellen Tab-Steuerelements zugeordnet.
MeinTab2.UseTab(3)  ; Künftige Steuerelemente werden der dritten Registerkarte des zweiten Tab-Steuerelements zugeordnet.
MeinTab.UseTab("Name")  ; Künftige Steuerelemente werden einer Registerkarte zugeordnet, dessen Reitername mit Name beginnt (nicht Groß-/Kleinschreibung-sensitiv).
MeinTab.UseTab("Name", true)  ; Dasselbe wie oben, aber mit exakter Übereinstimmung (nicht Groß/Kleinschreibung-sensitiv).

Alle obigen Beispiele (außer Name) können verwendet werden, um Steuerelemente einer Registerkarte oder einem Tab-Steuerelement zuzuordnen, die bzw. das noch nicht existiert. In diesem Fall aber werden die unten beschriebenen Optionen zur relativen Positionierung nicht unterstützt.

Standardmäßig bekommt das erste Untersteuerelement einer Registerkarte eine spezielle Position zugewiesen, wenn: 1) die X- und Y-Koordinate weggelassen werden – in diesem Fall wird das erste Untersteuerelement in die obere linke Innenecke des Tab-Steuerelements positioniert (mit vordefinierten X-Abständen und Y-Abständen) und nachfolgende Untersteuerelemente unterhalb des vorherigen Steuerelements positioniert; 2) die Positionierungsoptionen X+n und/oder Y+n angegeben sind – in diesem Fall wird das Untersteuerelement relativ zur oberen linken Innenecke des Tab-Steuerelements positioniert. Zum Beispiel bewirkt x+10 y+10, dass das Steuerelement von der oberen linken Ecke aus 10 Pixel nach rechts und 10 Pixel nach unten positioniert wird.

GuiControl.Value liefert die Positionsnummer der aktuell ausgewählten Registerkarte (die erste Registerkarte ist 1, die zweite 2 und so weiter), oder 0, wenn nichts ausgewählt ist, während GuiControl.Text den Reiternamen der aktuell ausgewählten Registerkarte zurückgibt. Gui.Submit speichert den Reiternamen, es sei denn, das Steuerelement hat die AltSubmit-Option, dann wird die Positionsnummer der Registerkarte gespeichert.

Jedes Mal, wenn der Benutzer zu einer anderen Registerkarte wechselt, wird das Change-Ereignis ausgelöst.

Navigation mit der Tastatur: Der Benutzer kann Strg+Bild↑/Bild↓ drücken, um von Registerkarte zu Registerkarte zu navigieren; wenn sich der Tastaturfokus auf einem Steuerelement befindet, das keinem Tab-Steuerelement zugeordnet ist, wird zum erstem Tab-Steuerelement des Fensters navigiert. Strg+Tab und Strg+Umschalt+Tab können ebenfalls verwendet werden, funktionieren aber nicht, wenn das aktuell fokussierte Steuerelement ein mehrzeiliges Eingabefeld ist.

Jedes Fenster kann maximal 255 Tab-Steuerelemente enthalten. Jedes Tab-Steuerelement kann maximal 256 Registerkarten haben. Es ist nicht möglich, ein Tab-Steuerelement in ein anderes Tab-Steuerelement einzufügen.

Tab vs. Tab2 vs. Tab3

Hinweis: "Tab-Steuerelement" ist ein allgemeiner Begriff für alle drei Typen (Tab, Tab2 und Tab3). Wenn sich dieser Abschnitt explizit auf das originale "Tab"-Steuerelement bezieht, wird es "Tab1" genannt, um Missverständnisse zu vermeiden.

Übergeordnetes Fenster: Das übergeordnete Fenster eines Steuerelements beeinflusst sowohl die Positionierung und Sichtbarkeit des Steuerelements als auch die Tabulatornavigationsreihenfolge. Ein Untersteuerelement innerhalb eines existierenden Tab3-Steuerelements verwendet als übergeordnetes Fenster das sogenannte "Tab-Dialogfenster", welches den Anzeigebereich des Tab3-Steuerelements ausfüllt. Alle anderen Steuerelemente, einschließlich der Untersteuerelemente eines Tab1- oder Tab2-Steuerelements, verwenden nur das GUI-Fenster selbst als übergeordnetes Fenster.

Positionierung: Untersteuerelemente eines Tab1- und Tab2-Steuerelements müssen sich nicht unbedingt im Anzeigebereich des Tab-Steuerelements befinden, d.h. sie werden weiterhin versteckt bzw. sichtbar gemacht, wenn ihr Reiter aus- oder abgewählt wird. Dieses Verhalten ist besonders für die Buttons-Option nützlich.

Im Falle von Tab3 verhalten sich Untersteuerelemente, die einer Registerkarte vor der Erstellung des Tab3-Steuerelements zugewiesen wurden, so, als wären sie einem Tab1- oder Tab2-Steuerelement hinzugefügt worden. Alle anderen Untersteuerelemente sind nur im Anzeigebereich des Tab3-Steuerelements sichtbar.

Beim Verschieben eines Tab3-Steuerelements werden auch seine Untersteuerelemente verschoben. Dieses Verhalten gilt nicht für Tab1- und Tab2-Steuerelemente.

Sollte der seltene Fall auftreten, dass WinMove (oder ein äquivalentes DllCall) zum Verschieben eines Steuerelements verwendet wird, müssen die Koordinaten relativ zum übergeordneten Fenster des Steuerelements sein, das nicht unbedingt die GUI selbst ist (siehe oben). GuiControl.Move dagegen verwendet immer GUI-Koordinaten und ControlMove immer Fensterkoordinaten, unabhängig davon, welchem Fenster das Steuerelement übergeordnet ist.

Größenberechnung: Wenn das Tab3-Steuerelement keine explizit angegebene Breite und/oder Höhe hat, werden diese automatisch zu folgenden Zeitpunkten berechnet (je nachdem, was zuerst eintritt, nachdem das Steuerelement erstellt wurde):

Zum Errechnen der Größe werden Untersteuerelemente, die zum Zeitpunkt der automatischen Größenanpassung existieren, plus Standardabstände einbezogen. Die Größenberechnung wird nur einmal durchgeführt, unabhängig davon, ob später neue Steuerelemente hinzugefügt werden. Wenn das Tab3-Steuerelement leer ist, bekommt es wie Tab1 oder Tab2 eine Standardgröße zugewiesen.

Die Größe von Tab1- und Tab2-Steuerelementen wird nicht automatisch angepasst; sie erhalten eine willkürliche Standardgröße.

Tabulatornavigationsreihenfolge: Die Navigationsreihenfolge via Tab hängt von der Reihenfolge ab, in der die Steuerelemente erstellt wurden. Bei Tab-Steuerelementen hängt die Navigationsreihenfolge zusätzlich vom Typ des Tab-Steuerelements ab:

Benachrichtigungsmeldungen (Tab3): Gewöhnliche und benutzerdefinierte Steuerelemente senden in der Regel Benachrichtigungsmeldungen an ihre übergeordneten Fenster. Alle WM_COMMAND-, WM_NOTIFY-, WM_VSCROLL-, WM_HSCROLL- oder WM_CTLCOLOR...-Meldungen, die an das Tab-Dialogfenster eines Tab3-Steuerelements gesendet wurden, werden an das GUI-Fenster weitergeleitet und können via OnMessage erkannt und verarbeitet werden. Wenn das Tab3-Steuerelement thematisiert ist und das Untersteuerelement ohne die BackgroundTrans-Option erstellt wurde, wird WM_CTLCOLORSTATIC vom Tab-Dialogfenster verarbeitet und nicht weitergeleitet. Andere Benachrichtigungsmeldungen (z.B. benutzerdefinierte Meldungen) werden nicht unterstützt.

Bekannte Probleme mit Tab2:

Bekannte Probleme mit Tab1:

Text

Ein randloser Textbereich, der vom Benutzer nicht editiert werden kann. Wird oft zur Beschriftung anderer Steuerelemente verwendet.

Syntax:

GuiCtrl := MeineGui.Add("Text", Optionen, Zeichenkette)
GuiCtrl := MeineGui.AddText(Optionen, Zeichenkette)

Beispiel:

MeinText := MeineGui.Add("Text",, "Bitte tragen Sie Ihren Namen ein:")

Erscheinungsbild:

Text

Textparameter

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

(Unübliche numerische Styles): Eine Liste von Styles finden Sie in der Text-Styles-Tabelle.

Zeichenkette

Typ: Zeichenkette

Ein Text, der angezeigt wird. Kann Zeilenvorschübe (`n) zum Starten neuer Zeilen enthalten. Außerdem kann via Fortsetzungsbereich eine lange Zeile in mehrere kurze Zeilen aufgeteilt werden.

Ein Und-Zeichen (&) kann verwendet werden, um einen Buchstaben zu unterstreichen, wie z.B. den Buchstaben V in "&Vorname". Dies ermöglicht dem Benutzer, den Tastaturkurzbefehl Alt+V zu drücken, um den Tastaturfokus auf das erste eingabefähige Steuerelement zu setzen, das nach dem Text-Steuerelement erstellt wurde. Um ein Und-Zeichen darzustellen, müssen zwei aufeinanderfolgende Und-Zeichen (&&) angegeben werden. Um die Sonderbehandlung der Und-Zeichen komplett zu deaktivieren, fügen Sie 0x80 in Optionen ein.

Text: Bemerkungen

Jedes Mal, wenn der Benutzer den Text anklickt, wird das Click-Ereignis ausgelöst. Das DoubleClick-Ereignis wird ebenfalls unterstützt. Nur Text-Steuerelemente mit dem SS_NOTIFY-Style (0x100) senden Klick- und Doppelklickbenachrichtigungen, daher wird GuiControl.OnEvent automatisch diesen Style hinzufügen, wenn ein Click- oder DoubleClick-Rückruf registriert wird. Der SS_NOTIFY-Style veranlasst das Betriebssystem, den Text des Steuerelements automatisch in die Zwischenablage zu kopieren, wenn das Steuerelement doppelt angeklickt wird.

Wenn in Optionen eine Breite (W), aber keine Zeilen (R) oder Höhe (H) angegeben ist, werden Textzeilen bei Bedarf umbrochen und die Höhe des Steuerelements automatisch gesetzt.

TreeView

Ermöglicht die Darstellung einer Hierarchie von mehreren ineinander verschachtelten Elementen. Das wohl bekannteste Beispiel dafür ist der Navigationsbereich am linken Rand eines Explorer-Fensters, mit dem Laufwerke und Ordner ausgewählt werden können.

Syntax:

GuiCtrl := MeineGui.Add("TreeView", Optionen)
GuiCtrl := MeineGui.AddTreeView(Optionen)

Beispiel:

MeineTV := MeineGui.Add("TreeView", "r10")

Erscheinungsbild:

TreeView

Weitere Informationen finden Sie auf der separaten TreeView-Seite.

UpDown

Zwei Pfeile als Schaltflächen, die der Benutzer drücken kann, um einen Wert zu erhöhen oder zu verringern. Standardmäßig fügt sich ein UpDown automatisch an das zuvor hinzugefügte Steuerelement an, welches als Buddy bezeichnet wird.

Syntax:

GuiCtrl := MeineGui.Add("UpDown", Optionen, StartPos)
GuiCtrl := MeineGui.AddUpDown(Optionen, StartPos)

Beispiel:

MeineGui.Add("Edit")
MeinUD := MeineGui.Add("UpDown", "Range1-10", 5)

Erscheinungsbild:

UpDown

UpDown: Parameter

Optionen

Typ: Zeichenkette

Neben den allgemeinen Optionen und Styles werden die folgenden unterstützt oder sind erwähnenswert:

Horz: Richtet die Schaltflächen des Steuerelements nach links/rechts statt oben/unten aus. Standardmäßig bewirkt Horz aber auch, dass das Steuerelement isoliert wird (ohne Buddy). Dieses Verhalten kann durch die Angabe von Horz 16 überschrieben werden.

Left: Positioniert das UpDown auf der linken statt rechten Seite seines Buddys.

RangeMinMax: Setzt den Wertebereich auf etwas anderes als 0 bis 100. Geben Sie für MinMax den Minimal- und Maximalwert an (mit einem Bindestrich dazwischen). Zum Beispiel erlaubt Range1-1000 die Auswahl einer Zahl zwischen 1 und 1000; Range-50-50 eine Zahl zwischen -50 und 50; und Range-10--5 eine Zahl zwischen -10 und -5. Minimal- und Maximalwert können vertauscht werden, um die Schrittrichtung der Pfeile umzukehren. Der größte zulässige Wertebereich ist von -2147483648 bis 2147483647. Wenn der Buddy eine ListBox ist, verwenden vertikale UpDowns standardmäßig einen Wertebereich von 32767 bis 0 und horizontale UpDowns standardmäßig einen Wertebereich von 0 bis 32767.

Wrap: Veranlasst das Steuerelement, zum anderen Ende des gültigen Wertebereichs zu springen, wenn der Benutzer versucht, den Minimal- oder Maximalwert zu überschreiten. Wenn weggelassen, stoppt das Steuerelement beim Erreichen des Minimal- oder Maximalwerts.

16: Geben Sie -16 (minus 16) an, um ein vertikales UpDown zu isolieren; das heißt, es wird keinen Buddy haben. Dies bewirkt auch, dass sich das UpDown nicht an die Größe des Buddys anpasst, sondern eine eigene Breite, Höhe und Position hat bzw. haben kann. Ein isoliertes UpDown speichert selbst seine aktuelle Position. Mit Mitteln wie GuiControl.Value kann diese Position abgerufen werden.

0x80: Verhindert, dass Tausendertrennzeichen die dezimalen Ziffern des Buddys in Dreiergruppen unterteilen. Normalerweise ist dieser Style nicht notwendig, da man den aktuellen Wert auch direkt vom UpDown abrufen kann, um einen Wert ohne Tausendertrennzeichen zu erhalten.

Wn: Setzt die Breite eines isolierten UpDowns. Zum Beispiel bewirkt w400, dass das Steuerelement 400 Pixel breit gemacht wird. Wenn diese Option weggelassen wird, ist die Breite eines vertikalen UpDowns standardmäßig das 2-fache der aktuellen Schriftgröße und die Breite eines horizontalen UpDowns standardmäßig das 15-fache der aktuellen Schriftgröße.

Rn oder Hn: Setzt die Höhe eines isolierten UpDowns. Zum Beispiel bewirkt r7, dass das Steuerelement 7 Zeilen hoch gemacht wird, oder h400, dass dessen Höhe auf 400 Pixel gesetzt wird. Wenn beide Optionen weggelassen werden, ist die Höhe eines vertikalen UpDowns standardmäßig 5 Zeilen und die Höhe eines horizontalen UpDowns standardmäßig das 2-fache der aktuellen Schriftgröße.

(Unübliche numerische Styles): Eine Liste von Styles finden Sie in der UpDown-Styles-Tabelle.

StartPos

Typ: Integer

Wenn leer oder weggelassen, beginnt das UpDown bei 0 oder beim niedrigsten zulässigen Bereichswert. Andernfalls geben Sie die Startposition des UpDowns an.

UpDown: Bemerkungen

Das bekannteste Beispiel dafür ist der "Spinner" (Drehrad) – ein Eingabefeld mit angefügtem UpDown. Wenn der Benutzer eine der Pfeilschaltflächen drückt, wird die Zahl im Eingabefeld automatisch erhöht oder verringert.

Der Buddy kann auch ein Text- oder ListBox-Steuerelement sein. Bei anderen Steuerelementen (wie z.B. ComboBox oder DropDownList) kann es aufgrund von OS-Einschränkungen vorkommen, dass sie nicht ordnungsgemäß mit dem Change-Ereignis oder anderen Features funktionieren.

GuiControl.Value liefert die aktuelle numerische Position des UpDowns. Gui.Submit speichert denselben Wert. Wenn das UpDown mit einem Eingabefeld verbunden ist und Sie nicht prüfen möchten, ob die Benutzereingabe gültig ist, sollten Sie am besten den aktuellen Wert des UpDowns verwenden, nicht den des Eingabefelds. Dadurch wird sichergestellt, dass immer eine Zahl innerhalb des gültigen Wertebereichs zurückgegeben wird, selbst wenn der Benutzer etwas in das Eingabefeld eingetragen hat, das nicht-numerisch ist oder außerhalb des gültigen Wertebereichs liegt. Beachten Sie außerdem, dass Zahlen länger als 3 Ziffern standardmäßig mit einem Tausendertrennzeichen (z.B. Punkt) in Dreiergruppen unterteilt werden. Dieses Trennzeichen wird nur vom Eingabefeld zurückgegeben, nicht vom UpDown.

Jedes Mal, wenn der Benutzer auf eine der Pfeilschaltflächen klickt oder eine Pfeiltaste auf der Tastatur drückt, wird das Change-Ereignis ausgelöst.

Um die UpDown-Schrittweite auf einen anderen Wert als 1 zu ändern (z.B. 5 oder 0.1), siehe dieses Skript.

Das im Buddy angezeigte Zahlenformat kann wie folgt von dezimal auf hexadezimal umgestellt werden:

SendMessage 0x046D, 16, 0, MeinUD ; 0x046D ist UDM_SETBASE.

Dies wirkt sich nur auf den Buddy aus, nicht auf die von UpDown gemeldete Position.

ListView, TreeView, Gui(), Gui-Objekt, GuiControl-Objekt, Menu-Objekt