GUI Frage

  • N'abend,
    ich bin grad an meinem neuen Projekt und bekomme es einfach nicht hin, das 1 Gui geschlossen wird und gleichzeitig eine andere öffnet (oder das die 1 GUI zur anderen wird.... (per Checkbox, was ich aber schon umgesetztz habe)
    und wie bekomme ich es hin zb ein Textdokument auszulesen und in ein ListView (Tabelle [die Autoit Tabelle -> ListView]) eingetragen wird
    MFG und DANKE

  • ich bin doch blöd!, löschen/neu machen xD, das is doch kla... xD
    Ja ok danke, ist es auch möglich die Gui in zu verändern, das man das ListView nach unten verschiebt und und oben checkboxen erscheinen, schlecht erklärt.. aber es geht grad nicht besser :)
    PS: das #cs/#ce'te ist das 2. gui

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <GUIListView.au3>
    #include <StaticConstants.au3>
    #include <String.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    ;====================================================================================================================================
    ;=======================================================| Account Manager Design |===================================================
    ;====================================================================================================================================

    [/autoit] [autoit][/autoit] [autoit]

    $Account_Manager = GUICreate("Account Manager", 600, 340, -1, -1)
    GUISetBkColor(0xC0C0C0)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Account_ManagerClose")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "_Account_ManagerMinimize")
    GUISetOnEvent($GUI_EVENT_MAXIMIZE, "_Account_ManagerMaximize")
    GUISetOnEvent($GUI_EVENT_RESTORE, "_Account_ManagerRestore")
    $ID_Input = GUICtrlCreateInput("ID", 8, 8, 160, 21)
    $Passwort_Input = GUICtrlCreateInput("Passwort", 176, 8, 140, 21)
    $AddOptions = GUICtrlCreateCheckbox("", 322, 6, 17, 25)
    GUICtrlSetOnEvent($AddOptions, "_Check_AddOptions")
    $Add_Account = GUICtrlCreatePic(@DesktopDir & "\Account Manager\Add.jpg", 345, 8, 56, 21)
    GUICtrlSetOnEvent($Add_Account, "_Add_Account")
    $Einstellungen = GUICtrlCreatePic(@DesktopDir & "\Account Manager\Einstellungen.jpg", 567, 3, 30, 30)
    GUICtrlSetOnEvent($Einstellungen, "_Einstellungen")
    $AccountList = GUICtrlCreateListView("ID|Passwort|E-Mail|Geheimfrage|Geheimantwort", 0, 35, 600, 280, -1)
    _GUICtrlListView_SetColumnWidth($AccountList, 0, 110)
    _GUICtrlListView_SetColumnWidth($AccountList, 1, 110)
    _GUICtrlListView_SetColumnWidth($AccountList, 2, 125)
    _GUICtrlListView_SetColumnWidth($AccountList, 3, 125)
    _GUICtrlListView_SetColumnWidth($AccountList, 4, 125)
    _GUICtrlListView_RegisterSortCallBack(GUICtrlGetHandle($AccountList))
    ;$Head_Pic = GUICtrlCreatePic(@DesktopDir & "\Grau.jpg", 0, 0, 580, 35, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS)) ;Wenn BK Colour aktiv = unnötig
    GUICtrlCreateCheckbox("Passwörter anzeigen", 480, 317)
    GUICtrlCreateCheckbox("Daten verschlüsseln", 360, 317)
    GUISetState(@SW_SHOW, $Account_Manager)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #cs
    ;====================================================================================================================================
    ;===================================================| Account Manager - 2 Design |===================================================
    ;====================================================================================================================================

    [/autoit] [autoit][/autoit] [autoit]

    $Account_Manager2 = GUICreate("Account Manager", 600, 440, -1, -1)
    GUISetBkColor(0xC0C0C0)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Account_ManagerClose")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "_Account_ManagerMinimize")
    GUISetOnEvent($GUI_EVENT_MAXIMIZE, "_Account_ManagerMaximize")
    GUISetOnEvent($GUI_EVENT_RESTORE, "_Account_ManagerRestore")
    $ID_Input = GUICtrlCreateInput("ID", 8, 8, 160, 21)
    $Passwort_Input = GUICtrlCreateInput("Passwort", 176, 8, 140, 21)
    $AddOptions = GUICtrlCreateCheckbox("", 322, 6, 17, 25)
    GUICtrlSetOnEvent($AddOptions, "_Check_AddOptions")
    $Add_Account = GUICtrlCreatePic(@DesktopDir & "\Account Manager\Add.jpg", 345, 8, 56, 21)
    GUICtrlSetOnEvent($Add_Account, "_Add_Account")
    $Einstellungen = GUICtrlCreatePic(@DesktopDir & "\Account Manager\Einstellungen.jpg", 567, 3, 30, 30)
    GUICtrlSetOnEvent($Einstellungen, "_Einstellungen")
    $AccountList = GUICtrlCreateListView("ID|Passwort|E-Mail|Geheimfrage|Geheimantwort", 0, 135, 600, 280, -1)
    GUICtrlCreateListViewItem("testid|testpasswort|testemail|testgeheimfrage|testgeheimantwort", $AccountList)
    _GUICtrlListView_SetColumnWidth($AccountList, 0, 110)
    _GUICtrlListView_SetColumnWidth($AccountList, 1, 110)
    _GUICtrlListView_SetColumnWidth($AccountList, 2, 125)
    _GUICtrlListView_SetColumnWidth($AccountList, 3, 125)
    _GUICtrlListView_SetColumnWidth($AccountList, 4, 125)
    _GUICtrlListView_RegisterSortCallBack(GUICtrlGetHandle($AccountList))
    ;$Head_Pic = GUICtrlCreatePic(@DesktopDir & "\Grau.jpg", 0, 0, 580, 35, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS)) ;Wenn BK Colour aktiv = unnötig

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateCheckbox("", 16, 53, 17, 17) ;Add E-Mail
    $EMail_Label = GUICtrlCreateLabel("E-Mail Adresse", 40, 55, 78, 17)
    $EMail_Input = GUICtrlCreateInput("", 120, 53, 201, 21)
    GUICtrlCreateCheckbox("", 16, 81, 17, 17) ;Add Geheimfrage
    $Geheimfrage_Label = GUICtrlCreateLabel("Geheimfrage", 40, 83, 64, 17)
    $Geheimfrage_Input = GUICtrlCreateInput("", 120, 80, 201, 21)
    GUICtrlCreateCheckbox("", 16, 109, 17, 17) ;Add Geheimantwort
    $Geheimantwort_Label = GUICtrlCreateLabel("Geheimantwort", 40, 109, 75, 17)
    $Geheimantwort_Input = GUICtrlCreateInput("", 120, 107, 201, 21)
    GUISetState(@SW_HIDE, $Account_Manager2)
    #ce
    While 1
    Sleep(250)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Account_ManagerClose()
    ConsoleWrite("KeyGen Close" & @CRLF)
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Account_ManagerMinimize()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Account_ManagerMaximize()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Account_ManagerRestore()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Add_Account()
    $Datei = FileOpen("3hD29sWpOe9mNd7.kgj", 1)
    $String = GUICtrlRead($ID_Input) & ":" & GUICtrlRead($Passwort_Input) ;& ":" & GUICtrlRead($EMail_Input) & ":" & GUICtrlRead($Geheimfrage_Input) & ":" & GUICtrlRead($Geheimantwort_Input)

    [/autoit] [autoit][/autoit] [autoit]

    $Text = _StringEncrypt(1, $String, "y#h0O", 3)

    [/autoit] [autoit][/autoit] [autoit]

    If $Datei = -1 Then
    MsgBox(0, "Account Manager - Fehler", "Fehler: Account hinzufügung ist fehlgeschlagen")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    FileWrite(@ScriptDir & "\3hD29sWpOe9mNd7.kgj", $Text & @CRLF)
    MsgBox(0, "Account Manager - Erfolgreich", "Erfolgreich: Account wurde erfolgreich hinzugefügt")

    [/autoit] [autoit][/autoit] [autoit]

    FileClose($Datei)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Einstellungen()
    MsgBox(1, "Einstellungen", "Jetzt müssten sich die Einstellungen öffnen...")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Check_AddOptions()
    If GUICtrlRead($AddOptions) = 1 Then
    GUISetState(@SW_HIDE, $Account_Manager)
    GUISetState(@SW_SHOW, $Account_Manager2)
    msgbox(1,"Mit Optionen","anscheinend gings net")
    ElseIf GUICtrlRead($AddOptions) = 4 Then
    GUISetState(@SW_SHOW, $Account_Manager)
    GUISetState(@SW_HIDE, $Account_Manager2)
    msgbox(1,"Ohne Optionen","anscheinend gings net")
    EndIf
    EndFunc

    [/autoit]
  • Schonmal die Suche hier benutzt? Was GUI Schliessen und öffnen angeht hab ich vorige Woche ein beispiel hier gepostet und die Hilfe die du dir in Deutsch auf der Linken Seite runterladen kannst hilft auch gut weiter. ;)

    Aber was du für deine Textdatei brauchst ist:
    _FileReadToArray
    Dann haste ein Array diesen kannste in einer Schleife mit _GUICtrlListView_AddArray dein Listview befüllen.

    Beispeiel dazu und mehr findest du in der Hilfe ;)

    Gruss DevFly

  • Ich empfehle dir alle GUIs am Anfang zu erstellen, und bei Bedarf per GUISetState sichtbar/unsichtbar zu schalten. Das ist wesentlich übersichtlicher und sauberer als Controls zu verschieben oder die GUIs während der Laufzeit zu löschen und neu zu erstellen.

  • Da könntest du auch wieder deine alte ListView löschen und die Checkboxen löschen und einfach eine neue ListView und eine neue Checkbox erstellen.

    Entweder du löscht es oder du nimmst GUISetState(@SW_HIDE) und benutzt bei der nächsten GUI dann GUISetState(@SW_SHOW)

    Naja, gibt bestimmt noch andere Wege, aber ich mache es immer so und hauptsache es funktioniert.

  • DevFly, das löschen/öffnen wollte ich umgehen, wollte entweder ändern oder öffnen/verstecken und zu dem filereadtoarray, schau ich mir gleich ma an, poste dann mein ergebnis :)
    name22, Ja, mach ich auch sonst in scipts, aber wie setz ich das um? so wies bei mir ist, gehts nicht..

  • oben hab ich mein script gepostet, und wies da ist, wie ichs als logisch sehe, gehts nicht, hab einfach hide das, show dies, aber so passiert nichts...

  • Vielt weil sich bei dir die zweite GUI sofort wieder schließt, weil du kein

    [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit][autoit][/autoit][autoit]

    EndSwitch
    WEnd

    [/autoit]

    bei der zweiten GUI verwendet hast? Ansonsten stell mal dein Script rein.

  • Koda kennste oder? Darin deine GUI zusammen puzzeln bis es Final ist und dann das ganze mit funktionen versehen. Koda ist in Scite4AutoIt mit drin kannste in Scite mit ALT+M aufrufen.

    @White er nutzt GuiOnEvent und eine endlos schleife hat er drin.

    Gruss DevFly

  • Ich kenne Koda Form Designer? Was hat das nun damit zu tun?

    Ich baue mir damit immer die Form, etc. und den Rest bearbeite ich ohne Koda Form Designer.

  • Zitat

    @White er nutzt GuiOnEvent und eine endlos schleife hat er drin.


    Abgesehen davon, sind 2 Endlosschlieifen ohne ExitLoop nacheinander angeordnet bei einem linearen Programmverlauf absolut hirnrissig.
    Das sag ich jetzt bestimmt zum 20ten Mal...

  • @White das mit Koda war für Zatto bestimmt.

    Und der Fehler den er gemacht hat wenn er eine GUI öffnen und wieder schliessen will sollte es auch eine zweite GUI geben in sein beispiel gibt es nur eine aktive GUI.

    Gruss DevFly

  • Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $gui1 = GUICreate("GUI-1", 259, 46)
    $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)

    [/autoit] [autoit][/autoit] [autoit]

    $gui2 = GUICreate("GUI-2", 259, 46)
    $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)

    [/autoit] [autoit][/autoit] [autoit]

    $gui3 = GUICreate("GUI-3", 259, 46)
    $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)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $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
    WEnd

    [/autoit]
    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    $gui1 = GUICreate("GUI-1", 259, 46)
    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)

    [/autoit] [autoit][/autoit] [autoit]

    $gui2 = GUICreate("GUI-2", 259, 46)
    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)

    [/autoit] [autoit][/autoit] [autoit]

    $gui3 = GUICreate("GUI-3", 259, 46)
    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)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _show1()
    GUISetState(@SW_HIDE, $gui2)
    GUISetState(@SW_HIDE, $gui3)
    GUISetState(@SW_SHOW, $gui1)
    EndFunc ;==>_show1

    [/autoit] [autoit][/autoit] [autoit]

    Func _show2()
    GUISetState(@SW_HIDE, $gui1)
    GUISetState(@SW_HIDE, $gui3)
    GUISetState(@SW_SHOW, $gui2)
    EndFunc ;==>_show2

    [/autoit] [autoit][/autoit] [autoit]

    Func _show3()
    GUISetState(@SW_HIDE, $gui1)
    GUISetState(@SW_HIDE, $gui2)
    GUISetState(@SW_SHOW, $gui3)
    EndFunc ;==>_show3

    [/autoit] [autoit][/autoit] [autoit]

    Func _exit()
    Exit
    EndFunc ;==>_exit

    [/autoit]
  • Ja, habe extra mit #cs/#ce gekennzeichnet was die 2. gui ist,
    Koda kenne ich, damit ist auch das Script gesigned
    das mit den 2 endlosschleifen, kansnte mir sagen wo das ist? verstehs net so ganz

    danke soweit für die vielen antworten

  • Ja, das ist per Button, da ist ja kein IF drinne, ich hab das was er in der Button-Funktion hat, in einer Checkbox Funktion
    BUTTON

    Spoiler anzeigen
    [autoit]

    Func _show1() GUISetState(@SW_HIDE, $gui2) GUISetState(@SW_HIDE, $gui3) GUISetState(@SW_SHOW, $gui1) EndFunc ;==>_show1

    [/autoit]


    CHECKBOX

    Spoiler anzeigen
    [autoit]

    Func _Check_AddOptions()
    If GUICtrlRead($AddOptions) = 1 Then
    GUISetState(@SW_HIDE, $Account_Manager)
    GUISetState(@SW_SHOW, $Account_Manager2)
    msgbox(1,"Mit Optionen","anscheinend gings net")
    ElseIf GUICtrlRead($AddOptions) = 4 Then
    GUISetState(@SW_SHOW, $Account_Manager)
    GUISetState(@SW_HIDE, $Account_Manager2)
    msgbox(1,"Ohne Optionen","anscheinend gings net")
    EndIf
    EndFunc

    [/autoit]

    Das Versteh ich ja nicht...
    MFG

  • Probier mal den Code :)

    [autoit]

    Func _Check_AddOptions()
    If GUICtrlRead($AddOptions) = 4 Then
    GUISetState(@SW_HIDE, $Account_Manager)
    GUISetState(@SW_SHOW, $Account_Manager2)
    msgbox(1,"Mit Optionen","anscheinend gings net")
    ElseIf GUICtrlRead($AddOptions) = 1 Then
    GUISetState(@SW_SHOW, $Account_Manager)
    GUISetState(@SW_HIDE, $Account_Manager2)
    msgbox(1,"Ohne Optionen","anscheinend gings net")
    EndIf
    EndFunc

    [/autoit]
  • ok, so gehts DANKE :D
    jetzt ist noch das mit dem verschlüsseln, in eine Datei schreiben, auslesen und in ein ListView schreiben + auslesen und in ein ListView schreiben beim start,
    gibt es beim Umsetzen noch andere/bessere möglichkeiten als _FileReadToArray