An welchem Punkt der 'Wunschliste' arbeitest du gerade und was ist noch frei?
Beiträge von i2c
-
-
-
Im Moment stürtzt das Skript mit einem Error: Array variable badly formated ab, wenn vor dem Cursor keine Variable gefunden wurde.
[autoit]If $aSplit[$iCol] <> '$' Then
[/autoit]
Do
$iStart -= 1
If $iStart = 0 Then
Exit MsgBox(262192, 'Fehler', 'Keine Variable gefunden')
EndIf
Until $aSplit[$iStart] = '$'
EndIf -
-
Zitat
Was ich mach möchte ist
das ich eine oberflaschen habe mit unter seiten
z.b wie eine browserseite
bsp.
Google.de ->suchebefriff = ergebniss klicke auf zurück =Google.de
nur das in einer gui
Ist doch vom Prinzip her das selbe.
Das da oben ist nur ein Beispiel mit einer möglichen
Umsetzung. Ob da nun vor und zurück geblättert wird
oder nur bestimmte Buttons ein Control Array einblenden...
Alles das selbe. Musst es halt nur in dein Skript einbinden.
Wenn ich dein Beispiel GUI sehe, dann musst du theoretisch
nur jedes Control Array mit einer Funktion an seinen Button binden
und in eine Variable setzen, die ständig die aktuell letzte Seite
speichert (für den "zurück" Button).Zitatjedoch würde ich dann den OnEvent-Modus verwenden, dann hast du keine schwierigkeiten mit dem select...
Ich seh da kein Problem. Wie gesagt, das da oben ist lediglich ein Beispiel. Die Vorgänge könnte man ohne weiteres in 4-5 Funktionen auslagern und beliebig viele Seiten damit generieren und ansteuern. Dict.Object bietet sich natürlich an, man muss es nur kennen und mögen. -
Du sorgst nicht dafür, das du die Schleifen in _favadd() und _favdel() ordentlich verlässt.
[autoit]Switch $nMsg
[/autoit]
Case $GUI_EVENT_CLOSE
GUIDelete($FAV_DEL)
ExitLoop
Ausserdem könntest du deine _IniRead() Funktion umschreiben. Übergib als Parameter eine Combobox ID.
Dann kannst du mit der selben Funktion auch die Combox in _favdel() aktualisieren, nachdem ein Eintrag gelöscht wurde.edit: Ausserdem ist Zeile 199 überflüssig. Erstell die Combo ohne Inhalt. In 203 liest du die Section ja nochmal ein und durchläufst dann die Schleife zum befüllen.
-
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Constants.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GuiStatusBar.au3>#include <SliderConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
Dim $Form = GUICreate("", 538, 267, -1, -1, -1, BitOR($WS_EX_ACCEPTFILES, $WS_EX_WINDOWEDGE))
Dim $hVol, $hVolSlider
Dim $part[15] = [68, 93, 118, 143, 205, 250, 350, 381, 382]$Statusbar = _GUICtrlStatusBar_Create($Form, $part)
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlStatusBar_SetText($Statusbar, "Loaded...")_GUICtrlStatusBar_SetText($Statusbar, "00:00:00", 4)
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlStatusBar_SetText($Statusbar, "VOL", 5)
_GUICtrlStatusBar_SetText($Statusbar, "BPM", 6)GUISetState()
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")While 1
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEndFunc WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit]
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $Statusbar
Switch $iCode
Case $NM_CLICK
Local $tinfo = DllStructCreate($tagNMMOUSE, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tinfo, "hWndFrom"))
$ItemSpec = DllStructGetData($tinfo, "ItemSpec")
Switch $ItemSpec
Case 4
MsgBox(0, 0, "Klick auf Timer")
Case 5
MsgBox(0, 0, "Klick auf VOL")
Case 6
MsgBox(0, 0, "Klick auf BPM")
EndSwitch
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY -
Keine Ahnung ob ich jetzt dich oder du mich falsch verstanden hast ...
Spoiler anzeigen
[autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#region ### START Koda GUI section ### Form=
Global $seite1[3], $seite2[3], $seite3[3], $current = 1, $max = 3
$Form1 = GUICreate("Form1", 395, 159, 227, 148)
$Button1 = GUICtrlCreateButton("zurück", 88, 104, 75, 25)
$Button2 = GUICtrlCreateButton("home", 176, 104, 75, 25)
$Button3 = GUICtrlCreateButton("vor", 264, 104, 75, 25)
$seite1[0] = GUICtrlCreateLabel("$seite1", 24, 16, 36, 17)
$seite1[1] = GUICtrlCreateLabel("$seite1", 104, 16, 36, 17)
$seite1[2] = GUICtrlCreateLabel("$seite1", 184, 24, 36, 17)
$seite2[0] = GUICtrlCreateLabel("$seite2", 24, 16, 36, 17)
GUICtrlSetState(-1, $GUI_HIDE)
$seite2[1] = GUICtrlCreateLabel("$seite2", 104, 16, 36, 17)
GUICtrlSetState(-1, $GUI_HIDE)
$seite2[2] = GUICtrlCreateLabel("$seite2", 184, 24, 36, 17)
GUICtrlSetState(-1, $GUI_HIDE)
$seite3[0] = GUICtrlCreateLabel("$seite3", 24, 16, 36, 17)
GUICtrlSetState(-1, $GUI_HIDE)
$seite3[1] = GUICtrlCreateLabel("$seite3", 104, 16, 36, 17)
GUICtrlSetState(-1, $GUI_HIDE)
$seite3[2] = GUICtrlCreateLabel("$seite3", 184, 24, 36, 17)
GUICtrlSetState(-1, $GUI_HIDE)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button3
If $current < $max Then
$aNext = _getNextControlArray()
$aCurrent = _getCurrentControlArray()
For $i = 0 To UBound($aCurrent) - 1
GUICtrlSetState($aCurrent[$i], $GUI_HIDE)
Next
For $i = 0 To UBound($aNext) - 1
GUICtrlSetState($aNext[$i], $GUI_SHOW)
Next
$current += 1
EndIf
Case $Button1
If $current > 1 Then
$aPrevious = _getPreviousControlArray()
$aCurrent = _getCurrentControlArray()
For $i = 0 To UBound($aCurrent) - 1
GUICtrlSetState($aCurrent[$i], $GUI_HIDE)
Next
For $i = 0 To UBound($aPrevious) - 1
GUICtrlSetState($aPrevious[$i], $GUI_SHOW)
Next
$current -= 1
EndIf
EndSwitch
WEndFunc _getNextControlArray()
[/autoit] [autoit][/autoit] [autoit]
$aNext = Eval("seite" & $current + 1)
Return $aNext
EndFunc ;==>_getNextControlArrayFunc _getCurrentControlArray()
[/autoit] [autoit][/autoit] [autoit]
$aCurrent = Eval("seite" & $current)
Return $aCurrent
EndFunc ;==>_getCurrentControlArrayFunc _getPreviousControlArray()
[/autoit]
$aPrevious = Eval("seite" & $current - 1)
Return $aPrevious
EndFunc ;==>_getPreviousControlArray
Fehlt noch etwas Feintuning an den Buttons (disablen wenn nicht benutzbar). -
Ich she grad, so geht's auch.
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <TabConstants.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 623, 446, 227, 148)
$Tab1 = GUICtrlCreateTab(32, 24, 289, 193)
GUICtrlSetOnEvent(-1, '_GetTab')
$TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
$TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
$TabSheet3 = GUICtrlCreateTabItem("TabSheet3")
GUICtrlSetState(-1, $GUI_SHOW)
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
;GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
While 1
Sleep(100)
WEndFunc _GetTab()
[/autoit]
MsgBox(0, 0, "Tabsheet"&GUICtrlRead($Tab1))
EndFunc ;==>_GetTabÜber WM_NOTIFY will's bei mir grad nicht klappen.
-
Wenn du deine Controls für jede Seite in ein eigenes Array packst, kannst du sie einfach ein und ausblenden.
-
Eine relativ simple Variante.
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <GuiTab.au3>Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]#region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Form1", 623, 446, 227, 148)
$Tab1 = GUICtrlCreateTab(32, 24, 289, 193)
$TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
$TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
GUICtrlSetState(-1, $GUI_SHOW)
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
$x = 0
While 1
If $x = 0 And _GUICtrlTab_GetCurSel($Tab1) = 0 Then
MsgBox(0, 0, "TabSheet0 gewählt")
$x = 1
ElseIf $x = 1 And _GUICtrlTab_GetCurSel($Tab1) <> 0 Then
$x = 0
EndIf
Sleep(100)
WEndFunc _tabsheet1()
[/autoit]
MsgBox(0, 0, "Tab1")
EndFunc ;==>_tabsheet1 -
Wenn du XAMPP nicht über 127.0.0.1 erreichen kann, dann hast du evtl. ein DNS Problem.
FIrewall und AV sind oft genug bremsen und einfaches deaktivieren reicht meist nicht.
Auf meinem PC lief XAMPP schon immer recht zäh unter Win7 64bit. Auf dem Laptop
mit nahezu identischer Softwareausstattung und Konfiguration läuft's dagegen super.Als Alternative könntest du mal ZendServerCE ausprobieren. Alle XAMPP Dienste sollte
während der Installation gestoppt sein, sonst gibt's Port Salat. Und lass ihn einen
Apachen installieren, IIS muss man sich ja nicht unbedingt antun. -
Du löschst in deiner 2ten While zwar die GUI, verlässt aber nicht die Schleife.
Dadurch bleibt dein Skript in der inneren Schleife gefangen und der Button
von Form1 wird nie abgefragt. Ausserdem überschreibst du in der 2ten GUI die ID
$button1 neu.Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 226, 92, 192, 124)
$Button1 = GUICtrlCreateButton("öffne Form2", 0, 8, 225, 81, $WS_GROUP)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
#region ### START Koda GUI section ### Form=
$Form2 = GUICreate("Form2", 223, 74, 193, 129)
$Button2 = GUICtrlCreateButton("schliesse Form2", 0, 8, 217, 65, $WS_GROUP)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button2
GUIDelete($form2)
ExitLoop
EndSwitch
WEnd
EndSwitch
WEndSpoiler anzeigen
[autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>$gui1 = GUICreate("GUI-1", 259, 46)
[/autoit] [autoit][/autoit] [autoit]
$Button1_1 = GUICtrlCreateButton("zu GUI-1", 8, 8, 75, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button2_1 = GUICtrlCreateButton("zu GUI-2", 88, 8, 75, 25, $WS_GROUP)
$Button3_1 = GUICtrlCreateButton("zu GUI-3", 168, 8, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)$gui2 = GUICreate("GUI-2", 259, 46)
[/autoit] [autoit][/autoit] [autoit]
$Button1_2 = GUICtrlCreateButton("zu GUI-1", 8, 8, 75, 25, $WS_GROUP)
$Button2_2 = GUICtrlCreateButton("zu GUI-2", 88, 8, 75, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button3_2 = GUICtrlCreateButton("zu GUI-3", 168, 8, 75, 25, $WS_GROUP)
GUISetState(@SW_HIDE)$gui3 = GUICreate("GUI-3", 259, 46)
[/autoit] [autoit][/autoit] [autoit]
$Button1_3 = GUICtrlCreateButton("zu GUI-1", 8, 8, 75, 25, $WS_GROUP)
$Button2_3 = GUICtrlCreateButton("zu GUI-2", 88, 8, 75, 25, $WS_GROUP)
$Button3_3 = GUICtrlCreateButton("zu GUI-3", 168, 8, 75, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState(@SW_HIDE)While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button2_1
GUISetState(@SW_HIDE, $gui1)
GUISetState(@SW_SHOW, $gui2)
Case $Button3_1
GUISetState(@SW_HIDE, $gui1)
GUISetState(@SW_SHOW, $gui3)
Case $Button1_2
GUISetState(@SW_HIDE, $gui2)
GUISetState(@SW_SHOW, $gui1)
Case $Button3_2
GUISetState(@SW_HIDE, $gui2)
GUISetState(@SW_SHOW, $gui3)
Case $Button1_3
GUISetState(@SW_HIDE, $gui3)
GUISetState(@SW_SHOW, $gui1)
Case $Button2_3
GUISetState(@SW_HIDE, $gui3)
GUISetState(@SW_SHOW, $gui2)
EndSwitch
WEndSpoiler anzeigen
[autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]$gui1 = GUICreate("GUI-1", 259, 46)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
$Button1 = GUICtrlCreateButton("zu GUI-1", 8, 8, 75, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button2 = GUICtrlCreateButton("zu GUI-2", 88, 8, 75, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "_show2")
$Button3 = GUICtrlCreateButton("zu GUI-3", 168, 8, 75, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "_show3")
GUISetState(@SW_SHOW)$gui2 = GUICreate("GUI-2", 259, 46)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
$Button1 = GUICtrlCreateButton("zu GUI-1", 8, 8, 75, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "_show1")
$Button2 = GUICtrlCreateButton("zu GUI-2", 88, 8, 75, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button3 = GUICtrlCreateButton("zu GUI-3", 168, 8, 75, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "_show3")
GUISetState(@SW_HIDE)$gui3 = GUICreate("GUI-3", 259, 46)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
$Button1 = GUICtrlCreateButton("zu GUI-1", 8, 8, 75, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "_show1")
$Button2 = GUICtrlCreateButton("zu GUI-2", 88, 8, 75, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "_show2")
$Button3 = GUICtrlCreateButton("zu GUI-3", 168, 8, 75, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState(@SW_HIDE)While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
WEndFunc _show1()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_HIDE, $gui2)
GUISetState(@SW_HIDE, $gui3)
GUISetState(@SW_SHOW, $gui1)
EndFunc ;==>_show1Func _show2()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_HIDE, $gui1)
GUISetState(@SW_HIDE, $gui3)
GUISetState(@SW_SHOW, $gui2)
EndFunc ;==>_show2Func _show3()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_HIDE, $gui1)
GUISetState(@SW_HIDE, $gui2)
GUISetState(@SW_SHOW, $gui3)
EndFunc ;==>_show3Func _exit()
[/autoit]
Exit
EndFunc ;==>_exit -
-
Kleines Update in Post#1.
Sprenger120 war so nett und hat das Skript an die neue API angepasst.
Pastebin.com unterstützt jetzt Benutzeraccounts. Dafür fallen die Subdomains
weg. Das Feature hab ich deshalb gleich mit aus dem Skript geputzt.Die alte settings.ini sollte vor dem Gebrauch gelöscht werden.
-
Datei schließen und neu öffnen um die Änderungen zu sehen war mir zu blöd. Nicht unbedingt elegant, aber ich spreche jetzt per "Send" das Menü <Datei><Neu Laden> an. Da hier keine Windowskonformen Controls im Einsatz sind und ich bisher keinen internen Aufruf dafür entdecken konnte, scheint mir das die praktikabelste Lösung.
Code
Alles anzeigen::AutoIt Run NPP_SAVE // speichert Datei "$(SYS.ProgramFiles)\AutoIt3\AutoIt3.exe" "$(FULL_CURRENT_PATH)" // führt AutoIt-Skript aus ::AutoIt Compile NPP_SAVE "$(NPP_DIRECTORY)\plugins\AutoIt3\CompileScript.exe" "$(FULL_CURRENT_PATH)" // Kompiliert Skript durch Aufruf der NppRunAut2exe.exe ::AutoIt Tidy NPP_SAVE "$(SYS.ProgramFiles)\AutoIt3\SciTE\Tidy\Tidy.exe" "$(FULL_CURRENT_PATH)" NPP_OPEN "$(FULL_CURRENT_PATH)" ::AutoIt Check NPP_SAVE "$(SYS.ProgramFiles)\AutoIt3\Au3Check.exe" "$(FULL_CURRENT_PATH)" // führt Syntax-Check aus -
Vlt. findest du hier ein paar Anregungen: https://autoit.de/index.php?page…lock#post123309
-
Der Lappi mag heute irgendwie nichtmehr rendern darum gibt's ein schlichtes
Happy Bday, alles Gute zum 25sten und bleib gesund. -
http://translation.autoit.de/onlinehilfe/intro/compiler.htm
Wobei hier natürlich auch keine Sicherheit vor Veränderungen besteht. Es gibt die bösen Dekompilierer die deinen Quellcode wieder lesbar machen können. Also keine Zugangsdaten o.ä. im Quellcode unterbringen ;).
-
[autoit]
$hFile = FileOpen(@ScriptDir & "\test.hex",16 )
[/autoit]