###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 Schlsselwrter 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 durchgefhrt:
<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 verndert werden. Auerdem kannst du eine existierende Variable nicht in eine Konstante umwandeln.
<br>


Der Unterschiede zwischen Dim, Local und Global ist der Bereich, fr 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 Gltigkeit der Variable
<b>Local</b> = Erzwingt Gltigkeit der Variable lokal bzw. innerhalb der Funktion

Wenn Variablen verwendet werden, wird zuerst berprft, 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 Mglichkeit, 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 ntig. Wenn die Variable $mycopy bereits als Array deklariert war, wird es gelscht, bevor das Kopieren stattfindet.

Um ein Array zu leeren (z.B., weil du den Speicherplatz eines groen, 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 gelscht, zurckgesetzt 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
