Ich habe eine Frage:
Ist es möglich in einer IF-Abfrage eine FOR-Schleife durchzufüren?
Bsp:
[autoit]If $1 = 1 Then
For $2 to 10 Step 1
...
Next
Endif
Ich denke das sollte so funktioneren, tut es aber nicht.
Ich habe eine Frage:
Ist es möglich in einer IF-Abfrage eine FOR-Schleife durchzufüren?
Bsp:
[autoit]If $1 = 1 Then
For $2 to 10 Step 1
...
Next
Endif
Ich denke das sollte so funktioneren, tut es aber nicht.
Hallo,
klar ist es möglich
If $1 = 1 Then
For $i = 1 to 10 Step 1
...
Next
Endif
Würd ich auch sagen. Ich habe aber konkret dieses Probelm:
[autoit]Func _winmove()
If $up = 0 Then
For $pos = @DesktopHeight - 20 - 30 to @DesktopHeight - $guiheigth - 30 Step 5
WinMove($guiname,"",@Desktopwidth - $guiwidth,$pos)
Next
$up = 1
ElseIf $up = 1 Then
For $pos = @DesktopHeight - $guiheigth - 30 to @DesktopHeight - 20 - 30 Step 5
WinMove($guiname,"",@Desktopwidth - $guiwidth,@DesktopHeight - 20 - 30)
Next
$up = 0
EndIf
EndFunc
Diese FOR-Schleife wird nicht ausgeführt. Warum?
Wie genau soll man das deuten? Möchtest du die WinMoves nur ausführen wenn sich die GUI innerhalb eines vorgegebenen Bereichs befindet? Dann würd ich eher IF $pos> .... AND $pos<.... THEN WinMove(...) ENDIF nehmen.
Alles anzeigenWürd ich auch sagen. Ich habe aber konkret dieses Probelm:
[autoit]Func _winmove()
[/autoit]
If $up = 0 Then
For $pos = @DesktopHeight - 20 - 30 to @DesktopHeight - $guiheigth - 30 Step 5
WinMove($guiname,"",@Desktopwidth - $guiwidth,$pos)
Next
$up = 1
ElseIf $up = 1 Then
For $pos = @DesktopHeight - $guiheigth - 30 to @DesktopHeight - 20 - 30 Step 5
WinMove($guiname,"",@Desktopwidth - $guiwidth,@DesktopHeight - 20 - 30)
Next
$up = 0
EndIf
EndFuncDiese FOR-Schleife wird nicht ausgeführt. Warum?
![]()
![]()
entweder
Zitat von HilfeAlles anzeigenFor <variable> = <start> To <stop> [Step <stepval>]
statements
...
Next
...
Eine For-Schleife wird nicht ausgeführt, wenn
start > stop und step > 0 oder
start < stop und step negativ ist.
die 2. Möglichkeit ist die warscheinlichere
mfg (Auto)Bert
Hast du eventuell etwas in der Art vor?
ShellExecute("notepad.exe")
_winmove("[CLASS:Notepad]", "down")
[/autoit] [autoit][/autoit] [autoit]Func _winmove(Const $sWindow, Const $sDirection)
WinWait($sWindow)
Switch $sDirection
Case "up"
WinMove($sWindow, "", 0, 0)
Case "down"
$aReturn = WinGetPos($sWindow)
WinMove($sWindow, "", @DesktopWidth - $aReturn[2], @DesktopHeight - $aReturn[3])
EndSwitch
EndFunc ;==>_winmove
BZW mit Forschleife
ShellExecute("notepad.exe")
[/autoit] [autoit][/autoit] [autoit]_winmove("[CLASS:Notepad]", "up")
[/autoit] [autoit][/autoit] [autoit]Func _winmove(Const $sWindow, Const $sDirection)
WinWait($sWindow)
Switch $sDirection
Case "up"
For $i = 10 To 0 Step -2
WinMove($sWindow, "", 0 + $i, 0 + $i)
Sleep(300)
Next
Case "down"
For $i = 10 To 0 Step -2
$aReturn = WinGetPos($sWindow)
WinMove($sWindow, "", @DesktopWidth - $aReturn[2] - $i, @DesktopHeight - $aReturn[3] - $i)
Sleep(300)
Next
EndSwitch
EndFunc ;==>_winmove
Wieder mal der typische Fall von "Rate mal mit Rosenthal"....
Im Menü "Extras" in Scite gibt es Befehle, die genau für solch SIMPLE Fälle eingesetzt werden.
Mich würde es echt mal wundern, wenn hier ein Script mit Debug-Msgboxen oder Debug-Consolewrites oder noch besser, Tracelines, gepostet würde und dann herauskäme, daß irgendetwas nicht stimmt....von einer Abfrage mit VarGetType wage ich mittlerweile nicht mal zu träumen...
Manchmal erinnert mich das alles an den uralten Kalauer:
Kommt ein Mann zum Arzt und sagt, "Herr Doktor, ich habe immer so ein Stechen im Auge wenn ich Kaffee trinke!", darauf der Arzt:"Dann nehmen sie das nächste Mal einfach den Löffel aus der Tasse!"
Will sagen, die "Kunst" am Programmieren ist nicht, irgendwelche Befehle aneinanderzureihen, sondern im Fehlerfall schnell durch die Wahl geeigneter Mittel (Debug usw.) den Fehler einzugrenzen und zu beheben. DAS sollte als allererstes gelernt werden!
Wie sagt die Werbung so schön..."separates the boys from the men"
Wieder mal der typische Fall von "Rate mal mit Rosenthal"....
Im Menü "Extras" in Scite gibt es Befehle, die genau für solch SIMPLE Fälle eingesetzt werden.
Mich würde es echt mal wundern, wenn hier ein Script mit Debug-Msgboxen oder Debug-Consolewrites oder noch besser, Tracelines, gepostet würde und dann herauskäme, daß irgendetwas nicht stimmt....von einer Abfrage mit VarGetType wage ich mittlerweile nicht mal zu träumen...Manchmal erinnert mich das alles an den uralten Kalauer:
Kommt ein Mann zum Arzt und sagt, "Herr Doktor, ich habe immer so ein Stechen im Auge wenn ich Kaffee trinke!", darauf der Arzt:"Dann nehmen sie das nächste Mal einfach den Löffel aus der Tasse!"Will sagen, die "Kunst" am Programmieren ist nicht, irgendwelche Befehle aneinanderzureihen, sondern im Fehlerfall schnell durch die Wahl geeigneter Mittel (Debug usw.) den Fehler einzugrenzen und zu beheben. DAS sollte als allererstes gelernt werden!
Wieder mal der typische Fall von "Rate mal mit Rosenthal"....
Im Menü "Extras" in Scite gibt es Befehle, die genau für solch SIMPLE Fälle eingesetzt werden.
Mich würde es echt mal wundern, wenn hier ein Script mit Debug-Msgboxen oder Debug-Consolewrites oder noch besser, Tracelines, gepostet würde und dann herauskäme, daß irgendetwas nicht stimmt....von einer Abfrage mit VarGetType wage ich mittlerweile nicht mal zu träumen...Manchmal erinnert mich das alles an den uralten Kalauer:
Kommt ein Mann zum Arzt und sagt, "Herr Doktor, ich habe immer so ein Stechen im Auge wenn ich Kaffee trinke!", darauf der Arzt:"Dann nehmen sie das nächste Mal einfach den Löffel aus der Tasse!"Will sagen, die "Kunst" am Programmieren ist nicht, irgendwelche Befehle aneinanderzureihen, sondern im Fehlerfall schnell durch die Wahl geeigneter Mittel (Debug usw.) den Fehler einzugrenzen und zu beheben. DAS sollte als allererstes gelernt werden!
Wie sagt die Werbung so schön..."separates the boys from the men"
Naja vielleicht versteh ich dich ja falsch nur finde ich deine AUSSAGEN UNANGEMESSEN sogar in Richtung dumm. Wenn man sich autoit alleine beibringt ist nicht alles so klar als wenn man es schojn Jahrelang macht und ich finde es traurig das sich leute wie Du nur im Forum rumtreiben um anderen zu sagen das sie noch schlecht sind schäm dich.
ich denke mal er meinte damit, dass es in scite eingebaut schon debug funktionen gibt, sowie debug msgbox'en oder consolewrite's, wo man nur die variable markieren muss und dann auf diesen eintrag gehen muss und beim ausführen werden diese werte angezeigt , und jangxx diese auch benutzen sollte.
ok es war vllt etwas schwierig rauszulesen, :wacko:
Hi,
Zitat von Name mit vielen NeunenNaja vielleicht versteh ich dich ja falsch
da bin ich sicher
Aber da kommst du gleich selbst drauf, nachdem du folgende Fragen beantwortest:
Nach ca. 2 Jahren gräbst du einen Thread aus, ohne eigenen Lösungsvorschlag, warum?
In welcher Art und Weise hat der Threadersteller auch nur EINEN Ansatz zur Lösung seines Problems gepostet?
Was hat der Threadersteller getan, um herauszufinden WARUM sein Script nicht funktioniert?
Hätte der Threadersteller sein Problem mit Abfragen der von ihm benutzten Variablen z.B. so
Func _winmove()
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $up = ' & $up & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
If $up = 0 Then
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : @DesktopHeight - $guiheigth - 30 = ' & @DesktopHeight - $guiheigth - 30 & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : @DesktopHeight - 20 - 30 = ' & @DesktopHeight - 20 - 30 & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
For $pos = @DesktopHeight - 20 - 30 To @DesktopHeight - $guiheigth - 30 Step 5
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $pos = ' & $pos & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
WinMove($guiname, "", @DesktopWidth - $guiwidth, $pos)
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : @DesktopWidth - $guiwidth = ' & @DesktopWidth - $guiwidth & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
Next
$up = 1
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $up = ' & $up & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
ElseIf $up = 1 Then
For $pos = @DesktopHeight - $guiheigth - 30 To @DesktopHeight - 20 - 30 Step 5
WinMove($guiname, "", @DesktopWidth - $guiwidth, @DesktopHeight - 20 - 30)
Next
$up = 0
EndIf
EndFunc
lösen können, bzw wäre ihm dann aufgefallen dass sich die Variablen ausserhalb des Wertebereichs bewegen?
Ich persönlich stelle mir die o.g Fragen immer beim Lesen eines "Hilfe"-Threads, und dementsprechend fällt die Antwort aus
Zitat von Alizameok es war vllt etwas schwierig rauszulesen,
hehe, leider gibt´s in diesem Forum kein Ironie-Tag, und wenn es eins gäbe, wüssten die meisten Aufgrund Ihres Alters nicht, warum und wieso es benutzt wird