Hallo Tweaky.
Funktion Execute
Das englische Beispiel ist ja echt mager:
Die deutschen Beispiele machens dann doppelt:
Den Rest überlasse ich dir. ![]()
Gruß,
Bernd.
Hallo Tweaky.
Funktion Execute
Das englische Beispiel ist ja echt mager:
Die deutschen Beispiele machens dann doppelt:
Den Rest überlasse ich dir. ![]()
Gruß,
Bernd.
Hab in der deutschen Hilfe das doppelte Beispiel entfernt
Tweaky Danke! ![]()
Nice.
Nun aber ernsthaft.
"Das englische Beispiel ist ja echt mager". Das verstehe ich als Kritik und hätte daher gerne einen Verbesserungsvorschlag von Dir.
So wie Tweaky untermüdlich versucht die deutsche Hilfe zu verbessern, so ist das für die engl. ebenso möglich. Nur braucht es konstruktive Vorschläge!
Du als Prof kennst ja das alte didaktische Prinzip: Fördern und fordern.
Zunächst ein Vorwort: Bisher habe ich den Eindruck gewonnen, dass wir / ich hier an der EN Hilfe wenig bis gar nichts ändern. Deshalb gehe ich normalerweise nicht mehr auf Fehler in der EN Hilfe ein.
Da du mich so nett bittest,
folgt hier ein konstruktiver Vorschlag: In der EN Hilfe könnte man einfach das hervorragende Beispiel 2 der DE Hilfe aufnehmen.
Ansonsten wäre es für beide (DE u EN) hilfreich, deutlicher darauf einzugehen, dass es hier um eine besondere Handhabung als String geht. (Meine Erinnerung ist nicht mehr die beste, aber war in Visual Basic nicht eine Funktion "CallByName"?) Der Punkt ist, dass es für einen Anfänger hilfreich wäre, wenn das deutlicher herausgestellt würde. So wie im Beispiel 2 der DE Hilfe, die den Unterschied zeigt, zwischen einer Konsolenausgabe, bei der man einen String-Parameter direkt ausgibt, und einer, bei der man ihn per "Execute" ausgibt.
Variable = "@ScriptDir" (inklusive der Anführungszeichen!)
Direkte Ausgabe: Das Wort "@ScriptDir" (ohne Anführungszeichen!)
"Execute" Ausgabe: Der Pfad zum laufenden Script.
Das Beispiel in der EN Hilfe zur Funktion Execute enthält gerade mal 2 Zeilen. Wie schon gesagt, ich bin zwar kein Anfänger, aber nach langjähriger Pause etwas eingerostet und sehe mich deshalb oft in der gleichen Situation wie ein Anfänger. Funktionen sind mir nicht mehr geläufig, die einfachsten Konstrukte muss ich mir neu aneigenen. Also!? ==> Klar, ich benutze die Hilfe oft, und noch wichtiger: Ich suche wirklich Hilfe in der Hilfe!
Oft habe ich den Eindruck, dass einige versierte AutoIt-ler diese Sichtweise verlernt haben, oder zumindest nicht benutzen. Wenn jemand in die Hilfe sieht, dem die betreffende Funktion mehr als vertraut ist, dann merkt er natürlich nicht, dass was fehlt, verwirrent ist, oder einfach mehr Erklärung benötigt, als jemand, der tatsächlich Hilfe braucht.
Das ist in der AutoIt-Hilfe hervorragend gelöst! Keine Frage. Es gibt viele Beispiele, die man per Mausklick sofort öffnen und ausführen kann. Wirklich eine gute Sache!
Dennoch gibt es Stellen, wo man sich als Hilfesuchender ein wenig mehr wünscht.
So z. B. bei der Funktion "Execute": "Führt einen Ausdruck aus." ... hmm,
... was will mir das sagen?
- Der versierte Benutzer: "Na, ist doch klar, so und so und dies und das! Wo ist das Problem!?" ![]()
- Der hilfesuchende Benutzer: "Was meinen die mit 'Ausdruck'? Und wie wird der ausgeführt? Muss ich da die kleinen Tütchen mitnehmen und Häufchen wegmachen?"
Local $a = 1 Local $v = Execute("$a+1") ; $v is set to 2
Dieses Beispiel ist wenig hilfreich. Da habe ich mich als erstes gefragt, inwiefern sich das von einer einfachen Zuweisung unterscheidet.
Local $a = 1 Local $v = $a+1" ; $v is set to 2
Also wozu brauche ich dann die Funktion? Erst nach längerem Grübeln, genauerem Hinsehen ist mir die Sache mit dem String aufgefallen. Das Beispiel 2 der DE Hilfe hat meinen Verdacht bestätigt, und die Bezeichnung des Übergabe-Parameters ergab nun Sinn.
Das ist die Stelle, an der sich ein Anfänger deutlichere Infos wünscht!
Das Beispiel in der EN Hilfe zur Funktion Execute enthält gerade mal 2 Zeilen.
Das zweite deutsche Beispiel hat aber, nach Abzug der Kommentare und des Funktionsaufrufes sogar nur eine Zeile ![]()
"Was meinen die mit 'Ausdruck'? Und wie wird der ausgeführt? Muss ich da die kleinen Tütchen mitnehmen und Häufchen wegmachen?"
Vom Benutzer einer Programmiersprache darf man aber schon erwarten, dass er die Grundzüge von Programmiersprachen beherrscht, oder?
Von der Bedienungsanleitung meines Autos erwarte ich ja auch nicht, dass der Begriff "Motor" erläutert wird. Wir sollten also zumindest von Grundkenntnissen ausgehen.
Nichtsdestotrotzdem würde ich es aber als sinnvoll erachten, wenn wir auch die engl. Hilfe / die engl. Beispiele anpassen, wenn dort nachgewiesenermaßen Käse drinsteht.
Siehe auch: _ArrayMaxIndex
Diesmal nur winzige Buchstabendreher im Text des Beispiels. ![]()
Funktion IsObj
Local $oShell = ObjCreate("shell.application")
If IsObj($oShell) Then
=> MsgBox($MB_SYSTEMMODAL, "", "Die Varaible ist ein Objekt.")
Else
=> MsgBox($MB_SYSTEMMODAL, "", "Die Varaible ist kein Objekt.")
EndIf
Gruß,
Bernd.
behoben
Hallo,
hier wieder ein Fehler.
Funktion: " _Timer_SetTimer()"
In den Bemerkungen steht:
- $hWnd - Ein Handle zu dem Fesnter welches mit dem Timer verbunden ist.
- $iTime - Die Anzahl von Millisekunden die vergangen sind seit das Sysmte gestartet wurden.
Da war wohl einer etwas zu schnell beim schreiben![]()
MfG:BigRox
erledigt
Funktion OnAutoItExitRegister
Registriert eine Funktion, wenn AutoIt verlassen wird.
Funktion OnAutoItExitUnRegister
Deregistriert eine Funktion, wenn AutoIt beendet wird.
Irreführende Beschreibung. Vorschläge:
Funktion OnAutoItExitRegister
Registriert eine Funktion, die aufgerufen werden soll, wenn AutoIt verlassen wird.
Funktion OnAutoItExitUnRegister
Deregistriert eine Funktion, die aufgerufen würde, wenn AutoIt beendet wird.
behoben
Wow, mutch irreführend: ![]()
Funktion _GUICtrlRichEdit_Create
Parameter
| $hWnd | Handle zum Hauptfenster | Handle to parent or owner window |
Habe mich gerade damit beschäftigt, wie man ein Child- in ein Parent-Control einfügt. Da hat mich die DE Beschreibung ganz schön an der Nase rumgeführt.
Mein Vorschlag ist einfach die englische Beschreibung zu übersetzen:
| $hWnd | Handle zum Eltern- oder Besitzerfenster |
Gruß,
Bernd.
Und hier mal ein weiteres Danke für deine großartige Arbeit. ![]()
NB: Da zeigt sich mal wieder das allgemeine Problem bei Übersetzungen von IT-Themen ins Deutsche. Wo es keine (sinnvollen) deutschen Begriffe gibt, bleiben die engl. stehen und verwirren weiterhin die des Englischen nicht-mächtigen Benutzer. Online Übersetzungshilfen helfen da leider auch nicht weiter. "Handle" (wie in obigem Beispiel) führt bei LEO zu 252 Vorschlägen.
Irgendwie unbefriedigend, da hilft wohl nur der Erwerb des engl. IT-Chinesisch
</rant>
Ich als "Englisch-Tiefbegabter" danke dir! ![]()
Edit: Typo
behoben
Funktion _GUICtrlEdit_GetSel
Im DE Beispiel:
Func Example()
Local $hStatusBar, $idEdit, $hGui
Local $sWow64 = ""
If @AutoItX64 Then $sWow64 = "\Wow6432Node"
Local $sFile = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE" & $sWow64 & "\AutoIt v3\AutoIt", "InstallDir") & "\include\changelog.txt"
Die changelog.txt gibt es (bei mir) nicht, scheinbar sollte da "_ReadMe_.txt" hin, so wie im EN Beispiel.
Bernd.
Tweaky: Diesmal ein Danke im Voraus, dann wird der Thread nicht so aufgebläht. ![]()
Funktion FileRead
; Öffnet die Datei zum schreiben und speichert das Handle in einer Variable.
Local $hFileOpen = FileOpen($sFilePath, $FO_READ)
If $hFileOpen = -1 Then
MsgBox($MB_SYSTEMMODAL, "", "Es ist während dem lesen der Datei ein Fehler aufgetreten.")
Return False
EndIf
; Öffnet die Datei zum schreiben Lesen und speichert das Handle in einer Variable. <== ($FO_READ)
MsgBox($MB_SYSTEMMODAL, "", "Es ist während dem lesen der Datei ein Fehler aufgetreten.")
groß schreiben ==> "... während dem Lesen ..."
Bernd.