###Keyword###
Dim / Global / Local / Const

###Description###
Deklariert eine Variable, Konstante oder definiert ein Array.

###Syntax###
<b>Dim</b> [Const] $variable
<b>Dim</b> $array<b>[</b>subscript 1<b>]</b>...<b>[</b>subscript n<b>]</b>

###Parameters###
@@ParamTable@@
const
	[optional] Wenn angegeben, wird statt einer Variablen eine Konstante deklariert.
$variable
	Der Name der zu deklarierenden Variable.
subscript
	Die Anzahl Elemente eines Arrays (0 bis n-1).
@@End@@


###Remarks###
Die Schlüsselwörter Dim, Local und Global haben eine ähnliche Funktionsweise.
1. Deklariert eine Variable, bevor sie verwendet wird (ähnlich zu VBScript)
2. Erstellt ein Array

<b>Hinweis</b>:  In AutoIt kannst du eine Variable erstellen, indem du ihr einfach einen Wert zuweist ($myvar = 0), aber viele Leute deklarieren sie lieber explizit.

Du kannst auch mehrere Variablen in einer Zeile deklarieren:
<p class="code">Dim $a, $b, $c</p>
Und man kann ihnen auch gleich einen Wert vor-zuweisen, wenn die Variable kein Array ist:
<p class="code">Dim $a = 2, $b, $c = 20</p>

Die Erstellung von Konstanten wird ähnlich durchgeführt:
<p class="code">Dim Const $a, $b, $c
Const $a, $b, $c
Const $a = 2, $b, $c = 20
Local Const $a, $b, $c</p>
Wenn eine Konstante einmal erstellt wurde, kann ihr Wert danach nicht mehr verändert werden. Außerdem kannst du eine existierende Variable nicht in eine Konstante umwandeln.
<br>


Der Unterschiede zwischen Dim, Local und Global ist der Bereich, für den die Variablen deklariert werden:
<b>Dim</b> = Lokaler Bereich, wenn der Variablennamen global nicht existiert (falls es der Fall ist, wird die globale Variable wiederverwendet!)
<b>Global</b> = Erzwingt globale Gültigkeit der Variable
<b>Local</b> = Erzwingt Gültigkeit der Variable lokal bzw. innerhalb der Funktion

Wenn Variablen verwendet werden, wird zuerst überprüft, ob die Variable lokal existiert, und erst danach, ob sie global deklariert ist.

Wenn ein Array erstellt wird, ist es auf maximal 64 Dimensionen und/oder 16 Millionen Elemente begrenzt.


Eine einmalige Funktion ist die Möglichkeit, Arrays wie folgt zu kopieren:
$mycopy = $myarray
In diesem Fall ist $mycopy eine exakte Kopie von $myarray und hat die selben Ausmessungen - es ist keine vorherige Deklaration mit Dim nötig. Wenn die Variable $mycopy bereits als Array deklariert war, wird es gelöscht, bevor das Kopieren stattfindet.

Um ein Array zu leeren (z.B., weil du den Speicherplatz eines großen, globalen Arrays freigeben willst), weist du ihm einfach einen einzigen Wert zu:
$array = 0
Das gibt den Speicherplatz des Arrays frei und setzt es auf den einzigen Wert 0.

Wenn du Dim zwei mal mit dem gleichen Namen einsetzt, wird die Variable beim zweiten Mal gelöscht, zurückgesetzt und neu dimensioniert.


###Related###
<a href="../functions/UBound.htm">UBound</a>, ReDim


###Example###
; Beispiel 1 - Variablendeklaration
Dim $x, $y = 23, $z
Global $PI = 3.14159, $RADIUS
Local $daysWorking = 5

; Beispiel 2 - Arraydeklaration
Dim $weeklyWorkSchedule[$daysWorking]
Global $chessBoard[8][8]
Local $mouseCoordinates[2], $windowStats[4]

; Beispiel 3 - Konstantendeklaration
Const $x, $y = 23, $z
Global Const $PI = 3.14159, $RADIUS
Local Const $daysWorking = 5
