class Gui.Control extends Object
Bietet eine Schnittstelle, um GUI-Steuerelemente zu ändern und Informationen über sie abzurufen. Gui.Add, Gui.__Item und GuiCtrlFromHwnd geben ein Objekt dieses Typs zurück.
"GuiCtrl" wird hier stellvertretend für Instanzen der Gui.Control
-Klasse verwendet.
Gui.Control
dient als Basisklasse für alle GUI-Steuerelemente, aber jeder Steuerelementtyp hat seine eigene Klasse. Einige der folgenden Methoden sind durch den Prototyp der entsprechenden Klasse oder durch die Gui.List
-Basisklasse definiert. Eine vollständige Liste finden Sie unter Interne Klassen.
Zusätzlich zu den von Object geerbten Methoden und Eigenschaften können GuiControl-Objekte die folgenden vordefinierten Methoden und Eigenschaften haben.
Fügt Elemente in einem Multi-Element-Steuerelement (ListBox, DropDownList, ComboBox oder Tab) an.
GuiCtrl.Add(Elemente)
Typ: Array
Ein Array von Zeichenketten, die als Listeneinträge/Tabs an das Ende der Liste des Steuerelements angefügt werden sollen, z.B. ["Rot", "Grün", "Blau"]
.
Um die Liste stattdessen zu ersetzen (überschreiben), verwenden Sie davor die Delete-Methode. Um einen Listeneintrag/Tab auszuwählen, verwenden Sie die Choose-Methode.
Wählt ein Element in einem Multi-Element-Steuerelement (ListBox, DropDownList, ComboBox oder Tab) aus.
GuiCtrl.Choose(Wert)
Typ: Integer oder Zeichenkette
Geben Sie 1 für den ersten Listeneintrag/Tab, 2 für den zweiten und so weiter an.
Wenn Wert eine Zeichenkette (oder numerische Zeichenkette) ist, wird ein Listeneintrag/Tab ausgewählt, dessen Name mit Wert beginnt. Die Suche erfolgt nicht Groß-/Kleinschreibung-sensitiv. Wenn z.B. das Steuerelement den Listeneintrag/Tab "UNIX-Text" enthält, genügt die Angabe des Wortes unix (kleingeschrieben), um diesen Listeneintrag auszuwählen. Bei einer Mehrfachauswahl-ListBox werden alle übereinstimmenden Listeneinträge ausgewählt.
Wenn Wert 0 oder leer ist, wird die aktuelle Auswahl entfernt.
Um alle Listeneinträge in einer Mehrfachauswahl-ListBox aus- oder abzuwählen, gehen Sie wie folgt vor:
PostMessage 0x0185, 1, -1, ListBox ; Alle Listeneinträge auswählen. 0x0185 ist LB_SETSEL. PostMessage 0x0185, 0, -1, ListBox ; Alle Listeneinträge abwählen. ListBox.Choose(0) ; Alle Listeneinträge abwählen.
Im Gegensatz zu ControlChooseIndex kann diese Methode keine Change- oder DoubleClick-Ereignisse auslösen.
Löscht ein oder alle Elemente aus einem Multi-Element-Steuerelement (ListBox, DropDownList, ComboBox oder Tab).
GuiCtrl.Delete(Wert)
Typ: Integer
Wenn weggelassen, werden alle Listeneinträge/Tabs gelöscht. Andernfalls geben Sie 1 für den ersten Listeneintrag/Tab, 2 für den zweiten und so weiter an.
Bei Tab-Steuerelementen sind und bleiben die Untersteuerelemente eines Tabs mit ihrer ursprünglichen Tabnummer verknüpft, d.h. sie sind nie mit dem Anzeigenamen ihres Tabs verknüpft. Das Umbenennen oder Entfernen eines Tabs ändert nicht die Tabnummer, zu der die Untersteuerelemente gehören. Wenn zum Beispiel die drei Tabs ["Rot", "Grün", "Blau"]
vorhanden sind und der zweite Tab mit MeinTab.Delete(2)
entfernt wird, werden die ursprünglich mit Grün verknüpften Untersteuerelemente mit Blau verknüpft. Aufgrund dieses Verhaltens ist es ratsam, nur die am Ende befindlichen Tabs zu entfernen. Tabs, die auf diese Weise entfernt wurden, können später wieder hinzugefügt werden, um ihnen ihre ursprünglichen Steuerelemente zurückzugeben.
Fokussiert das Steuerelement.
GuiCtrl.Focus()
Um den gewünschten Effekt zu erzielen, darf das Fenster weder minimiert noch versteckt sein.
Um den Fokusstatus des Steuerelements abzurufen, verwenden Sie die Focused-Eigenschaft.
Ruft die Position und Größe des Steuerelements ab.
GuiCtrl.GetPos(&X, &Y, &Breite, &Höhe)
Typ: VarRef
Wenn weggelassen, wird der zugehörige Wert nicht gespeichert. Andernfalls geben Sie Referenzen an, die auf Ausgabevariablen verweisen, in denen die X- und Y-Koordinate (in Pixel) der oberen linken Ecke des Steuerelements gespeichert werden sollen. Diese Koordinaten sind relativ zur oberen linken Ecke des Clientbereichs des Fensters (das ist der Bereich ohne Titelleiste, Menüleiste und Rahmen).
Typ: VarRef
Wenn weggelassen, wird der zugehörige Wert nicht gespeichert. Andernfalls geben Sie Referenzen an, die auf Ausgabevariablen verweisen, in denen die Breite und Höhe (in Pixel) des Steuerelements gespeichert werden sollen.
Im Gegensatz zu ControlGetPos wendet diese Methode die DPI-Skalierung auf die zurückgegebenen Koordinaten an (es sei denn, die -DPIScale
-Option wurde verwendet).
MeinEdit.GetPos(&x, &y, &w, &h) MsgBox "Die X-Koordinate ist " x ". Die Y-Koordinate ist " y ". Die Breite ist " w ". Die Höhe ist " h "."
Verschiebt das Steuerelement und/oder ändert dessen Größe.
GuiCtrl.Move(X, Y, Breite, Höhe)
Typ: Integer
Wenn einer der Parameter weggelassen wird, bleibt die Position des Steuerelements in dieser Dimension unverändert. Andernfalls geben Sie die X- und Y-Koordinate (in Pixel) der oberen linken Ecke der neuen Position des Steuerelements an. Die Koordinaten sind relativ zur oberen linken Ecke des Clientbereichs des Fensters (das ist der Bereich ohne Titelleiste, Menüleiste und Rahmen).
Typ: Integer
Wenn einer der Parameter weggelassen wird, bleibt die Größe des Steuerelements in dieser Dimension unverändert. Andernfalls geben Sie die neue Breite und Höhe des Steuerelements (in Pixel) an.
Im Gegensatz zu ControlMove wendet diese Methode die DPI-Skalierung auf die Koordinaten an (es sei denn, die -DPIScale
-Option wurde verwendet).
MeinEdit.Move(10, 20, 200, 100) MeinEdit.Move(VarX+10, VarY+5, VarW*2, VarH*1.5)
Registriert eine Funktion oder Methode, die aufgerufen wird, wenn eine Steuerelementbenachrichtigung via WM_COMMAND-Meldung empfangen wird.
GuiCtrl.OnCommand(NachrichtCode, Rückruf , HinzufügenEntfernen)
Weitere Informationen finden Sie unter OnCommand.
Registriert eine Funktion oder Methode, die aufgerufen wird, wenn ein bestimmtes Ereignis ausgelöst wird.
GuiCtrl.OnEvent(EreignisName, Rückruf , HinzufügenEntfernen)
Weitere Informationen finden Sie unter OnEvent.
Registriert eine Funktion oder Methode, die aufgerufen wird, wenn eine Steuerelementbenachrichtigung via WM_NOTIFY-Meldung empfangen wird.
GuiCtrl.OnNotify(NachrichtCode, Rückruf , HinzufügenEntfernen)
Weitere Informationen finden Sie unter OnNotify.
Setzt Optionen und Styles für das Aussehen und Verhalten des Steuerelements.
GuiCtrl.Opt(Optionen)
Typ: Zeichenkette
Geben Sie beliebig viele steuerelementspezifische oder allgemeine Optionen und Styles an, die jeweils durch mindestens ein Leer- oder Tabulatorzeichen voneinander getrennt sind.
Das folgende Beispiel verbietet die Interaktion mit dem Steuerelement und macht alle Änderungen am Hintergrund rückgängig:
MeinEdit.Opt("+Disabled -Background")
Das nächste Beispiel macht die OK-Schaltfläche zur neuen Standardschaltfläche:
OKButton.Opt("+Default")
Obwohl auch Styles und erweiterte Styles erkannt werden, können einige von ihnen nicht angewendet oder entfernt werden, nachdem ein Steuerelement erstellt wurde. Eine erfolgreich angewendete Änderung kann immer noch vom Steuerelement selbst ignoriert werden.
Zeichnet den vom Steuerelement beanspruchten Fensterbereich neu.
GuiCtrl.Redraw()
Obwohl diese Methode bei wiederholtem und schnellem Aufruf zu unerwünschtem Flackern führen kann, ist sie in der Lage, fehlerhafte Darstellungen beim Zeichnen bestimmter Steuerelemente wie z.B. GroupBox zu verhindern.
Bestimmt Schriftart, Schriftgröße, Schriftstil und/oder Schriftfarbe des Steuerelements.
GuiCtrl.SetFont(Optionen, SchriftName)
Die beiden Parameter können weggelassen werden, um die aktuell via Gui.SetFont definierte Schrift der GUI zu setzen. Andernfalls werden alle nicht angegebenen Schriftattribute von der vorherigen Schrift des Steuerelements übernommen. Die Schriftfarbe wird nur geändert, wenn sie in den Optionen angegeben ist.
Einzelheiten zu beiden Parametern finden Sie unter Gui.SetFont.
Ruft den Klassennamen und die Sequenznummer (ClassNN) des Steuerelements ab.
ClassNN := GuiCtrl.ClassNN
Die ClassNN-Bezeichnung eines Steuerelements besteht aus dem Namen seiner Fensterklasse gefolgt von seiner Sequenznummer innerhalb des Top-Level-Fensters, das dieses Steuerelement enthält. Zum Beispiel ist "Edit1" das erste Edit-Steuerelement in einem Fenster und "Button12" die zwölfte Schaltfläche.
Siehe auch: ControlGetClassNN
Ermittelt oder setzt den Interaktionsstatus des Steuerelements.
AktuelleEinstellung := GuiCtrl.Enabled
GuiCtrl.Enabled := NeueEinstellung
AktuelleEinstellung ist NeueEinstellung, falls zugewiesen, andernfalls standardmäßig 1 (true), es sei denn, es wurde mit der Disabled-Option überschrieben.
NeueEinstellung ist ein boolescher Wert, der diese Einstellung aktiviert oder deaktiviert. Wenn true, wird die Interaktion mit dem Steuerelement erlaubt. Wenn false, wird die Interaktion mit dem Steuerelement verboten.
Bei Tab-Steuerelementen verbietet oder erlaubt dies zudem die Interaktion mit den Untersteuerelementen. Beachten Sie aber, dass jedes Untersteuerelement, das explizit mit GuiCtrl.Enabled := false
deaktiviert wurde, sich diese Einstellung merkt und demzufolge auch nach Reaktivierung des Tab-Steuerelements deaktiviert bleibt.
Ruft den Fokusstatus des Steuerelements ab.
IstFokussiert := GuiCtrl.Focused
IstFokussiert ist 1 (true), wenn das Steuerelement den Tastaturfokus hat, andernfalls 0 (false).
Um den gewünschten Effekt zu erzielen, darf das Fenster weder minimiert noch versteckt sein.
Um das Steuerelement zu fokussieren, verwenden Sie die Focus-Methode.
Ruft das Fensterhandle (HWND) des Steuerelements ab.
Hwnd := GuiCtrl.Hwnd
Die HWND-Nummer (eindeutige ID) eines Steuerelements wird oft in Verbindung mit PostMessage, SendMessage und DllCall verwendet. Diese Nummer kann auch direkt in einem Steuerelement-Parameter verwendet werden.
Ermittelt oder setzt den expliziten Namen des Steuerelements.
AktuellerName := GuiCtrl.Name
GuiCtrl.Name := NeuerName
AktuellerName ist NeuerName, falls zugewiesen, andernfalls standardmäßig eine leere Zeichenkette, es sei denn, es wurde mit der V-Option überschrieben.
NeuerName ist der neue Name des Steuerelements. Dieser Name kann mit Gui.__Item verwendet werden, um dessen GuiControl-Objekt abzurufen. Der Name wird auch von Gui.Submit verwendet.
Ermittelt oder setzt den Text bzw. die Beschriftung des Steuerelements.
AktuellerText := GuiCtrl.Text
GuiCtrl.Text := NeuerText
Hinweis: Wenn das Steuerelement weder eine sichtbare Beschriftung noch einen (einzelnen) Textwert hat, wird die versteckte Beschriftung des Steuerelements ermittelt (wie bei ControlGetText/ControlSetText).
AktuellerText und NeuerText sind abhängig vom Typ des Steuerelements:
Button / CheckBox / Edit / GroupBox / Link / Radio / Text
AktuellerText und NeuerText sind die Beschriftung bzw. der Anzeigetext des Button-, CheckBox-, Edit-, GroupBox-, Link-, Radio- oder Text-Steuerelements. Da sich hierbei die Größe des Steuerelements nicht automatisch erweitert, muss so etwas wie GuiCtrl.Move(,, 300)
verwendet werden, um das Steuerelement breiter zu machen.
DateTime
AktuellerText und NeuerText sind der formatierte Text, der im DateTime-Steuerelement angezeigt wird. Die Zuweisung einer formatierten Datum/Zeit-Zeichenkette an das Steuerelement wird nicht unterstützt. Weisen Sie dem Steuerelement stattdessen mit der Value-Eigenschaft einen Zeitstempel im YYYYMMDDHH24MISS-Format zu, um das angezeigte Datum und/oder die angezeigte Uhrzeit zu ändern.
DropDownList / ComboBox / ListBox / Tab
AktuellerText und NeuerText sind der Text des aktuell ausgewählten Listeneintrags/Tabs im DropDownList-, ComboBox-, ListBox- oder Tab-Steuerelement.
NeuerText muss der vollständige Text (nicht Groß-/Kleinschreibung-sensitiv) des Listeneintrags/Tabs sein, der ausgewählt werden soll.
Bei einer ComboBox ohne ausgewählten Listeneintrag wird stattdessen der im Eingabefeld enthaltene Text abgerufen. Bei anderen Steuerelementen ist AktuellerText leer. Wenn NeuerText leer ist, wird der aktuelle Listeneintrag/Tab abgewählt.
Bei einer Mehrfachauswahl-ListBox ist AktuellerText ein Array. NeuerText kann kein Array sein, aber wenn mehrere Listeneinträge übereinstimmen, werden sie alle ausgewählt. Um mehrere Listeneinträge mit unterschiedlichem Text auszuwählen, rufen Sie die Choose-Methode wiederholt auf.
Mit der Value-Eigenschaft kann stattdessen ein Listeneintrag/Tab via Positionsnummer ausgewählt werden.
Edit
AktuellerText und NeuerText sind der Text des Edit-Steuerelements. Wie bei anderen Steuerelementen wird der Text unverändert abgerufen oder gesetzt; es findet keine Zeilenumbruchübersetzung statt. Mit der Value-Eigenschaft kann der Text eines mehrzeiligen Edit-Steuerelements abgerufen oder gesetzt werden, inklusive Übersetzung zwischen `r`n
und `n
.
StatusBar
AktuellerText und NeuerText sind nur der Text des ersten Segments eines StatusBar-Steuerelements (verwenden Sie SB.SetText für mehr Flexibilität).
Ruft den Typ des Steuerelements ab.
AktuellerTyp := GuiCtrl.Type
Je nach Typ des Steuerelements ist AktuellerTyp eine der folgenden Zeichenketten: ActiveX, Button, CheckBox, ComboBox, Custom, DateTime, DDL, Edit, GroupBox, Hotkey, Link, ListBox, ListView, MonthCal, Pic, Progress, Radio, Slider, StatusBar, Tab, Tab2, Tab3, Text, TreeView, UpDown.
Ermittelt oder setzt den Inhalt eines wertefähigen Steuerelements.
AktuellerWert := GuiCtrl.Value
GuiCtrl.Value := NeuerWert
Hinweis: Wenn das Steuerelement nicht wertefähig ist, wird AktuellerWert leer sein und die Zuweisung von NeuerWert einen Fehler auslösen. Ungültige Werte lösen eine Ausnahme aus.
AktuellerWert und NeuerWert sind abhängig vom Typ des Steuerelements:
ActiveX
AktuellerWert ist das ActiveX-Objekt des ActiveX-Steuerelements. Wenn das Steuerelement z.B. mit dem Text Shell.Explorer erstellt wurde, wird ein WebBrowser-Objekt zurückgegeben. Es wird immer dasselbe Wrapper-Objekt zurückgegeben.
NeuerWert ist ungültig und löst eine Ausnahme aus.
CheckBox / Radio
AktuellerWert ist 1, wenn das CheckBox- oder Radio-Steuerelement eingeschaltet ist, 0, wenn es ausgeschaltet ist, oder -1, wenn es unbestimmt ist.
NeuerWert kann 0 für ausgeschaltet, 1 für eingeschaltet, oder -1 für unbestimmt/grau sein. Wenn das Radio-Steuerelement eingeschaltet wird und Mitglied einer Multi-Radio-Gruppe ist, werden die anderen Radio-Steuerelemente in der Gruppe automatisch ausgeschaltet.
Mit der Text-Eigenschaft kann stattdessen der Text bzw. die Beschriftung des Steuerelements abgerufen oder gesetzt werden.
ComboBox / DropDownList / ListBox / Tab
AktuellerWert ist die Positionsnummer des aktuell ausgewählten Listeneintrags/Tabs im ComboBox-, DropDownList-, ListBox- oder Tab-Steuerelement. Wenn nichts ausgewählt ist, wird 0 zurückgegeben. Wenn Text im Eingabefeld einer ComboBox eingetragen ist, wird der erste übereinstimmende Listeneintrag ausgewählt. Wenn kein Listeneintrag übereinstimmt, wird 0 zurückgegeben, selbst wenn Text im Steuerelement vorhanden ist. Bei einer Mehrfachauswahl-ListBox wird ein Array von Nummern zurückgegeben (das leer ist, wenn keine Listeneinträge ausgewählt sind).
NeuerWert ist die Positionsnummer des Listeneintrags/Tabs, der ausgewählt werden soll, oder 0, um die aktuelle Auswahl aufzuheben (dies funktioniert auch mit Tab-Steuerelementen). Um mehrere Listeneinträge auszuwählen, rufen Sie die Choose-Methode wiederholt auf.
Mit der Text-Eigenschaft kann stattdessen der Text des ausgewählten Listeneintrags/Tabs abgerufen oder gesetzt werden.
DateTime / MonthCal
AktuellerWert ist ein Zeitstempel im YYYYMMDDHH24MISS-Format, der aktuell im DateTime- oder MonthCal-Steuerelement ausgewählt ist.
NeuerWert ist ein Zeitstempel im YYYYMMDDHH24MISS-Format. Geben Sie A_Now
an, um das aktuelle Datum/Uhrzeit (heute) zu verwenden. Bei DateTime-Steuerelementen kann NeuerWert eine leere Zeichenkette sein, um das Steuerelement ohne vorab ausgewähltes Datum/Uhrzeit anzuzeigen (wenn es mit dieser Option erstellt wurde). Bei MonthCal-Steuerelementen kann ein Datumsbereich angegeben werden, wenn das Steuerelement eine Mehrfachauswahl unterstützt.
Edit
AktuellerWert ist der aktuelle Inhalt des Edit-Steuerelements. Bei mehrzeiligen Steuerelementen werden alle Zeilenumbrüche im Text als Zeilenvorschübe (`n) ausgegeben, nicht wie üblich als Wagenrücklauf-Zeilenvorschub-Paare (`r`n), die von Nicht-GUI-Funktionen wie ControlGetText und ControlSetText verwendet werden.
NeuerWert ist der neue Inhalt. Bei mehrzeiligen Steuerelementen wird jeder Zeilenvorschub (`n) in Wert, dem kein Wagenrücklauf (`r) vorangestellt ist, automatisch in ein Wagenrücklauf-Zeilenvorschub-Paar (`r`n) übersetzt, um eine korrekte Darstellung zu gewährleisten. In der Regel sollte das keine Probleme bereiten, da bei der Verwendung von Gui.Submit oder beim Abrufen des Wertes diese Übersetzung automatisch rückgängig gemacht wird, indem `r`n mit `n ersetzt wird.
Mit der Text-Eigenschaft kann der Text abgerufen oder gesetzt werden, ohne dass eine Übersetzung zwischen `n und `r`n stattfindet.
Hotkey
AktuellerWert ist eine Tastenkombination in Form von Modifikatorsymbolen und einem Tastennamen, sofern im Hotkey-Steuerelement ein Hotkey angegeben ist, andernfalls leer. Beispiele: ^!C
, ^Home
, +^NumpadHome
.
NeuerWert kann eine Tastenkombination in Form von Modifikatorsymbolen und einem Tastennamen sein, oder leer sein, um das Steuerelement leer zu machen. Beispiele: ^!c
, ^Numpad1
, +Home
. Es werden nur die Modifikatoren ^ (STRG), ! (ALT) und + (UMSCHALT) unterstützt. Weitere verfügbare Tastennamen finden Sie in der Tastenliste.
Picture
AktuellerWert ist der Dateiname des Bildes, wie er ursprünglich bei der Erstellung des Picture-Steuerelements angegeben wurde. Dieser Name ändert sich auch dann nicht, wenn später ein anderer Dateiname angegeben wird.
NeuerWert ist der Dateiname (oder Handle) des neuen Bildes, das geladen werden soll (siehe Picture, welche Dateitypen unterstützt werden). Direkt vor dem Dateinamen können beliebig viele der folgenden Optionen angegeben werden: *wN
(Breite N), *hN
(Höhe N) und *IconN
(Symbolgruppennummer N in einer DLL- oder EXE-Datei). Das folgende Beispiel lädt das Standardsymbol aus der zweiten Symbolgruppe mit einer Breite von 100 Pixel und einer automatischen Höhe via "Seitenverhältnis beibehalten": MeinBild.Value := "*icon2 *w100 *h-1 C:\Meine Anwendung.exe"
. Geben Sie *w0 *h0
an, um die aktuelle Breite und Höhe des Bildes zu verwenden. Wenn *w
und *h
weggelassen werden, wird die Größe des Bildes an die Größe des Steuerelements angepasst. Beim Laden eines Symbols aus einer ICO-Datei mit mehreren Symbolen hat die Angabe von Breite und Höhe zudem Einfluss darauf, welches Symbol geladen wird. Hinweis: Verwenden Sie nur ein Leer- oder Tabulatorzeichen zwischen der letzten Option und dem Dateinamen selbst; alle anderen Leer- oder Tabulatorzeichen werden als Teil des Dateinamens interpretiert.
Progress / Slider / UpDown
AktuellerWert ist die aktuelle Position des Progress-, Slider- oder UpDown-Steuerelements.
NeuerWert ist die neue Position des Steuerelements, z.B. MeinSlider.Value := 10
. Verwenden Sie +=
, -=
, ++
oder --
anstelle von :=
, um mathematische Operationen am aktuellen Wert durchzuführen. Wenn die neue Position außerhalb des gültigen Wertebereichs liegt, wird das Steuerelement auf den nächstmöglichen gültigen Wert gesetzt.
Text
AktuellerWert ist der Text bzw. die Beschriftung des Text-Steuerelements.
NeuerWert ist der neue Text des Steuerelements. Da sich hierbei die Größe des Steuerelements nicht automatisch erweitert, muss so etwas wie GuiCtrl.Move(,, 300)
verwendet werden, um das Steuerelement breiter zu machen.
Ermittelt oder setzt den Sichtbarkeitsstatus des Steuerelements.
AktuelleEinstellung := GuiCtrl.Visible
GuiCtrl.Visible := NeueEinstellung
AktuelleEinstellung ist NeueEinstellung, falls zugewiesen, andernfalls standardmäßig 1 (true), es sei denn, es wurde mit der Hidden-Option überschrieben.
NeueEinstellung ist ein boolescher Wert, der diese Einstellung aktiviert oder deaktiviert. Wenn true, wird das Steuerelement sichtbar gemacht. Wenn false, wird das Steuerelement versteckt.
Bei Tab-Steuerelementen wird diese Eigenschaft zudem alle Untersteuerelemente verstecken oder sichtbar machen. Mit GuiCtrl.Enabled := false
kann zusätzlich der Tastaturkurzbefehl eines Steuerelements (unterstrichene Buchstabe) deaktiviert werden.
Das Hinzufügen sehr vieler Elemente von z.B. ListView, TreeView oder ListBox kann performanter gemacht werden, indem die Neuzeichnung des Steuerelements unterdrückt wird, während die Änderungen vorgenommen werden. Verwenden Sie hierfür GuiCtrl.Opt("-Redraw")
, bevor Sie die Elemente hinzufügen, und danach GuiCtrl.Opt("+Redraw")
. Änderungen am Steuerelement, die vor dem Deaktivieren der Neuzeichnung noch nicht sichtbar waren, werden in der Regel erst sichtbar, nachdem die Neuzeichnung wieder aktiviert wurde.
Aus Performanzgründen führen Änderungen am Inhalt eines Steuerelements nicht dazu, dass das Steuerelement sofort neu gezeichnet wird, auch wenn die Neuzeichnung aktiv ist. Stattdessen wird ein Teil des Steuerelements "ungültig gemacht" und üblicherweise nach einer kurzen Verzögerung neu gezeichnet, sobald das Programm seine interne Meldungswarteschlange prüft. Das Skript kann mit Sleep -1
erzwingen, dass dies sofort stattfindet.