Hey
@Edit: Thanks an alle Programm im anhang (64 und 32 bit version :D)
MfG
Tutnix
Hey
@Edit: Thanks an alle Programm im anhang (64 und 32 bit version :D)
MfG
Tutnix
1. Der Button ... du hast die falsche Variable genommen.
2. Drück nächstes Mal mal Strg + T. Dann macht Tidy deinen Code einigermaßen lesbar
3. Deine Fehler waren, das du teilweise 2x EndFunc geschrieben hast oder es einfach vergessen.
Zudem deklarierst du auch immer wieder die Funktion Rechnen() neu...
Auch Zeile 115 - Wo sind die Klammern?
Vielleicht hab ich noch ein paar Fehler übersehen.
Ich würde dir sehr, sehr chessi's [Tutorial] Sauber Programmieren ans Herz legen
Und mithilfe der Zeilennummern, welche der Syntax-Checker ausspuckt, solltest du deine Fehler selbst finden können.
AutoIt macht die Fehlersuche sowieso schon sehr leicht, das es immer Zeilennummern anzeigt.
//Edit: Das größte Problem ist mir gerade eben erst aufgefallen. Es wird niemals eine Funktion aufgerufen - daher rattert der Interpreter einfach drüber und fertig...
4. Nehm (wenn du schon für jede Form eine neue Variable machst) auch für die Controls eine neue Variable z.B. $AdditionInput, damit ist dein Code besser verständlich.
5. Übertreib es nicht mit den Funktionen!, du hättest die GUIs genauso gut auch in die Switch-Case Abfrage packen können, aber das ist Geschmackssache. Ein weiterer Grund für die Switch-Case wäre die zu vermeidende Rekursion, auch wenn man das natürlich beheben könnte.
6. GUIDelete($hGUI) verwenden und nicht GUIDelete $hGUI ($hGUI durch dein Formhandle ersetzen), da die Funktion den Parameter braucht und nicht wie z.B. Exit 1 anzuwenden ist.
Hi,
[autoit]
Case $Butten2 ; Zeile 28
; besser:
Case $Button2
Hi,
ZitatUnd mithilfe der Zeilennummern, welche der Syntax-Checker ausspuckt, solltest du deine Fehler selbst finden können.
Ein Doppelklick auf die in der Scite-Console angezeigte Zeile lässt den Cursor auf den fehlerhaften Code springen.
Erstmal Thanks an alle
Alles anzeigen1. Der Button ... du hast die falsche Variable genommen.
2. Drück nächstes Mal mal Strg + T. Dann macht Tidy deinen Code einigermaßen lesbar
3. Deine Fehler waren, das du teilweise 2x EndFunc geschrieben hast oder es einfach vergessen.
Zudem deklarierst du auch immer wieder die Funktion Rechnen() neu...
Auch Zeile 115 - Wo sind die Klammern?
Vielleicht hab ich noch ein paar Fehler übersehen.
Ich würde dir sehr, sehr chessi's [Tutorial] Sauber Programmieren ans Herz legenUnd mithilfe der Zeilennummern, welche der Syntax-Checker ausspuckt, solltest du deine Fehler selbst finden können.
AutoIt macht die Fehlersuche sowieso schon sehr leicht, das es immer Zeilennummern anzeigt.
//Edit: Das größte Problem ist mir gerade eben erst aufgefallen. Es wird niemals eine Funktion aufgerufen - daher rattert der Interpreter einfach drüber und fertig...
@Edit stimmt XD das war nur nen versuch diese blöden false rauszubekommen XD sorry vergessen rauszunehmen
zu 1. -.- ich bin doof ... sorry
zu 2. ähm ... was zum Teufel is Tidy?????? (bring mir das grad selber bei drum frag ich mal ... hab noch nich alle funktionen entdeckt)
zu 3. Wie soll ich das mit der Func Rechner () denn machen?? sie is ja in nem Func eingebettet also dürfte da eigentlich ja nix passiren
und ... mal wieder doofheit XD (z.115)
ok ... werd mal deinen skript so überarbeiten ... und [Tutorial] Sauber Programmieren is schon als Lesezeichen XD
4. Nehm (wenn du schon für jede Form eine neue Variable machst) auch für die Controls eine neue Variable z.B. $AdditionInput, damit ist dein Code besser verständlich.
5. Übertreib es nicht mit den Funktionen!, du hättest die GUIs genauso gut auch in die Switch-Case Abfrage packen können, aber das ist Geschmackssache. Ein weiterer Grund für die Switch-Case wäre die zu vermeidende Rekursion, auch wenn man das natürlich beheben könnte.
6. GUIDelete($hGUI) verwenden und nicht GUIDelete $hGUI ($hGUI durch dein Formhandle ersetzen), da die Funktion den Parameter braucht und nicht wie z.B. Exit 1 anzuwenden ist.
zu 4. ok ... das könnte vill helfen XD
zu 5. dem switch code ??? und was is ne Rekusion ... bitte nicht erschlagen ich lern auch ich lern auch
zu 6. wo findet man diese tricks ... ich bekomm das kein stück hin XD breucht ne erklärung für sowas ... also nehm ich mal mein GUIDelete ... da weis ich wie es geht XD
Hi,
[autoit][/autoit]
Case $Butten2 ; Zeile 28
; besser:
Case $Button2
XD ja ... ich hab keine Brille auf gehabt (irgend ne ausrede)
Hi,
Ein Doppelklick auf die in der Scite-Console angezeigte Zeile lässt den Cursor auf den fehlerhaften Code springen.
°-° bitte deutschen das nochmal ein XD (so wie ich das verstanden hab ... mit nem Doppelklick auf das komische korektur ding und is man an der stelle mit dem fehler?? richtig?)
Thanks leute ihr seit wirklich gut (alles ausgebildete programmirer/informatiker oder sind hier noch nen paar junge hobby programmirer mit der aussicht auf so nen job??)
MfG
Tutnix
PS: Werd den skript ausbessern wenn er fertig is ... hoffe bekomm das blöde ding auf gelöst XD.
Im Source-Code stand
[autoit]GuiDelete $hGui
[/autoit]oder so ähnlich, das ist aber nicht der richtige Syntax, mittlerweile hast du das glaub ich schon ergänzt.
Tidy ist ein Programm, (ist in SciTE per HotKey STRG+T glaub ich verfügbar), welches dein Script mit sinnvollen Code-Einrückungen versieht, damit es besser lesbar ist.
Aus:
Func Addition($fValue1, $fValue2)
Local $fReturn
$fReturn = $fValue1 + $fValue2
Return $fReturn
EndFunc
wird sowas wie:
Func Addition($fValue1, $fValue2)
Local $fReturn
$fReturn = $fValue1 + $fValue2
Return $fReturn
EndFunc ;==> Addition
Mit Rekursion mein ich folgendes: Ich würde nicht für jede Form unbedingt eine eigene Funktion machen, da wenn du die Funktion selbst in der Funktion aufrufst eine Rekursion (sprich Wiederholung) hervorrufst.
AutoIt streikt ab knapp 1899 in sich wiederholten Funktionsaufrufen und beendet das Programm, deshalb vermeid Funktionen solange sie nicht von Nöten sind.
Desweiteren kannst du statt Funktionen auch einfach die GUIs am Anfang initialisieren und den GUISetState auf @SW_HIDE stellen, und immer wenn du die GUI brauchst, nimmst du einfach GUISetState($hGui, @SW_SHOW),
dabei musst du aber jeder Form natürlich unterschiedliche Variablen zuweisen!
AutoIt streikt ab knapp 1899 in sich wiederholten Funktionsaufrufen und beendet das Programm, deshalb vermeid Funktionen solange sie nicht von Nöten sind.
Das stimmt nicht ganz. Ich zitiere mal aus der Hilfe:
ZitatMAXCALLRECURSE = 5100 -> Maximum number of times the Call() function can recurse to itself.
Das kann bei dir durchaus sein, aber wenn ich eine rekursive Funktion baue und die Anzahl der Aufrufe ausgebe, dann sind das bei mir 1899 Aufrufe.
Alles anzeigenIm Source-Code stand
[autoit]GuiDelete $hGui
[/autoit]oder so ähnlich, das ist aber nicht der richtige Syntax, mittlerweile hast du das glaub ich schon ergänzt.
[autoit]
Tidy ist ein Programm, (ist in SciTE per HotKey STRG+T glaub ich verfügbar), welches dein Script mit sinnvollen Code-Einrückungen versieht, damit es besser lesbar ist.
Aus:Func Addition($fValue1, $fValue2)
[/autoit]
Local $fReturn
$fReturn = $fValue1 + $fValue2
Return $fReturn
EndFunc[autoit]
wird sowas wie:Func Addition($fValue1, $fValue2)
[/autoit]
Local $fReturn
$fReturn = $fValue1 + $fValue2
Return $fReturn
EndFunc ;==> Addition
Mit Rekursion mein ich folgendes: Ich würde nicht für jede Form unbedingt eine eigene Funktion machen, da wenn du die Funktion selbst in der Funktion aufrufst eine Rekursion (sprich Wiederholung) hervorrufst.
AutoIt streikt ab knapp 1899 in sich wiederholten Funktionsaufrufen und beendet das Programm, deshalb vermeid Funktionen solange sie nicht von Nöten sind.Desweiteren kannst du statt Funktionen auch einfach die GUIs am Anfang initialisieren und den GUISetState auf @SW_HIDE stellen, und immer wenn du die GUI brauchst, nimmst du einfach GUISetState($hGui, @SW_SHOW),
dabei musst du aber jeder Form natürlich unterschiedliche Variablen zuweisen!
hmm ok jetzt weis ich wenigstens was Tidy is (direkt testen XD)
Nich so viele Funktionen ... Gespeichert.
°-° mit gui initalisiren meinst du doch das ich die gui in ner au3 speichern soll und dann wenn ich sie haben möchte GuiSetState ($hGui,@sw_show) eingebe ... dann is sie wieder sichtbar? Cool (kann man über diese funktions whiles aktiviren/deaktiviren die mit der Gui verknüpft sind?)
Das kann bei dir durchaus sein, aber wenn ich eine rekursive Funktion baue und die Anzahl der Aufrufe ausgebe, dann sind das bei mir 1899 Aufrufe.
Hmm...ich hatte das bisher nie ausprobiert. Bin davon ausgegangen, dass der Wert in der Hilfe stimmt.
Hier mal ein Testscript:
_Test(1)
Func _Test($iCount)
ConsoleWrite($iCount & @CR)
If $iCount < 5100 Then _Test($iCount + 1)
EndFunc
Damit kommt bei mir (AutoIt v3.3.8.1 und AutoIt Beta v3.3.9.20) ein Abbruch ("Recursion level has been exceeded - AutoIt will quit to prevent stack overflow.") nach 3899 Aufrufen.
Der kommt bei mir nach 1899 Aufrufen, weiß nicht woran es liegen könnte. Verwende auch die 3.3.8.1!
Ich habe dasselbe Ergebnis, wie Oscar:
AutoIt 3.3.8.1 = 3899
OS: Win7 - x64
// Hat sich erledigt, x64 Variante: 1899. x86 Variante: 3899.
XD alle discutiren über diesen Komischen Recusse Lv ... bei mir Win8 32bit (x86) is es auch 3899 nur um daruaf zu kommen ...
aber jetzt nochmal zu meiner frage ...
°-° mit gui initalisiren meinst du doch das ich die gui in ner au3 speichern soll und dann wenn ich sie haben möchte (vorher per #include initalisiren) GuiSetState ($hGui,@sw_show) eingebe ... dann is sie wieder sichtbar? Cool (kann man über diese funktions whiles aktiviren/deaktiviren die mit der Gui verknüpft sind?)
Nein so meinte ich das nicht, die GUIs kannst du am Anfang vom Script initialisieren und wenn du sie später brauchst wieder die Einträge resetten und sichtbar machen.
achso meinst du das ... alle guis untereinader und nur die hauptgui sichtbar machen und denn rest nur sichtbar wenn man auf denn buttendrückt ... ouhh ... damit könnte der bug gefixt sein denn ich mom hab XD thanks
@Edit: Thanks an alpines, aber auch an die Anderen alle bugs gefixt Thanks .... HAPPPYYYY (wer will kann mal testen aber net enteuscht sein ... anfänger do it )