GUI je nach Fortschritt ändern

  • Hallo zusammen,

    wie der Titel schon sagt bin ich grad etwas planlos :)

    Was ich machen möchte ist eine GUI die beim Ausführen geöffnet wird, auf dieser sind z. B. 5 Objekte diese sollen nach und nach eingeblendet werden.

    Hier mal ein Beispiel:

    Programm durchläuft seinen Code dann bei bestimmter abgeschlossener Aktion wird 1 Element (z. B. Text) eingeblendet bzw. man könnte es auch als kleines Fenster in der GUI machen wo er einfach alle arbeitsschritte der Programms auflistet.

    Hoffe ich habe mich einigermaßen deutlich ausgedrückt und mir kann einer helfen.

    Grüße
    pitware2005

  • Da kannst du doch eine EditBox nehmen und die dann vorzu füllen? Das Einblenden in bestimmter Reihenfolge lässt sich entweder über GUICtrlSetState($hControl, $GUI_SHOW) erreichen oder du erstellst es einfach erst an der bestimmten Stelle ;)

    Bild1: Ich beim debuggen

  • Hi,

    Ich habe mir vor kurzem erst ein Start-Fenster gebaut.
    Denke das geht in deine Richung. Vllt hilft dir das ja.

    Hier ein Beispiel:

    [autoit]


    #include <GuiListView.au3>
    #include <WindowsConstants.au3>

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

    $StartUp = GUICreate("My StartUp", 200, 250, Default, Default, BitOR($WS_CAPTION, $WS_EX_TOPMOST))
    GUICtrlCreateLabel("Text", 5, 35, 190, 15)
    $StartUp_info = GUICtrlCreateListView("", 5, 50, 190, 190, $LVS_LIST)
    GUISetState()
    GUICtrlCreateListViewItem("... lade Parameter", $StartUp_info)
    ; xy-Script-Schritte
    Sleep(1000)
    GUICtrlCreateListViewItem("... lade lokale Einstellungen", $StartUp_info)
    ; xy-Script-Schritte
    Sleep(1000)
    GUICtrlCreateListViewItem("... lade XY", $StartUp_info)
    ; xy-Script-Schritte
    Sleep(3000)
    GUICtrlCreateListViewItem("... lade GUI", $StartUp_info)
    ; xy-Script-Schritte
    Sleep(5000)

    [/autoit]


    LG

  • Hallo Inferior,

    danke für Deinen Tipp das ist was ich gesucht habe. Aber mir fehlen da noch 2 Kleinigkeiten.

    • Kann man das Feld wo er das reinschreibt auch so einstellen das er falls es mehr Schritte sind wie das Fenster Höhe hat dieses mit einem Scrollbalken versehen wird und nicht der Text rechts in eine 2. Spalte geschrieben wird?
    • Wie baue ich da am besten einen Fortschrittsbalken ein der immer wenn er einen Punkt abgearbeitet hat ein Stück weiter geht?


    Hoffe ihr könnt mir diese 2 Fragen auch noch so schnell und gut beantworten.

    Hier ist mal mein Code den ich daraus gebastelt hab, der sehr einfach gehalten ist da ich es nur für einen einfachen Zweck brauche:

    Spoiler anzeigen
    [autoit]


    #include <GuiListView.au3>
    #include <WindowsConstants.au3>

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

    ; Programmpfade:
    Dim $Programm1 = "C:\test\Programm1"
    Dim $Programm2 = "C:\test\Programm2"

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

    ; Dateien
    Global $Data = 0
    Global $AnzahlDerDateien = 3

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

    Dim $Datei1= "C:\test\test.exe"
    Dim $Datei2= "C:\test\test2.exe"
    Dim $Datei3= "C:\test\test3.exe"

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

    $StartUp = GUICreate("My StartUp", 400, 250, Default, Default, BitOR($WS_CAPTION, $WS_EX_TOPMOST))
    ;GUICtrlCreateLabel("", 5, 35, 390, 15)
    $hProgress = GUICtrlCreateProgress(5, 25, 390, 20)
    $StartUp_info = GUICtrlCreateListView("", 5, 50, 390, 190, $LVS_LIST)
    GUISetState()

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

    ; Programm 1
    GUICtrlCreateListViewItem("Überprüfe ob Programm 1 installiert ist ...", $StartUp_info)
    If FileExists($AdobeCS3) Then
    GUICtrlCreateListViewItem("Programm 1 gefunden", $StartUp_info)
    Sleep(1000)
    FileCopy($Datei1, $Programm1)
    GUICtrlCreateListViewItem("Datei 1 wird installiert ...", $StartUp_info)
    Sleep(1000)
    FileCopy($Datei2, $Programm1)
    GUICtrlCreateListViewItem("Datei 2 wird installiert ...", $StartUp_info)
    Sleep(1000)
    FileCopy($Datei3, $Programm1)
    GUICtrlCreateListViewItem("Datei 3 wird installiert ...", $StartUp_info)
    Sleep(1000)
    Else
    GUICtrlCreateListViewItem("Programm 1 ist nicht installiert, überspringe diesen Schritt ...", $StartUp_info)
    Sleep(1000)
    EndIf

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

    ; Programm 2
    GUICtrlCreateListViewItem("Überprüfe ob Programm 2 installiert ist ...", $StartUp_info)
    If FileExists($AdobeCS3) Then
    GUICtrlCreateListViewItem("Programm 2 gefunden", $StartUp_info)
    Sleep(1000)
    FileCopy($Datei1, $Programm2)
    GUICtrlCreateListViewItem("Datei 1 wird installiert ...", $StartUp_info)
    Sleep(1000)
    FileCopy($Datei2, $Programm2)
    GUICtrlCreateListViewItem("Datei 2 wird installiert ...", $StartUp_info)
    Sleep(1000)
    FileCopy($Datei3, $Programm2)
    GUICtrlCreateListViewItem("Datei 3 wird installiert ...", $StartUp_info)
    Sleep(1000)
    Else
    GUICtrlCreateListViewItem("Programm 2 ist nicht installiert, überspringe diesen Schritt ...", $StartUp_info)
    Sleep(1000)
    EndIf

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

    ; Abschluss
    GUICtrlCreateListViewItem("Installation abgeschlossen ...", $StartUp_info)
    Sleep(5000)

    [/autoit]

    Das hier wäre ja dann der eigentliche Code für die Progressbar aber leider bekomme ich den da nicht eingebaut.
    [spoiler]

    [autoit]


    For $i = 1 To $AnzahlDerDateien
    $Data += 100 / $AnzahlDerDateien
    Sleep(1000) ;Simuliert das Updaten
    GUICtrlSetData($hProgress, $Data)
    Next

    [/autoit]

    Einmal editiert, zuletzt von pitware2005 (18. April 2013 um 19:38)

  • für den Fortschrittsbalekn brauchst du

    [autoit]

    GUICtrlCreateProgress ; Zum erstellen
    GUICtrlSetData ; zum Setzen der Prozentanzeige

    [/autoit]

    Edit : Code für 1.

    Spoiler anzeigen
    [autoit]

    #include <GuiListView.au3>
    #include <WindowsConstants.au3>

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

    $StartUp = GUICreate("My StartUp", 200, 250, Default, Default, BitOR($WS_CAPTION, $WS_EX_TOPMOST))
    GUICtrlCreateLabel("Text", 5, 35, 190, 15)
    $StartUp_info = GUICtrlCreateListView("irgendwas", 5, 50, 190, 190, BitOR($LVS_SHOWSELALWAYS, $LVS_SINGLESEL,$LVS_REPORT,$LVS_NOCOLUMNHEADER))
    GUICtrlSendMsg($StartUp_info, 0x101E, 0, 185)
    GUISetState()
    GUICtrlCreateListViewItem("... lade Parameter", $StartUp_info)
    ; xy-Script-Schritte
    Sleep(1000)
    GUICtrlCreateListViewItem("... lade lokale Einstellungen", $StartUp_info)
    ; xy-Script-Schritte
    Sleep(1000)
    GUICtrlCreateListViewItem("... lade XY", $StartUp_info)
    ; xy-Script-Schritte
    Sleep(3000)
    GUICtrlCreateListViewItem("... lade GUI", $StartUp_info)
    ; xy-Script-Schritte
    Sleep(5000)

    [/autoit]

    4 Mal editiert, zuletzt von Alcros (18. April 2013 um 21:25)

  • Hallo Alcros,

    danke für Deine Antwort. Punkt 1 ist damit fast vom Tisch. Er sollte natürlich das ganze auch noch mit scrollen also nicht oben stehen bleiben.
    Punkt 2 ist nach wie vor offen. Mit den 2 Begriffen fange ich leider nichts an da ich mich mit Progressbars noch nicht angefreundet hab, sorry.