Skip to content

Commit

Permalink
v1.1.07.00
Browse files Browse the repository at this point in the history
  • Loading branch information
Ragnar-F committed Feb 27, 2012
1 parent 032e3de commit 12ccebc
Show file tree
Hide file tree
Showing 8 changed files with 41 additions and 20 deletions.
15 changes: 12 additions & 3 deletions AHKL_ChangeLog.htm
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,18 @@
<script type="text/javascript">WriteNavLink(0);</script>
<h1>&Auml;nderungen und neue Funktionen</h1>
<p>Dieses Changelog betrifft nur AutoHotkey_L. Siehe <a href="ChangeLogHelp.htm">Changelog von AutoHotkey</a>.</p>
<h2><!--onlyinclude-->1.1.06.02 - 13. Februar 2012<!--/onlyinclude--></h2>
<p>Behoben: IniRead f&uuml;hrte zum Absturz, sobald die Sektion weggelassen wurde, aber nicht der Schl&uuml;ssel.</p>
<p>Behoben: Genauigkeit von FileGetSize mit Dateien, die 4GB oder h&ouml;her gro&szlig; sind.</p>
<h2><!--onlyinclude-->1.1.07.00 - 27. Februar 2012<!--/onlyinclude--></h2>
<p>Verbessert: <a href="Functions.htm#DynCall">%var%()</a> unterst&uuml;tzt nun <a href="objects/Func.htm">Funktionsverweise</a>, <a href="Objects.htm#Objects_as_Functions">Objektnachahmungsfunktionen</a> und die <a href="Objects.htm#Default_Base_Object">__Call-Meta-Standardfunktion</a>.</p>
<p>Behoben: <a href="commands/ControlGet.htm#List">ControlGet List</a> funktioniert nun bei ListViews, wenn das Script und der Zielprozess nicht im 32-Bit-Format sind, oder alle beide im 64-Bit-Format sind.</p>
<p>Behoben: <a href="commands/Send.htm#SendEvent">SendEvent</a> mit einer Tastenverz&ouml;gerung von 0; eine &Auml;nderung, die in v1.1.05.04 eigenf&uuml;hrt wurde, bewirkte, dass SendEvent langsamer war, als gedacht.</p>
<p>Behoben: <a href="http://l.autohotkey.net/docs/objects/Object.htm#Remove">Object.Remove(i)</a> passte die Schl&uuml;ssel nicht an, wenn Object[i] nicht existierte.</p>
<p>Behoben: <a href="commands/ComObjType.htm">ComObjType()</a> verhielt sich manchmal unvorhersehbar, wenn diese Funktion &uuml;ber einen <a href="commands/ComObjActive.htm#Remarks">Alternativnamen</a> aufgerufen wurde.</p>
<p>Behoben: <a href="commands/ExitApp.htm">ExitApp</a> beendet nun den Thread, wenn das Beenden des Scripts von einer <a href="commands/OnExit.htm">OnExit</a>-Subroutine verhindert wird, anstatt die Ausf&uuml;hrung nach dem <a href="commands/Block.htm">Block</a> fortzusetzen, der ExitApp enth&auml;lt.</p>
<p>Ein Funktionsaufruf &uuml;ber ein Objekt verhindert nicht l&auml;nger, dass der Thread beendet wird. Wenn daher <a href="commands/Exit.htm">Exit</a> verwendet wird oder ein Laufzeitfehler innerhalb einer <a href="Objects.htm#Custom_Classes_method">Klassenmethode</a> auftaucht, wird der ganze Thread beendet, anstatt nur die Funktion.</p>
<p>Der Aufruf einer base-Klassenmethode &uuml;ber <a href="Objects.htm#Custom_Classes_base">base.Method()</a> oder &auml;hnlichem innerhalb einer Klassendefinition verursacht nicht l&auml;nger eine <a href="commands/_Warn.htm">UseUnset</a>-Warnung, falls die Methode nicht existiert. Folglich verursacht die Instanziierung eines Objekts, das <a href="Objects.htm#Custom_Classes_var">Instanzvariablen</a> hat, nicht l&auml;nger eine Warnung bez&uuml;glich der internen Methode <em>base.__Init</em>, falls die base-Klasse keine Instanzvariablen hat.</p>
<h2>1.1.06.02 - 13. Februar 2012</h2>
<p>Behoben: IniRead f&uuml;hrte zum Absturz, sobald die Sektion weggelassen wurde, aber nicht der Schl&uuml;ssel.</p>
<p>Behoben: Genauigkeit von FileGetSize mit Dateien, die 4GB oder h&ouml;her gro&szlig; sind.</p>
<h2>1.1.06.01 - 12. Februar 2012</h2>
<p>Behoben: Die intelligente Kommahandhabung der MsgBox ben&ouml;tigt numerische Optionen, nicht Titel.</p>
<h2>1.1.06.00 - 12. Februar 2012</h2>
Expand Down
14 changes: 11 additions & 3 deletions AHKL_Features.htm
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ <h1>Neue Funktionen von AutoHotkey_L</h1>
<tr>
<td><a href="commands/FileEncoding.htm">FileEncoding</a></td>
<td>Bestimmt die Standardkodierung f&uuml;r <a href="commands/FileRead.htm">FileRead</a>, <a href="commands/FileReadLine.htm">FileReadLine</a>, <a href="commands/LoopReadFile.htm">dateilesende Schleife</a>, <a href="commands/FileAppend.htm">FileAppend</a> und <a href="commands/FileOpen.htm">FileOpen</a>.<br/>
<i>Siehe auch:</i> <a href="#enc">Textkodierungen</a></td>
<i>Siehe auch:</i> <a href="#enc">Textkodierungen</a></td>
</tr>
<tr>
<td><a href="commands/Gui.htm">Gui</a></td>
Expand All @@ -78,12 +78,16 @@ <h1>Neue Funktionen von AutoHotkey_L</h1>
</tr>
<tr>
<td><a href="commands/Run.htm">Run</a></td>
<td><a href="Compat.htm#Run">Verbesserungen</a> in der Hinsicht, wie Parameter geparst werden.
<td><a href="Compat.htm#Run">Verbesserungen</a> in der Hinsicht, wie Parameter geparst werden.
</tr>
<tr>
<td><a href="commands/Send.htm#Unicode">SendInput {U+nnnn}</a></td>
<td>Sendet ein Unicode-Zeichen. Unicode-Zeichen k&ouml;nnen direkt in Unicode-Versionen verwendet werden.</td>
</tr>
<tr>
<td><a href="commands/SendLevel.htm">SendLevel</a></td>
<td>Bestimmt, welche k&uuml;nstliche Tastatur- oder Mausereignisse von Hotkeys und Hotstrings ignoriert werden.</td>
</tr>
<tr>
<td><a href="commands/SetFormat.htm">SetFormat, IntegerFast, h|H</a></td>
<td>Setzt das Hexadezimalformat in Klein- oder Gro&szlig;buchstaben.</td>
Expand Down Expand Up @@ -116,6 +120,10 @@ <h1>Neue Funktionen von AutoHotkey_L</h1>
<td><a href="commands/_Include.htm">#Include &lt;Bibliothek&gt;</a></td>
<td>Eine Script-Datei vom Funktionsbibliotheksordner einf&uuml;gen.</td>
</tr>
<tr>
<td><a href="commands/_InputLevel.htm">#InputLevel</a></td>
<td>Bestimmt, welche k&uuml;nstliche Tastatur- oder Mausereignisse von Hotkeys und Hotstrings ignoriert werden.</td>
</tr>
<tr>
<td><a href="commands/_Warn.htm">#Warn</a></td>
<td>Aktiviert oder deaktiviert Warnungen f&uuml;r ausgew&auml;hlte Ladezeit- und Laufzeitzust&auml;nde, die f&uuml;r Entwickler interessant sind.</td>
Expand Down Expand Up @@ -258,7 +266,7 @@ <h1>Neue Funktionen von AutoHotkey_L</h1>
</tr>
<tr>
<td>A_IsUnicode</td>
<td>In Unicode-Versionen enth&auml;lt diese Variable eine 1 (<i>wahr</i>). In ANSI-Versionen wird sie nicht gesetzt, daher ist sie im Endeffekt <i>falsch</i>.</td>
<td>In Unicode-Versionen enth&auml;lt diese Variable eine 1 (<i>wahr</i>). In ANSI-Versionen wird sie nicht gesetzt, folglich ist sie <i>falsch</i>.</td>
</tr>
<tr>
<td>A_FileEncoding</td>
Expand Down
2 changes: 1 addition & 1 deletion AutoHotkey.htm
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<tr>
<td style="width: 246px;"><a href="http://de.autohotkey.com"><img src="images/AutoHotkey_logo.gif" alt="AutoHotkey"></a></td>
<td><h1><br>
Version <a href="AHKL_ChangeLog.htm">v<!--ver-->1.1.06.02<!--/ver--></a></h1>
Version <a href="AHKL_ChangeLog.htm">v<!--ver-->1.1.07.00<!--/ver--></a></h1>
<p><a href="http://www.autohotkey.com">www.autohotkey.com</a> | <a href="http://de.autohotkey.com">de.autohotkey.com</a></p>
<p><a href="http://l.autohotkey.net/">l.autohotkey.net</a></p>
<p>&copy;2003-2010 Chris Mallett, teilweise &copy;<a href="http://www.autoitscript.com/site/">AutoIt-Team</a> und die AHK-Community</p>
Expand Down
3 changes: 2 additions & 1 deletion Functions.htm
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,8 @@ <h3>Mehr &uuml;ber lokale und globale Variablen</h3>
<p><strong>H&auml;ufigste Ursache f&uuml;r Verwirrung</strong>: Jeder <em>nicht</em>-dynamische Verweis auf eine Variable erstellt diese Variable, wenn das Script gestartet wird. Zum Beispiel: Au&szlig;erhalb einer Funktion erstellt <code>MsgBox %Array1%</code> die Variable Array1 als globale Variable beim Starten des Scripts. Innerhalb einer Funktion erstellt <code>MsgBox %Array1%</code> die Variable Array1 als lokale Funktionsvariable beim Starten des Scripts (solange der <a href="#AssumeGlobal">Modus f&uuml;r die globale Ansicht</a> nicht aktiv ist), selbst wenn Array und Array0 global deklariert sind.</p>
<h2 id="DynCall">Dynamisches Aufrufen einer Funktion </h2>
<p>Seit v1.0.47.06 kann eine Funktion (auch eine <a href="#BuiltIn">interne Funktion</a>) mithilfe von Prozentzeichen dynamisch aufgerufen werden. Zum Beispiel ruft <code>%Variable%(x, "fox")</code> die Funktion auf, deren Name sich in der <em>Variable</em> befindet. Ebenso wird <code>Funktion%A_Index%()</code> Func1() oder Func2() usw. je nach aktuellem Wert von A_Index aufrufen.</p>
<p>Sobald die Funktion wegen einer der folgenden Tatsachen nicht aufgerufen werden kann, stoppt die Auswertung des Ausdrucks, der den Aufruf enth&auml;lt, still und fr&uuml;hzeitig, dass zu widerspr&uuml;chlichen Ergebnissen f&uuml;hrt:</p>
<p>Seit v1.1.07.00 kann <em>Var</em> in <code>%Var%()</code> einen Funktionsnamen, ein <a href="objects/Func.htm">Funktionsverweis</a> oder eine <a href="Objects.htm#Objects_as_Functions">Objektnachahmung einer Funktion</a> enthalten. Falls die Funktion nicht existiert, wird stattdessen die __Call-Meta-Funktion des <a href="Objects.htm#Default_Base_Object">Standard-base-Objekts</a> aufgerufen.</p>
<p>Sobald die Funktion wegen einer der folgenden Tatsachen nicht aufgerufen werden kann, stoppt die Auswertung des Ausdrucks, der den Aufruf enth&auml;lt, unauff&auml;llig und fr&uuml;hzeitig, dass zu widerspr&uuml;chlichen Ergebnissen f&uuml;hrt:</p>
<ul>
<li>Aufruf einer nicht vorhandenen Funktion, dass mithilfe von <code>If <a href="#IsFunc">IsFunc</a>(VariableMitFunktionsname)</code> verhindert werden kann. Abgesehen von <a href="#BuiltIn">internen Funktionen</a> muss die <a href="#define">Definition</a> der aufgerufenen Funktion z. B. mithilfe von <a href="commands/_Include.htm">#Include</a> oder mittels einem nicht-dynamischen Aufruf einer <a href="#lib">Bibliotheksfunktion</a> direkt im Script vorhanden sein.</li>
<li>&Uuml;bergabe von zu wenigen Parametern, dass mittels &Uuml;berpr&uuml;fung des R&uuml;ckgabewertes von <a href="#IsFunc">IsFunc()</a> verhindert werden kann (dass ist die Anzahl an vorgeschriebenen Parametern plus 1). Hinweis: Seit v1.0.48 wird die &Uuml;bergabe von zu vielen Parametern toleriert; jeder zus&auml;tzliche Parameter wird vollst&auml;ndig ausgewertet (einschlie&szlig;lich aller Funktionsaufrufe) und dann verworfen.</li>
Expand Down
10 changes: 5 additions & 5 deletions Objects.htm
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ <h3 id="Function_References">Funktionsverweise <span class="ver">[v1.1.00+]</spa
<p>F&uuml;r Details &uuml;ber zus&auml;tzliche Eigenschaften von Funktionsverweise, siehe <a href="objects/Func.htm">Func-Objekt</a>.</p>
<p id="ExitLimitation"><b>Bekannte Einschr&auml;nkung:</b></p>
<ul>
<li>Wenn die Funktion, sowie eine von ihr aufgerufene Subroutine oder Funktion, <a href="commands/Exit.htm">Exit</a> verwendet, dann verh&auml;lt sie sich wie beim Funktionsaufruf, der einen neuen Thread erstellt hat. Das hei&szlig;t, sie kehrt sofort zum Aufrufer der Funktion zur&uuml;ck, anstatt den aktuellen Thread zu beenden. Allerdings bewirkt das Exit weiterhin, dass das Script beendet wird, falls es nicht <a href="commands/_Persistent.htm">persistent</a> ist.</li>
<li>Seit v1.1.07.00 behoben: Wenn die Funktion, sowie eine von ihr aufgerufene Subroutine oder Funktion, <a href="commands/Exit.htm">Exit</a> verwendet, dann verh&auml;lt sie sich wie beim Funktionsaufruf, der einen neuen Thread erstellt hat. Das hei&szlig;t, sie kehrt sofort zum Aufrufer der Funktion zur&uuml;ck, anstatt den aktuellen Thread zu beenden. Allerdings bewirkt das Exit weiterhin, dass das Script beendet wird, falls es nicht <a href="commands/_Persistent.htm">persistent</a> ist.</li>
</ul>
<h3 id="Usage_Arrays_of_Arrays">Mehrdimensionale Arrays</h3>
<p>AutoHotkey unterst&uuml;tzt "mehrdimensionale" Arrays, indem Arrays in andere Arrays gespeichert werden. Zum Beispiel k&ouml;nnte eine Tabelle einen Array von Reihen repr&auml;sentieren, wobei jede Reihe selbst ein Array von Spalten ist. In diesem Fall kann der Inhalt der Spalte <code>y</code> der Reihe <code>x</code> mithilfe einer folgenden Methode gesetzt werden:</p>
Expand Down Expand Up @@ -230,7 +230,7 @@ <h3 id="Custom_Classes">Klassen <span class="ver">[v1.1.00+]</span></h3>
<pre id="Custom_Classes_var"> Instanzvariable := Ausdruck

</pre>
<p>Deklarationen von <b>Instanzvariablen</b> <span class="ver">[v1.1.01+]</span> werden jedesmal beim Erstellen einer Klasseninstanz mit dem <a href="#Custom_NewDelete">new</a>-Schl&uuml;sselwort ausgewertet. Die <a href="#Custom_NewDelete">__New()</a>-Methode wird nach der Auswertung solcher Deklarationen aufgerufen, einschlie&szlig;lich derjenigen, die in Basisklassen definiert wurden. Der <i>Ausdruck</i> kann mithilfe von <code>this</code> auf andere Instanzvariablen und Methoden zugreifen, alle anderen Variablenverweise werden jedoch als global angesehen. Um auf eine Instanzvariable zuzugreifen, gebt immer das Zielobjekt an; zum Beispiel <code><b>this</b>.Instanzvariable</code>.</p>
<p>Deklarationen von <b>Instanzvariablen</b> <span class="ver">[v1.1.01+]</span> werden jedesmal beim Erstellen einer Klasseninstanz mit dem <a href="#Custom_NewDelete">new</a>-Schl&uuml;sselwort ausgewertet. Die <a href="#Custom_NewDelete">__New()</a>-Methode wird nach der Auswertung solcher Deklarationen aufgerufen, einschlie&szlig;lich derjenigen, die in base-Klassen definiert wurden. Der <i>Ausdruck</i> kann mithilfe von <code>this</code> auf andere Instanzvariablen und Methoden zugreifen, alle anderen Variablenverweise werden jedoch als global angesehen. Um auf eine Instanzvariable zuzugreifen, gebt immer das Zielobjekt an; zum Beispiel <code><b>this</b>.Instanzvariable</code>.</p>
<pre id="Custom_Classes_staticvar"> static Klassenvariable := Ausdruck

</pre>
Expand All @@ -242,19 +242,19 @@ <h3 id="Custom_Classes">Klassen <span class="ver">[v1.1.00+]</span></h3>

</pre>
<p>Mit Definitionen von <b>verschachtelten Klassen</b> kann ein Klassenobjekt innerhalb einer anderen Klasse anstelle einer separaten globalen Variable gespeichert werden. Im obigen Beispiel konstruiert <code>class Unterklasse</code> ein Objekt und speichert es in <code>Klassenname.Unterklasse</code>. Daher kann die <i>Unterklasse</i> an Klassen oder Objekte vererbt werden, die vom <i>Klassennamen</i> abgeleitet werden.</p>
<pre id="Custom_Classes_method"> Method()
<pre id="Custom_Classes_method"> Methode()
{
...
}

</pre>
<p>Definitionen von <b>Methoden</b> sind scheinbar das Gleiche wie Funktionsdefinitionen. Jede Methode hat einen versteckten Parameter namens <code>this</code>, der normalerweise einen Verweis auf ein abgeleitetes Objekt der Klasse enth&auml;lt. Allerdings k&ouml;nnte er auch einen Verweis auf die Klasse selbst oder auf eine abgeleitete Klasse enthalten, je nachdem, wie die Methode aufgerufen wurde. Methoden werden <a href="#Function_References">mittels Verweis</a> in das Klassenobjekt gespeichert.</p>
<p id="Custom_Classes_base">Zus&auml;tzlich zum versteckten Parameter <code>this</code> k&ouml;nnen Methodendefinitionen das Pseudo-Schl&uuml;sselwort <code>base</code> verwenden, um die Basisklasse der Klasse aufzurufen, die die Methodendefinition enth&auml;lt. Zum Beispiel ist <code>base.Methode()</code> in der oberen Methode gleichwertig mit <code>BaseKlassenname.Methode.(this)</code>, au&szlig;er dass die globale Variable <i>BaseKlassenname</i> nicht deklariert werden muss. Beachtet, dass sich das von <code>this.base.base.Methode()</code> wie folgt unterscheidet:</p>
<p id="Custom_Classes_base">Zus&auml;tzlich zum versteckten Parameter <code>this</code> k&ouml;nnen Methodendefinitionen das Pseudo-Schl&uuml;sselwort <code>base</code> verwenden, um die base-Klasse der Klasse aufzurufen, die die Methodendefinition enth&auml;lt. Zum Beispiel ist <code>base.Methode()</code> in der oberen Methode gleichwertig mit <code>BaseKlassenname.Methode.(this)</code>. Beachtet, dass sich das von <code>this.base.base.Methode()</code> wie folgt unterscheidet:</p>
<ul>
<li>Es ruft immer base von der aktuellen Klasse auf, selbst wenn <code>this</code> von einer <i>Unterklasse</i> der aktuellen Klasse abgeleitet wird.</li>
<li>Es &uuml;bergibt <code>this</code> automatisch, aber nicht <code>this.base.base</code>.</li>
</ul>
<p><code>base</code> hat nur eine besondere Bedeutung, wenn ein Punkt <code>.</code> oder eine eckige Klammer <code>[]</code> danach erfolgt, daher funktioniert so etwas wie <code>obj := base, obj.Methode()</code> nicht. Scripts k&ouml;nnen das Sonderverhalten von <i>base</i> deaktivieren, indem ein nicht-leerer Wert zugewiesen wird; allerdings ist das nicht empfohlen. Da die Variable <i>base</i> leer sein muss, reduziert sich die Performance, wenn das Script <a href="commands/_NoEnv.htm">#NoEnv</a> wegl&auml;sst.</p>
<p><code>base</code> hat nur eine besondere Bedeutung, wenn ein Punkt <code>.</code> oder eine eckige Klammer <code>[]</code> danach erfolgt, daher funktioniert so etwas wie <code>obj := base, obj.Methode()</code> nicht. Scripts k&ouml;nnen das Sonderverhalten von <i>base</i> deaktivieren, indem ein nicht-leerer Wert zugewiesen wird; allerdings ist das nicht empfohlen. Da die Variable <i>base</i> leer sein muss, reduziert sich die Performance, wenn im Script <a href="commands/_NoEnv.htm">#NoEnv</a> weggelassen wird.</p>
<h3 id="Custom_NewDelete">Konstruktion und Destruktion</h3>
<p>Sobald ein abgeleitetes Objekt mit dem <code>new</code>-Schl&uuml;sselwort erstellt wird <span class="ver">[ben&ouml;tigt v1.1.00+]</span>, wird die definierte <code>__New</code>-Methode &uuml;ber ihr base-Objekt aufgerufen. Diese Methode kann Parameter akzeptieren, das Objekt initialisieren und das Ergebnis des <code>new</code>-Operators durch Zur&uuml;ckgeben eines Wertes &uuml;berschreiben. Beim Zerst&ouml;ren eines Objekts wird <code>__Delete</code> aufgerufen. Zum Beispiel:</p>
<pre>m1 := new GMem(0, 20)
Expand Down
Loading

0 comments on commit 12ccebc

Please sign in to comment.