Hallo Autoit Gemeinde.
Hab mal wieder ein kleines Problem und könnte eine Lösung gebrauchen.
In der GUI habe ich zwei Button "Move" + "Copy"
Ich will nun zwischen den beiden Button umschalten können. Dafür habe ich die Button mit
_GUICtrlButton_SetState
(BtnMovClick -- BtnCopClick)
Mein Problem nun, wenn ich die Button der Reihe nach anklicke und dann Wechsel funktioniert alles ganz gut.
Der eine Button geht aus, der andere an. Wenn ich dies das zweite mal tue, wechselt der Hintergrund nicht mehr.
Hab schon mehrfach probiert zu ändern, auch Sleep(300) eingebaut.
Kann mir jemand sagen wo der Fehler liegt oder gibt es dafür eine andere Vorgehenswiese?
Dankbar für jeden Tip....
mein Code
Spoiler anzeigen
#include <GuiButton.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#include <File.au3>
Opt("GUIOnEventMode", 1)
Global $exStyles = BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES) ;ListViews Stile
Global $Pfad_1, $Pfad_2 ;Ordner auswahl in Variable speichern
Global $FileList_1, $FileList_2 ; Variablen für Ordner durchsuchen "_FileListToArrayRec" Folder 1 & Folder 2
#Region ### START Koda GUI section ### Form=t:\ases ae61\scripte\autoit\entwicklung\dpllview.kxf
Global $Form1_1 = GUICreate("Form1", 965, 951, 196, 130, $WS_OVERLAPPEDWINDOW)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1_1Close")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1_1Minimize")
GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Form1_1Maximize")
GUISetOnEvent($GUI_EVENT_RESTORE, "Form1_1Restore")
;------------------Create an Open Pfad 1 Button
$Btn_Dir1 = GUICtrlCreateButton("Ordner 1 auswählen (Original)", 27, 10, 250, 25)
GUICtrlSetOnEvent(-1, "Dir1BtnClick")
GUICtrlSetFont($Btn_Dir1, 11, "", "", "") ;font size
(
;------------------Create an Open Pfad 2 Button
$Btn_Dir2 = GUICtrlCreateButton("Ordner 2 auswählen (Kopie)", 27, 45, 250, 25)
GUICtrlSetOnEvent(-1, "Dir2BtnClick")
GUICtrlSetFont($Btn_Dir2, 11, "", "", "") ;font size
GUICtrlSetState(-1, $GUI_DISABLE) ;Button Deaktivieren
;------------------Create an Open Folder Ordner 1 Button
$FolderOpen_Btn = GUICtrlCreateButton("Dateipfad öffnen (Original)", 320, 10, 250, 25)
GUICtrlSetFont($FolderOpen_Btn, 11, "", "", "") ;font size
;------------------Create an Copy_Btn Button
$Copy_Btn = GUICtrlCreateButton("Mit ROBOCOPY abgleichen", 320, 45, 250, 25)
GUICtrlSetFont($Copy_Btn, 11, "", "", "") ;font size
GUICtrlSetState($Copy_Btn, $GUI_DISABLE) ;Button Deaktivieren
;------------------Create an Label-Pfad Ordner 1
$Labpfad_1 = GUICtrlCreateLabel("Ordner 1: ", 27, 82, 550, 20)
GUICtrlSetFont(-1, 10, "", "", "") ;font size
GUICtrlSetColor($Labpfad_1, 0x0000FF) ;font farbe
;------------------Create an Label-Pfad Ordner 2
$Labpfad_2 = GUICtrlCreateLabel("Ordner 2: ", 27, 105, 550, 20)
GUICtrlSetFont(-1, 10, "", "", "") ;font size
GUICtrlSetColor($Labpfad_2, 0xFF0000) ;font farbe
;------------------Create an ListView
$idListview1 = GUICtrlCreateListView("", 40,180, 400, 700) ;,$LVS_SORTDESCENDING)
_GUICtrlListView_AddColumn($idListview1, "", 20) ;Spalte 1
_GUICtrlListView_AddColumn($idListview1, "Dateien", 100) ;Spalte 2
_GUICtrlListView_AddColumn($idListview1, "Pfad (Original)", 550) ;Spalte 3
_GUICtrlListView_SetExtendedListViewStyle($idListview1, BitOR($exStyles, $LVS_EX_GRIDLINES, $LVS_EX_TRACKSELECT)) ;listView Stile
;------------------Create an ListView
$idListview2 = GUICtrlCreateListView("", 440, 180, 400, 700) ;,$LVS_SORTDESCENDING)
_GUICtrlListView_AddColumn($idListview2, "", 20) ;Spalte 1
_GUICtrlListView_AddColumn($idListview2, "Dateien", 100) ;Spalte 2
_GUICtrlListView_AddColumn($idListview2, "Pfad (Original)", 550) ;Spalte 3
_GUICtrlListView_SetExtendedListViewStyle($idListview2, BitOR($exStyles, $LVS_EX_GRIDLINES)) ;listView Stile
; Das ganze muß in eine Schleife gebunden werden
_GUICtrlListView_AddItem($idListview1, "", 0) ;Spalte1 Icon
_GUICtrlListView_AddSubItem($idListview1, 0, "Motorrad.jpeg", 1) ;Spalte2 Datei
_GUICtrlListView_AddSubItem($idListview1, 0, "C:/Windows/System32/", 2) ;Spalte3 Pfad
_GUICtrlListView_AddItem($idListview1, "", 1) ;Spalte1 Icon
_GUICtrlListView_AddSubItem($idListview1, 1, "Fahrrad.jpg", 1) ;Spalte2 Datei
_GUICtrlListView_AddSubItem($idListview1, 1, "C:/Windows/System32/", 2) ;Spalte3 Pfad
_GUICtrlListView_AddItem($idListview1, "", 2) ;Spalte1 Icon
_GUICtrlListView_AddSubItem($idListview1, 2, "Fahrrad.jpg", 1) ;Spalte2 Datei
_GUICtrlListView_AddSubItem($idListview1, 2, "C:/Windows/System32/", 2) ;Spalte3 Pfad
_GUICtrlListView_AddItem($idListview1, "", 3) ;Spalte1 Icon
_GUICtrlListView_AddSubItem($idListview1, 3, "Fahrrad.jpg", 1) ;Spalte2 Datei
_GUICtrlListView_AddSubItem($idListview1, 3, "C:/Windows/System32/", 2) ;Spalte3 Pfad
Global $BtnUp = GUICtrlCreateButton("/\", 880, 180, 33, 40)
GUICtrlSetOnEvent(-1, "BtnUpClick")
GUICtrlSetState(-1, $GUI_DISABLE) ;Button Deaktivieren
Global $BtnDown = GUICtrlCreateButton("\/", 880, 300, 33, 40)
GUICtrlSetOnEvent(-1, "BtnDownClick")
GUICtrlSetState(-1, $GUI_DISABLE) ;Button Deaktivieren
Global $BtnLeft = GUICtrlCreateButton("BtnLeft", 848, 250, 41, 40, $BS_ICON)
GUICtrlSetImage(-1, "C:\Windows\SysWOW64\wmploc.DLL", -200, 0)
GUICtrlSetOnEvent(-1, "BtnLeftClick")
Global $BtnRight = GUICtrlCreateButton("BtnRight", 904, 250, 41, 40, $BS_ICON)
GUICtrlSetState(-1, $GUI_ENABLE) ;Button Deaktivieren
GUICtrlSetImage(-1, "C:\Windows\SysWOW64\wmploc.dll", -199, 4)
GUICtrlSetOnEvent(-1, "BtnRightClick")
Global $BtnMov = GUICtrlCreateButton("Move", 865, 144, 60, 31, $BS_ICON) ;, $WS_EX_TRANSPARENT) <============================================================
GUICtrlSetOnEvent(-1, "BtnMovClick")
_GUICtrlButton_SetState(-1, FALSE)
Global $BtnCop = GUICtrlCreateButton("Copy", 865, 350, 57, 31, $BS_ICON) ;, $WS_EX_TRANSPARENT) <============================================================
GUICtrlSetOnEvent(-1, "BtnCopClick")
_GUICtrlButton_SetState(-1, TRUE)
Global $Label2 = GUICtrlCreateLabel("Ordner 1 (First Folder)", 80, 145, 220, 29)
GUICtrlSetFont(-1, 16, 400, 0, "Arial Narrow")
GUICtrlSetOnEvent(-1, "Label2Click")
Global $Label3 = GUICtrlCreateLabel("Ordner 2 (Second Folder)", 480, 145, 220, 29)
GUICtrlSetFont(-1, 16, 400, 0, "Arial Narrow")
GUICtrlSetOnEvent(-1, "Label3Click")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
Sleep(100)
WEnd
Func BtnDownClick()
EndFunc
Func BtnLeftClick()
GUICtrlSetImage($BtnLeft, "C:\Windows\SysWOW64\wmploc.DLL", -200, 2)
GUICtrlSetImage($BtnRight, "C:\Windows\SysWOW64\wmploc.DLL", -199, 0)
EndFunc
Func BtnRightClick()
GUICtrlSetImage($BtnLeft, "C:\Windows\SysWOW64\wmploc.DLL", -200, 0)
GUICtrlSetImage($BtnRight, "C:\Windows\SysWOW64\wmploc.DLL", -199, 2)
EndFunc
Func BtnUpClick()
EndFunc
Func BtnCopClick()
_GUICtrlButton_SetState($BtnMov, FALSE)
Sleep(300)
_GUICtrlButton_SetState($BtnCop, TRUE)
;~ GUICtrlSetFont($BtnCop, 14, 400, 0, "Arial")
;~ GUICtrlSetFont($BtnMov, 14, 400, 0, "Arial Black")
EndFunc
Func BtnMovClick()
_GUICtrlButton_SetState($BtnMov, TRUE)
Sleep(300)
_GUICtrlButton_SetState($BtnCop, FALSE)
;~ GUICtrlSetFont($BtnMov, 14, 400, 0, "Arial")
;~ GUICtrlSetFont($BtnCop, 14, 400, 0, "Arial Black")
EndFunc
Func Form1_1Close()
Exit
EndFunc
Func Form1_1Maximize()
EndFunc
Func Form1_1Minimize()
EndFunc
Func Form1_1Restore()
EndFunc
Func Dir1BtnClick()
_GUICtrlListView_DeleteAllItems($idListview1) ;Alle einträge in ListView Löschen
;~ _GUICtrlStatusBar_SetText($StatusBar1, "Bearbeitung gestartet") ;Text in Statusbar links
$dir = FileSelectFolder("Ordner auswählen","") ;Ordner auswahl starten
$Pfad_1 = $dir & "\" ;Ausgewählten Pfad in eine Variable speichern
If $dir = "" Then
;~ GUICtrlSetState($Btn_Dir1, $GUI_DISABLE) ;Button Deaktivieren
GUICtrlSetData($Labpfad_1, "Ordner_1: " & "No Selection made") ;Pfad an Label übergeben
; message no selection made
Else
GUICtrlSetState($Btn_Dir1, $GUI_DISABLE) ;Button Aktivieren
GUICtrlSetState($Btn_Dir2, $GUI_ENABLE) ;Button Aktivieren
GUICtrlSetData($Labpfad_1, "Ordner_1: " & $Pfad_1) ;Pfad an Label übergeben
GUICtrlSetTip($Labpfad_1, GUICtrlRead($Labpfad_1, 1))
EndIf
EndFunc
Func Dir2BtnClick()
_GUICtrlListView_DeleteAllItems($idListview2) ;Alle einträge in ListView Löschen
$dir = FileSelectFolder("Ordner auswählen","") ;Ordner auswahl starten
$Pfad_2 = $dir & "\" ; Ausgewählten Pfad in eine Variable speichern
If $dir = "" Then
GUICtrlSetData($Labpfad_2, "Ordner_2: " & "No Selection made") ;Pfad an Label übergeben
Else
GUICtrlSetData($Labpfad_2, "Ordner_2: " & $Pfad_2) ;;Pfad an Label übergeben
GUICtrlSetTip($Labpfad_2, GUICtrlRead($Labpfad_2, 1))
;~ _Ordner1Array() ;In ausgewählten Ordner nach Dateien suchen
EndIf
EndFunc
Func Label1Click()
EndFunc
Func Label2Click()
EndFunc
Func Label3Click()
EndFunc
Func Label4Click()
EndFunc
Func ListView1Click()
;~ GUICtrlSetData($ListView1_0, "Fahrrad")
EndFunc
Func ListView2Click()
;~ GUICtrlSetData($ListView2_0, "Motorrad")
EndFunc