Brauche gleich dreifache Hilfe

  • Guten morgen zusammen,

    heute brauche ich gleich 3 mal Hilfe zu verschiedenen Sachen. Ich stelle erst den lauffähigen Code rein und erklähre dann nach für nach die drei Probleme bei denen ich eure Hilfe benötige.
    update.txt hänge ich an. Diese muss in den Nebenordner data oder ich schreibts fix um im Code ;)

    Spoiler anzeigen

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=data\Backround\bbo.ico
    #AutoIt3Wrapper_outfile=Resourcen Rechner.exe
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Res_Description=Copyright bey Ghostleader & Team Almanach
    #AutoIt3Wrapper_Res_Fileversion=1.1.0.0
    #AutoIt3Wrapper_Res_LegalCopyright=Ghostleader and Team Almanach
    #AutoIt3Wrapper_Res_Language=1031
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

    #region Includes
    #include <GUIConstantsEx.au3>
    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <ListviewConstants.au3>
    #include <EditConstants.au3>
    #include <GuiListView.au3>
    #include <StaticConstants.au3>
    #include <ButtonConstants.au3>
    #include <INet.au3>
    #endregion Includes

    #region Version, GUI, Grund Label´s und Menu

    Global $ver = "1.1.0"

    $Form1 = GUICreate("Resourcen Rechner", 650, 450, 193, 125)
    GUICtrlCreatePic("data\Backround\Backround.jpg", 0, 0, 650, 450)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlCreateLabel("© By The Scripter", 425, 408, 350, 15)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $ResMenu = GUICtrlCreateMenu("Resourcen Rechner")
    $Resourcen_Rechner = GUICtrlCreateMenuItem("Herstellungs_Rechner", $ResMenu)
    $JobMenu = GUICtrlCreateMenu("Job XP Rechner")
    $Job_XP_Rechner = GUICtrlCreateMenuItem("Job_Rechner", $JobMenu)
    $PetMenu = GUICtrlCreateMenu("Pet Stufen Rechner")
    $Pet_Stufen_Rechner = GUICtrlCreateMenuItem("Job_Rechner", $PetMenu)
    $Sonstiges = GUICtrlCreateMenu("Sonstiges")
    $Release_Notes = GUICtrlCreateMenuItem("Realease_Notes", $Sonstiges)
    $EndMenu = GUICtrlCreateMenu("Programm Beenden")
    $Ende = GUICtrlCreateMenuItem("Verlassen", $EndMenu)
    #endregion Version, GUI, Grund Label´s und Menu

    #region GUI und ListView
    $LabelUpdater = GUICtrlCreateLabel("Es wird nun auf neueste Updates geprüft!", 150, 170, 400, 50)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $ButtonJA = GUICtrlCreateButton("JA", 230, 220, 70, 20, $WS_GROUP)
    $ButtonNEIN = GUICtrlCreateButton("NEIN", 340, 220, 70, 20, $WS_GROUP)
    $ButtonOK = GUICtrlCreateButton("OK", 265, 220, 70, 20, $WS_GROUP)
    GUICtrlSetState($ButtonNEIN, $GUI_HIDE)
    GUICtrlSetState($ButtonOK, $GUI_HIDE)
    GUICtrlSetState($ButtonJA, $GUI_HIDE)
    GUICtrlSetState($LabelUpdater, $GUI_HIDE)
    Global $listview = GUICtrlCreateListView("Resourcen Rechner!", 20, 20, 180, 360, $LVS_SINGLESEL, $LVS_EX_FULLROWSELECT)
    GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
    GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
    _GUICtrlListView_SetColumnWidth($listview, 0, 200)
    GUICtrlSetState($listview, $GUI_HIDE)
    GUISetState(@SW_SHOW)
    #endregion GUI und ListView

    #region Label´s + Button´s Start
    $h_l1 = GUICtrlCreateLabel("", 313, 300, 230, 20)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $h_l2 = GUICtrlCreateLabel("", 313, 325, 230, 20)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $h_l3 = GUICtrlCreateLabel("", 313, 350, 230, 20)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $GrundLabel = GUICtrlCreateLabel("", 243, 40, 360, 50)
    GUICtrlSetFont(-1, 11, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Rohstoff1 = GUICtrlCreateLabel("", 313, 82, 290, 30)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Rohstoff2 = GUICtrlCreateLabel("", 313, 107, 290, 30)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Rohstoff3 = GUICtrlCreateLabel("", 313, 132, 290, 30)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $FrageLabel = GUICtrlCreateLabel("", 243, 160, 360, 50)
    GUICtrlSetFont(-1, 11, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $FrageInput = GUICtrlCreateInput("", 300, 215, 210, 20, $ES_NUMBER)
    $FrageButton = GUICtrlCreateButton("Berechnung Starten", 320, 245, 170, 20, $BS_DEFPUSHBUTTON)
    $Minus = GUICtrlCreateButton("Minus", 243, 216, 53, 18)
    $Plus = GUICtrlCreateButton("Plus", 516, 216, 53, 18)
    GUICtrlSetState($h_l1, $GUI_HIDE)
    GUICtrlSetState($h_l2, $GUI_HIDE)
    GUICtrlSetState($h_l3, $GUI_HIDE)
    GUICtrlSetState($FrageInput, $GUI_HIDE)
    GUICtrlSetState($FrageButton, $GUI_HIDE)
    GUICtrlSetState($Minus, $GUI_HIDE)
    GUICtrlSetState($Plus, $GUI_HIDE)
    #endregion Label´s + Button´s Start

    #region ListViewItems start
    Local $iCurNum = ''
    Local $aDaten[2][7] = [["Salat", "Zwiebeln: ", 5, "Makaroni Pakete: ", 2, "Tuben Mayonaise: ", 2], _
    ["Test (level 5)", "Test: ", 3, "Steine: ", 40000000]]
    Local $aLV[UBound($aDaten)]
    For $i = 0 To UBound($aLV) - 1
    $aLV[$i] = GUICtrlCreateListViewItem($aDaten[$i][0], $listview)
    Next


    _GUICtrlListView_RegisterSortCallBack($listview)
    _GUICtrlListView_UnRegisterSortCallBack($listview)

    #endregion ListViewItems start

    #region While Schleifen
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $Ende
    Exit
    Case $FrageButton
    GUICtrlSetData($h_l1, $aDaten[$iCurNum][1] & $aDaten[$iCurNum][2] * GUICtrlRead($FrageInput))
    GUICtrlSetData($h_l2, $aDaten[$iCurNum][3] & $aDaten[$iCurNum][4] * GUICtrlRead($FrageInput))
    GUICtrlSetData($h_l3, $aDaten[$iCurNum][5] & $aDaten[$iCurNum][6] * GUICtrlRead($FrageInput))
    Case $ButtonJA
    GUICtrlSetData($LabelUpdater, "Update wird jetzt heruntergeladen...")
    GUICtrlSetState($ButtonJA, $GUI_HIDE)
    GUICtrlSetState($ButtonNEIN, $GUI_HIDE)
    installupdate()
    Case $ButtonNEIN, $ButtonOK
    GUICtrlSetState($ButtonOK, $GUI_HIDE)
    GUICtrlSetState($ButtonJA, $GUI_HIDE)
    GUICtrlSetState($ButtonNEIN, $GUI_HIDE)
    GUICtrlSetState($LabelUpdater, $GUI_HIDE)
    GUICtrlSetState($listview, $GUI_SHOW)
    Case $listview
    _GUICtrlListView_SortItems($listview, GUICtrlGetState($listview))
    Case $Resourcen_Rechner
    GUICtrlSetState($listview, $GUI_HIDE)
    GUICtrlSetState($LabelUpdater, $GUI_SHOW)
    If updatecheck() = -1 Then
    GUICtrlSetData($LabelUpdater, "Du benutzt bereits die aktuellste Version!")
    GUICtrlSetState($ButtonOK, $GUI_SHOW)
    Else
    GUICtrlSetData($LabelUpdater, "Neue Version Vorhanden! Soll diese installiert werden?")
    GUICtrlSetState($ButtonJA, $GUI_SHOW)
    GUICtrlSetState($ButtonNEIN, $GUI_SHOW)
    EndIf
    Case $Job_XP_Rechner
    GUICtrlSetState($listview, $GUI_HIDE)
    GUICtrlSetState($LabelUpdater, $GUI_SHOW)
    If updatecheck() = -1 Then
    GUICtrlSetData($LabelUpdater, "Du benutzt bereits die aktuellste Version!")
    GUICtrlSetState($ButtonOK, $GUI_SHOW)
    Else
    GUICtrlSetData($LabelUpdater, "Neue Version Vorhanden! Soll diese installiert werden?")
    GUICtrlSetState($ButtonJA, $GUI_SHOW)
    GUICtrlSetState($ButtonNEIN, $GUI_SHOW)
    EndIf
    EndSwitch
    For $i = 0 To UBound($aLV) - 1
    If $nMsg = $aLV[$i] Then $iCurNum = _Anzeige($aDaten[$i][0], $i)
    Next
    WEnd
    Exit
    #endregion While Schleifen

    #region Function _Anzeige
    Func _Anzeige($sName, $iNum)
    GUICtrlSetState($h_l1, $GUI_SHOW)
    GUICtrlSetState($h_l2, $GUI_SHOW)
    GUICtrlSetState($h_l3, $GUI_SHOW)
    GUICtrlSetState($FrageInput, $GUI_SHOW)
    GUICtrlSetData($FrageInput, "")
    GUICtrlSetState($FrageButton, $GUI_SHOW)
    GUICtrlSetState($Minus, $GUI_SHOW)
    GUICtrlSetState($Plus, $GUI_SHOW)
    GUICtrlSetData($GrundLabel, StringReplace("Für ein %sName% wird folgendes benötigt:", "%sName%", $sName))
    GUICtrlSetData($FrageLabel, StringReplace("Wieviel %sName% möchtest du herstellen?", "%sName%", $sName))
    GUICtrlSetData($Rohstoff1, $aDaten[$iNum][1] & $aDaten[$iNum][2])
    GUICtrlSetData($Rohstoff2, $aDaten[$iNum][3] & $aDaten[$iNum][4])
    GUICtrlSetData($Rohstoff3, $aDaten[$iNum][5] & $aDaten[$iNum][6])
    GUICtrlSetData($h_l1, "")
    GUICtrlSetData($h_l2, "")
    GUICtrlSetData($h_l3, "")
    Return $iNum
    EndFunc
    #endregion Function Anzeige

    #region Function Updatecheck
    Func updatecheck()
    InetGet("http://test.de/test/update.txt", @Scriptdir & "\data\update.txt", 1, 0)
    $file = FileOpen(@Scriptdir & "\data\update.txt", 0)
    $line = FileReadLine($file, 1)
    If $line = $ver Then
    Return -1
    Else
    Return 1
    EndIf
    EndFunc
    #endregion Function Updatecheck

    #region Function Installupdate
    Func installupdate()
    InetGet("http://test.de/test/test.sfx.exe", @ScriptDir & "\test.sfx.exe", 1, 0)
    Run(@ScriptDir & "\test.sfx.exe")
    Sleep(2000)
    Exit
    EndFunc
    #endregion Function Installupdate

    Problem1.
    Plus/Minus Button´s zur richtigen Funktion bewegen.

    Wie ihr ja im Script sehen könnt, habe ich zwei Buttons Plus und Minus eingebaut.
    Diese sollen je nach Button beim klick das Inputfeld auslesen, es je nach Button mit 1 addieren / subtrahieren, die Zahl dann wieder in das Inputfeld schreiben und zu Guterletzt den Befehl des Buttons Berechnung Starten ausführen, sodas das neue Ergebnis gleich berechnet wird.

    Problem 2.
    Bei Programm wechsel oder klick auf gleiches Programm in der Menu Leiste alle Button, Label und Input verschwinden.

    Hier ist das Problem, das wenn ich ein Programm aufrufe hier gleich das erste (Resourcen Rechner) die update Kontrolle durch habe, die Listview erscheint, ich irgendein ListViewItem anklicke und dann das Programm in der Menu Leiste wechsle (oder das gleiche anklicke), bleiben alle Label´s, Button´s und Input´s da. Lediglich die ListView verschwindet!
    Zu demo Zwecken habe ich das selbe Programm nochmal auf Job_XP_Rechner (das zweite) gelegt.

    Problem 3.
    Ok und Berechnung Starten Button auch mit Enter Taste ausführen.

    Hier möchte ich gerne das man den Ok und Berechnung Starten Button auch mit der Enter Taste bestätigen kann.
    Ich habe es nun soweit das ich den Button Berechnung Starten mit Hilfe von $BS_DEFPUSHBUTTON als Style mit Enter starten kann.
    Wenn ich nun das $BS_DEFPUSHBUTTON ebenfalls als Style bei dem Ok Button hinzufüge passiert rein garnichts wenn ich Enter drücke.

    Ich hoffe ihr könnt mir bei diesen Problem helfen.
    Bitte gebt Hilfestellungen und/oder Beispiele, jedoch schreibt es mir bitte nicht in den Code, sodas es fertig ist denn ich möchte dies gerne selber tun da ich denke das man es so besser lernt und festigen kann!
    Falls ich es nicht schaffen sollte so kann man ja immernoch darüber nachdenken.

    Vielen Dank schonmal im Voraus.

    Mfg Ghostleader

  • Zu 1.
    Wo genau liegt da das Problem?
    Guictrlread()
    ; rechnen
    Guictrlsetdata()

    Zu 2.
    Ich würde statt den Menüpunkten lieber Tabs verwenden, dann haste die ganze aus-/einblenderei nicht.
    Ansonsten musste halt für jedes Element das aus-/einblenden scripten

    Zu 3.
    Funktioniert doch.
    Wenn kein anderer Button den Focus hat und du Enter drückst wird das Event ausgeführt


    PS: Für Autoit Quellcode bitte immer verwenden

  • Hallo Shnitzel,

    danke erstmal für deine Antworten.

    Zu 1.
    An was genau sende ich den Guictrlsetdata() wenn es im Input wiedergegeben und gleichzeitig über den Berechnung Starten Button ausgeführt werden soll. Wie ungefähr muss denn hier der weg für ; rechnen aussehen?
    Muss ich das in einer Func, in der While oder einfach irgendow schreiben?

    Zu 2.
    Ich würde statt den Menüpunkten lieber Tabs verwenden
    Hast du dafür vielleicht irgendwo ein beispiel parrat, sodas ich mir das mal ansehen könnte? Habe damit noch nix gemacht.

    Ansonsten musste halt für jedes Element das aus-/einblenden scripten
    Meinst du damit immer wieder alles auf GUI_HIDE und GUI_SHOW setzen wo es gerade sein muss?

    Zu 3.
    Hast du es in meinem Script probiert und auch bei dem Ok Button --> $BS_DEFPUSHBUTTON gesetzt und es geht? Denn bei mir geht es eben nicht. Hast du bei dem Ok Button da das WS_GROUP weggemacht?

    Mfg Ghostleader

    Einmal editiert, zuletzt von Ghostleader (12. Juli 2011 um 11:42)

  • Zu 1:

    Spoiler anzeigen
    [autoit]


    ; ...auszug while schleife...
    Case $FrageButton
    rechnen() ; gesamt ergebnis
    Case $Plus
    rechnen(2) ; plus 1
    rechnen() ; gesamt ergebnis
    Case $Minus
    rechnen(3) ; minus 1
    rechnen() ; gesamt ergbnis
    ; ...auszug while schleife...

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

    Func rechnen($aufgabe=1) ; 1=gesamt ergebnis berechnen , 2=addition+1 ; 3=subtraktion-1
    if $aufgabe=1 Then
    GUICtrlSetData($h_l1, $aDaten[$iCurNum][1] & $aDaten[$iCurNum][2] * GUICtrlRead($FrageInput))
    GUICtrlSetData($h_l2, $aDaten[$iCurNum][3] & $aDaten[$iCurNum][4] * GUICtrlRead($FrageInput))
    GUICtrlSetData($h_l3, $aDaten[$iCurNum][5] & $aDaten[$iCurNum][6] * GUICtrlRead($FrageInput))
    EndIf
    if $aufgabe = 2 Then GUICtrlSetData($FrageInput,GUICtrlRead($FrageInput)+1)
    if $aufgabe = 3 Then GUICtrlSetData($FrageInput,GUICtrlRead($FrageInput)-1)
    EndFunc

    [/autoit]

    Zu 2:

    Beispiel für Tabs ist in der Hilfe zufinden

    Zu 3:

    Enter im Inputfeld funktioniert ohne Änderungen an deinem Script, funktioniert nur nicht wenn einer der Butons plus/minus gedrückt wird, da eben der Focus dann auf diesem Button und nicht mehr auf dem Berechnen Button ist. Durch meine Einbindung des Plus und Minus Buttons hat sich das aber wohl nun auch erledigt.

  • Hallo misterspeed,

    danke für deine wiedermal sehr hilfreichen Antworten.

    Zu 1.

    Danke für das super Beispiel.

    Zu.2

    Ich gehe davon aus das ihr GUICtrlCreateTabItem und GUICtrlCreateTabItem meint.
    Leider komme ich auf das Beispiel aus der online Hilfe net so ganz klar. Ich weiss net genau wie ich das nun in meinem Script umsetzen bzw. das vorhandene dadurch ersetzen soll!
    Hierzu währe ein Bsp. aus meinem Script sehr hilfreich!

    Zu 3.

    Die enterfunktion hat sich wirklich nun für das berechnen mit + und - erledigt.
    Jedoch ging es mir ja auch om den Ok Button der nicht mit Enter funktioniert auch wenn ich $BS_DEFPUSHBUTTON als style da einsetze!

    Mfg Ghostleader

  • Poste doch mal bitte immer deine Versuche. Sonst weiß man nicht wo dein Problem liegt.

    Du musst einfach nur ein Guictrlcreatetab am Anfang einfügen.
    Und dann immer wenn du eine Neue Seite haben willst ein Guictrlcreatetabitem

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    Global $ver = "1.1.0"
    $Form1 = GUICreate("Resourcen Rechner", 650, 450, 193, 125)GUICtrlCreateTab(5, 5, 640, 440)GUICtrlCreateTabItem("Tab1")GUICtrlCreatePic("data\Backround\Backround.jpg", 0, 0, 650, 450)GUICtrlSetState(-1, $GUI_DISABLE)GUICtrlCreateLabel("© By The Scripter", 425, 408, 350, 15)GUICtrlSetFont(-1, 10, 600)GUICtrlSetColor(-1, 0x000000)GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlCreateTabItem("Tab2")$h_l1 = GUICtrlCreateLabel("Label1", 313, 300, 230, 20)GUICtrlSetFont(-1, 10, 600)GUICtrlSetColor(-1, 0x000000)GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)$h_l2 = GUICtrlCreateLabel("Label2", 313, 325, 230, 20)GUICtrlSetFont(-1, 10, 600)GUICtrlSetColor(-1, 0x000000)GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)$h_l3 = GUICtrlCreateLabel("Label3", 313, 350, 230, 20)GUICtrlSetFont(-1, 10, 600)GUICtrlSetColor(-1, 0x000000)GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)GUISetState()
    While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitchWEnd

    [/autoit]


    Zu 3.
    Es kann nur einen Defaultpushbutton geben, und den hast du ja schon für Berechnung Starten verwendet


    Ich denke aber das du pro Tab einen setzen kannst, das problem sollte also verschwinden wenn du auf Tabs umstellst.

  • Hallo Schnitzel,

    danke für deine Antwort und dein Beispiel.

    Kann es sein das das Script von dir

    [autoit]

    #include <GUIConstantsEx.au3>
    Global $ver = "1.1.0"
    $Form1 = GUICreate("Resourcen Rechner", 650, 450, 193, 125)GUICtrlCreateTab(5, 5, 640, 440)GUICtrlCreateTabItem("Tab1")GUICtrlCreatePic("data\Backround\Backround.jpg", 0, 0, 650, 450)GUICtrlSetState(-1, $GUI_DISABLE)GUICtrlCreateLabel("© By The Scripter", 425, 408, 350, 15)GUICtrlSetFont(-1, 10, 600)GUICtrlSetColor(-1, 0x000000)GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlCreateTabItem("Tab2")$h_l1 = GUICtrlCreateLabel("Label1", 313, 300, 230, 20)GUICtrlSetFont(-1, 10, 600)GUICtrlSetColor(-1, 0x000000)GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)$h_l2 = GUICtrlCreateLabel("Label2", 313, 325, 230, 20)GUICtrlSetFont(-1, 10, 600)GUICtrlSetColor(-1, 0x000000)GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)$h_l3 = GUICtrlCreateLabel("Label3", 313, 350, 230, 20)GUICtrlSetFont(-1, 10, 600)GUICtrlSetColor(-1, 0x000000)GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)GUISetState()
    While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitchWEnd

    [/autoit]


    nicht lauffähig ist, denn es bringt folgenden Fehler

    Spoiler anzeigen

    E:\testen von scripts\zu letzt\tab test.au3(3,60) : ERROR: syntax error
    $Form1 = GUICreate("Resourcen Rechner", 650, 450, 193, 125)GUICtrlCreateTab
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    E:\testen von scripts\zu letzt\tab test.au3(4,29) : ERROR: syntax error
    GUICtrlCreateTabItem("Tab2")$h_l1
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    E:\testen von scripts\zu letzt\tab test.au3 - 2 error(s), 0 warning(s)


    den ich nicht verstehe.

    Mfg Ghostleader

  • Nein so natürlich nicht. Das war wieder mal der Forumsbug im Editor...
    Auf Zeilenumbrüche hättest du aber auch selbst kommen können :P

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    Global $ver = "1.1.0"
    $Form1 = GUICreate("Resourcen Rechner", 650, 450, 193, 125)
    GUICtrlCreateTab(5, 5, 640, 440)
    GUICtrlCreateTabItem("Tab1")
    GUICtrlCreatePic("data\Backround\Backround.jpg", 0, 0, 650, 450)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlCreateLabel("© By The Scripter", 425, 408, 350, 15)
    GUICtrlSetFont(-1, 10, 600) GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlCreateTabItem("Tab2")
    $h_l1 = GUICtrlCreateLabel("Label1", 313, 300, 230, 20)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $h_l2 = GUICtrlCreateLabel("Label2", 313, 325, 230, 20)
    GUICtrlSetFont(-1, 10, 600) GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $h_l3 = GUICtrlCreateLabel("Label3", 313, 350, 230, 20)
    GUICtrlSetFont(-1, 10, 600) GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUISetState()

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

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

    [/autoit]
  • Hallo Schnitzel,

    also das mit den Tabs ist ja scheinbar eine gute Idee.

    Aber es kommt dann scheinbar nicht mit den Style einstellungen der Labels / Buttons (Zbsp. $WS_GROUP) zurecht,
    da es mir dann überall Fehler bringt!

    Ich muss ja aber bestimmte Buttons und Labels Unsichtbar/Sichtbar machen, da diese ja nur sichtbar sein sollen nachdem eine bestimmte Aktion ausgeführt wurde.

    Also entweder ich verstehe das ganze mit den Tabs net richtig und mache etwas falsch oder es geht so net.

    Auch würde ich gerne wissen wie die Tabs immer sichtbar sein können im Hauptmenü, denn so wie du es mir geschickt hast verschwinden diese hinter dem Bild wenn ich eins einfüge und kommen erst bei Mouse over wieder hervor.
    Desweiteren währe es Interessant zu wissen ob man das Backround Bild nicht Global setzen kann, denn es bleibt immer das selbe!

    Hier der Code wie ich es jetzt für den ersten Tab gemacht habe (ich denke mal bestimmt falsch) habt bitte Nachsicht mit nem schwierigem Fall! ?( ;(

    Spoiler anzeigen

    #include <GUIConstantsEx.au3>
    Global $ver = "1.1.0"
    Global $Form1 = GUICreate("Resourcen Rechner", 650, 450, 193, 125)
    GUICtrlCreateTab(0, 0, 650, 450)
    GUICtrlCreateTabItem("Resourcen Rechner")
    GUICtrlCreatePic("data\Backround\Backround.jpg", 0, 0, 650, 450)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlCreateLabel("© By The Scripter", 425, 408, 350, 15)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    #region GUI und ListView
    $LabelUpdater = GUICtrlCreateLabel("Es wird nun auf neueste Updates geprüft!", 150, 170, 400, 50)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $ButtonJA = GUICtrlCreateButton("JA", 230, 220, 70, 20, $WS_GROUP)
    $ButtonNEIN = GUICtrlCreateButton("NEIN", 340, 220, 70, 20, $WS_GROUP)
    $ButtonOK = GUICtrlCreateButton("OK", 265, 220, 70, 20, $WS_GROUP)
    GUICtrlSetState($ButtonNEIN, $GUI_HIDE)
    GUICtrlSetState($ButtonOK, $GUI_HIDE)
    GUICtrlSetState($ButtonJA, $GUI_HIDE)
    GUICtrlSetState($LabelUpdater, $GUI_HIDE)
    Global $listview = GUICtrlCreateListView("Resourcen Rechner!", 20, 20, 180, 360, $LVS_SINGLESEL, $LVS_EX_FULLROWSELECT)
    GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
    GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
    _GUICtrlListView_SetColumnWidth($listview, 0, 200)
    GUICtrlSetState($listview, $GUI_HIDE)
    GUISetState(@SW_SHOW)
    #endregion GUI und ListView

    #region Label´s + Button´s Start
    $h_l1 = GUICtrlCreateLabel("", 313, 300, 230, 20)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $h_l2 = GUICtrlCreateLabel("", 313, 325, 230, 20)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $h_l3 = GUICtrlCreateLabel("", 313, 350, 230, 20)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $GrundLabel = GUICtrlCreateLabel("", 243, 40, 360, 50)
    GUICtrlSetFont(-1, 11, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Rohstoff1 = GUICtrlCreateLabel("", 313, 82, 290, 30)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Rohstoff2 = GUICtrlCreateLabel("", 313, 107, 290, 30)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Rohstoff3 = GUICtrlCreateLabel("", 313, 132, 290, 30)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $FrageLabel = GUICtrlCreateLabel("", 243, 160, 360, 50)
    GUICtrlSetFont(-1, 11, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $FrageInput = GUICtrlCreateInput("", 300, 215, 210, 20, $ES_NUMBER)
    $FrageButton = GUICtrlCreateButton("Berechnung Starten", 320, 245, 170, 20, $BS_DEFPUSHBUTTON)
    $Minus = GUICtrlCreateButton("Minus", 243, 216, 53, 18)
    $Plus = GUICtrlCreateButton("Plus", 516, 216, 53, 18)
    GUICtrlSetState($h_l1, $GUI_HIDE)
    GUICtrlSetState($h_l2, $GUI_HIDE)
    GUICtrlSetState($h_l3, $GUI_HIDE)
    GUICtrlSetState($FrageInput, $GUI_HIDE)
    GUICtrlSetState($FrageButton, $GUI_HIDE)
    GUICtrlSetState($Minus, $GUI_HIDE)
    GUICtrlSetState($Plus, $GUI_HIDE)
    #endregion Label´s + Button´s Start

    #region ListViewItems start
    Local $iCurNum = ''
    Local $aDaten[2][7] = [["Salat", "Zwiebeln: ", 5, "Makaroni Pakete: ", 2, "Tuben Mayonaise: ", 2], _
    ["Test (level 5)", "Test: ", 3, "Steine: ", 40000000]]
    Local $aLV[UBound($aDaten)]
    For $i = 0 To UBound($aLV) - 1
    $aLV[$i] = GUICtrlCreateListViewItem($aDaten[$i][0], $listview)
    Next


    _GUICtrlListView_RegisterSortCallBack($listview)
    _GUICtrlListView_UnRegisterSortCallBack($listview)

    #endregion ListViewItems start

    #region While Schleifen
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $Ende
    Exit
    Case $FrageButton
    GUICtrlSetData($h_l1, $aDaten[$iCurNum][1] & $aDaten[$iCurNum][2] * GUICtrlRead($FrageInput))
    GUICtrlSetData($h_l2, $aDaten[$iCurNum][3] & $aDaten[$iCurNum][4] * GUICtrlRead($FrageInput))
    GUICtrlSetData($h_l3, $aDaten[$iCurNum][5] & $aDaten[$iCurNum][6] * GUICtrlRead($FrageInput))
    Case $ButtonJA
    GUICtrlSetData($LabelUpdater, "Update wird jetzt heruntergeladen...")
    GUICtrlSetState($ButtonJA, $GUI_HIDE)
    GUICtrlSetState($ButtonNEIN, $GUI_HIDE)
    installupdate() ; lädt neue version herunter führt den installer aus und verlässt das programm...
    Case $ButtonNEIN, $ButtonOK ; alle controls der Update Routine unsichtbar machen:
    GUICtrlSetState($ButtonOK, $GUI_HIDE)
    GUICtrlSetState($ButtonJA, $GUI_HIDE)
    GUICtrlSetState($ButtonNEIN, $GUI_HIDE)
    GUICtrlSetState($LabelUpdater, $GUI_HIDE)
    GUICtrlSetState($listview, $GUI_SHOW)
    Case $listview
    _GUICtrlListView_SortItems($listview, GUICtrlGetState($listview))
    Case $Resourcen_Rechner
    GUICtrlSetState($listview, $GUI_HIDE)
    GUICtrlSetState($LabelUpdater, $GUI_SHOW)
    If updatecheck() = -1 Then
    GUICtrlSetData($LabelUpdater, "Du benutzt bereits die aktuellste Version!")
    GUICtrlSetState($ButtonOK, $GUI_SHOW)
    Else
    GUICtrlSetData($LabelUpdater, "Neue Version Vorhanden! Soll diese installiert werden?")
    GUICtrlSetState($ButtonJA, $GUI_SHOW)
    GUICtrlSetState($ButtonNEIN, $GUI_SHOW)
    EndIf
    Case $Job_XP_Rechner
    GUICtrlSetState($listview, $GUI_HIDE)
    GUICtrlSetState($LabelUpdater, $GUI_SHOW)
    If updatecheck() = -1 Then
    GUICtrlSetData($LabelUpdater, "Du benutzt bereits die aktuellste Version!")
    GUICtrlSetState($ButtonOK, $GUI_SHOW)
    Else
    GUICtrlSetData($LabelUpdater, "Neue Version Vorhanden! Soll diese installiert werden?")
    GUICtrlSetState($ButtonJA, $GUI_SHOW)
    GUICtrlSetState($ButtonNEIN, $GUI_SHOW)
    EndIf
    Case $FrageButton
    rechnen() ; gesamt ergebnis
    Case $Plus
    rechnen(2) ; plus 1
    rechnen() ; gesamt ergebnis
    Case $Minus
    rechnen(3) ; minus 1
    rechnen() ; gesamt ergbnis
    EndSwitch
    For $i = 0 To UBound($aLV) - 1
    If $nMsg = $aLV[$i] Then $iCurNum = _Anzeige($aDaten[$i][0], $i)
    Next
    WEnd
    Exit
    #endregion While Schleifen

    #region Function _Anzeige
    Func _Anzeige($sName, $iNum)
    GUICtrlSetState($h_l1, $GUI_SHOW)
    GUICtrlSetState($h_l2, $GUI_SHOW)
    GUICtrlSetState($h_l3, $GUI_SHOW)
    GUICtrlSetState($FrageInput, $GUI_SHOW)
    GUICtrlSetData($FrageInput, "")
    GUICtrlSetState($FrageButton, $GUI_SHOW)
    GUICtrlSetState($Minus, $GUI_SHOW)
    GUICtrlSetState($Plus, $GUI_SHOW)
    GUICtrlSetData($GrundLabel, StringReplace("Für ein %sName% wird folgendes benötigt:", "%sName%", $sName))
    GUICtrlSetData($FrageLabel, StringReplace("Wieviel %sName% möchtest du herstellen?", "%sName%", $sName))
    GUICtrlSetData($Rohstoff1, $aDaten[$iNum][1] & $aDaten[$iNum][2])
    GUICtrlSetData($Rohstoff2, $aDaten[$iNum][3] & $aDaten[$iNum][4])
    GUICtrlSetData($Rohstoff3, $aDaten[$iNum][5] & $aDaten[$iNum][6])
    GUICtrlSetData($h_l1, "")
    GUICtrlSetData($h_l2, "")
    GUICtrlSetData($h_l3, "")
    Return $iNum
    EndFunc ;==>_Anzeige
    #endregion Function Anzeige

    #region Function Updatecheck
    Func updatecheck()
    InetGet("http://test.de/test/update.txt", @Scriptdir & "\data\update.txt", 1, 0)
    $file = FileOpen(@Scriptdir & "\data\update.txt", 0)
    $line = FileReadLine($file, 1)
    If $line = $ver Then
    Return -1 ; keine neue version vorhanden
    Else
    Return 1 ; neue version vorhanden
    EndIf
    EndFunc ;==>updatecheck
    #endregion Function Updatecheck

    #region Function Installupdate
    Func installupdate()
    InetGet("http://test.de/test/test.sfx.exe", @ScriptDir & "\test.sfx.exe", 1, 0)
    Run(@ScriptDir & "\test.sfx.exe")
    Sleep(2000)
    Exit
    EndFunc ;==>installupdate
    #endregion Function Installupdate

    #region Function Rechner + / - Resourcen rechner
    Func rechnen($aufgabe=1) ; 1=gesamt ergebnis berechnen , 2=addition+1 ; 3=subtraktion-1
    if $aufgabe=1 Then
    GUICtrlSetData($h_l1, $aDaten[$iCurNum][1] & $aDaten[$iCurNum][2] * GUICtrlRead($FrageInput))
    GUICtrlSetData($h_l2, $aDaten[$iCurNum][3] & $aDaten[$iCurNum][4] * GUICtrlRead($FrageInput))
    GUICtrlSetData($h_l3, $aDaten[$iCurNum][5] & $aDaten[$iCurNum][6] * GUICtrlRead($FrageInput))
    EndIf
    if $aufgabe = 2 Then GUICtrlSetData($FrageInput,GUICtrlRead($FrageInput)+1)
    if $aufgabe = 3 Then GUICtrlSetData($FrageInput,GUICtrlRead($FrageInput)-1)
    EndFunc
    #endregion Function Rechner + / - Resourcen rechner

    Mfg Ghostleader

    Ps. Kann mir vielleicht vorsichthalber bitte doch noch wer erklähren wie ich das im Falle des normalen Menü´s mache mit den ausblendungen beim Wechsel des rechners oder erneutem draufklicken des selben?
    Siehe Frage 2 Anfangs Thema
    Gibt es noch ne Lösung um 2 Buttons mit enter zu bestätigen? (Mit Focus oder ähnlichem)

  • Zitat

    Aber es kommt dann scheinbar nicht mit den Style einstellungen der Labels / Buttons (Zbsp. $WS_GROUP) zurecht, da es mir dann überall Fehler bringt!

    Natürlich brauchst du auch wieder die gleichen Includes wie zuvor.
    Also für WS_Group z.B. #include <WindowsConstants.au3>

    Zitat

    Ich muss ja aber bestimmte Buttons und
    Labels Unsichtbar/Sichtbar machen, da diese ja nur sichtbar sein sollen nachdem
    eine bestimmte Aktion ausgeführt wurde.

    Zunächst würde ich die GUI mal in einen sauberen/übersichtlichen Zustand bringen. Wo alle Controls eingeblendet sind.
    Dann würde ich anfangen mit den ausblenden der Controls die nicht gebraucht werden.

    Zitat

    Auch würde ich gerne
    wissen wie die Tabs immer sichtbar sein können im Hauptmenü, denn so wie du es
    mir geschickt hast verschwinden diese hinter dem Bild wenn ich eins einfüge und
    kommen erst bei Mouse over wieder hervor.

    Da machste bisschen was falsch
    Zitat aus der Hilfe zu GuictrlcreatePic

    Zitat

    Dies funktioniert aber nicht mit Tab-Controlen, die anders arbeiten. In dem Fall muss man das Bild mit dem Stil $WS_CLIPSIBLINGS erstellen. GuiCtrlSetState(-1,$GUI_ONTOP) ist für die Tab, TreeView oder ListView-Controls notwendig.

    Zitat

    Desweiteren währe es Interessant zu wissen ob man das Backround Bild nicht
    Global setzen kann, denn es bleibt immer das selbe!

    Musste auf jedem Tab erstellen glaub ich, aber das würde ich jetzt nicht als Problem ansehen

    Ps. Kann mir vielleicht vorsichthalber bitte doch noch wer erklähren wie ich das im Falle des normalen Menü´s mache mit den ausblendungen beim Wechsel des rechners oder erneutem draufklicken des selben?
    Siehe Frage 2 Anfangs Thema
    Gibt es noch ne Lösung um 2 Buttons mit enter zu bestätigen? (Mit Focus oder ähnlichem)

    Du hättest natürlich je nachdem welche Buttons eingeblendet werden auch den Default button mit Guictrlsetstate setzen können, aber das wäre genauso umständlich wie das mit dem Ein-/Ausblenden

  • Guten abend zusammen,

    Schnitzel
    Danke erstmal soweit. Ich werde es momentan nicht auf Tab´s umbauen, da ich trotz zahlreicher Versuche momentan nicht weiter komme, dies aber sicherlich noch mache sobald ich mehr zeit habe und mich richtig damit beschäftigen kann. Gegebenfalls werde ich mich dann dazu hier in nem anderem Thema melden.

    @All
    Ein Problem bleibt allerdings noch und zwar das, das die Label´s, Inputs und Buttons verschwinden sollen, sobald ein anderes oder das selbe Menü aufgerufen wird.
    Was verschwindet ist die Listview, das ist aber auch das einzige!


    Auch ein weiteres Problem mit dem Programm hat sich im Zuge des weiterarbeitens ereignet.

    Und zwar ist dies ja ein Eigenständiges Programm, was allerdings durch ein Anderes Programm mit dem Befehl:

    [autoit]

    Func RECHNER_BOX()
    If WinExists("Rechner_Box") <> 1 Then
    Run($SCRIPTPATH & "Tools\Rechner_Box\Rechner_Box.exe")
    Else
    WinActivate("Rechner_Box")
    EndIf
    EndFunc

    [/autoit]

    Das Funktioniert auch ganz super, jedoch wenn ich das Programm über das andere Programm ausführe wird das Hintergrund Bild gefressen und es erscheint keins mehr beim rechner sondern die GUI bleibt ohne Bild.
    Starte ich den rechner Sepperat also nicht über das ander Programm, so ist das Bild da und wird auch eingelesen/angezeigt!

    Hier nochmal der Code zum Rechner damit ihr net soweit hoch müsst!

    Spoiler anzeigen

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=data\Backround\bbo.ico
    #AutoIt3Wrapper_outfile=Resourcen Rechner.exe
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Res_Description=Copyright bey Ghostleader & Team Almanach
    #AutoIt3Wrapper_Res_Fileversion=1.1.0.0
    #AutoIt3Wrapper_Res_LegalCopyright=Ghostleader and Team Almanach
    #AutoIt3Wrapper_Res_Language=1031
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

    #region Includes
    #include <GUIConstantsEx.au3>
    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <ListviewConstants.au3>
    #include <EditConstants.au3>
    #include <GuiListView.au3>
    #include <StaticConstants.au3>
    #include <ButtonConstants.au3>
    #include <INet.au3>
    #endregion Includes

    #region Version, GUI, Grund Label´s und Menu

    Global $ver = "1.1.0"

    $Form1 = GUICreate("Resourcen Rechner", 650, 450, 193, 125)
    GUICtrlCreatePic("data\Backround\Backround.jpg", 0, 0, 650, 450)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlCreateLabel("© By The Scripter", 425, 408, 350, 15)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $ResMenu = GUICtrlCreateMenu("Resourcen Rechner")
    $Resourcen_Rechner = GUICtrlCreateMenuItem("Herstellungs_Rechner", $ResMenu)
    $JobMenu = GUICtrlCreateMenu("Job XP Rechner")
    $Job_XP_Rechner = GUICtrlCreateMenuItem("Job_Rechner", $JobMenu)
    $PetMenu = GUICtrlCreateMenu("Pet Stufen Rechner")
    $Pet_Stufen_Rechner = GUICtrlCreateMenuItem("Job_Rechner", $PetMenu)
    $Sonstiges = GUICtrlCreateMenu("Sonstiges")
    $Release_Notes = GUICtrlCreateMenuItem("Realease_Notes", $Sonstiges)
    $EndMenu = GUICtrlCreateMenu("Programm Beenden")
    $Ende = GUICtrlCreateMenuItem("Verlassen", $EndMenu)
    #endregion Version, GUI, Grund Label´s und Menu

    #region GUI und ListView
    $LabelUpdater = GUICtrlCreateLabel("Es wird nun auf neueste Updates geprüft!", 150, 170, 400, 50)
    GUICtrlSetFont(-1, 12, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $ButtonJA = GUICtrlCreateButton("JA", 230, 220, 70, 20, $WS_GROUP)
    $ButtonNEIN = GUICtrlCreateButton("NEIN", 340, 220, 70, 20, $WS_GROUP)
    $ButtonOK = GUICtrlCreateButton("OK", 265, 220, 70, 20, $WS_GROUP)
    GUICtrlSetState($ButtonNEIN, $GUI_HIDE)
    GUICtrlSetState($ButtonOK, $GUI_HIDE)
    GUICtrlSetState($ButtonJA, $GUI_HIDE)
    GUICtrlSetState($LabelUpdater, $GUI_HIDE)
    Global $listview = GUICtrlCreateListView("Resourcen Rechner!", 20, 20, 180, 360, $LVS_SINGLESEL, $LVS_EX_FULLROWSELECT)
    GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
    GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
    _GUICtrlListView_SetColumnWidth($listview, 0, 200)
    GUICtrlSetState($listview, $GUI_HIDE)
    GUISetState(@SW_SHOW)
    #endregion GUI und ListView

    #region Label´s + Button´s Start
    $h_l1 = GUICtrlCreateLabel("", 313, 300, 230, 20)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $h_l2 = GUICtrlCreateLabel("", 313, 325, 230, 20)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $h_l3 = GUICtrlCreateLabel("", 313, 350, 230, 20)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $GrundLabel = GUICtrlCreateLabel("", 243, 40, 360, 50)
    GUICtrlSetFont(-1, 11, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Rohstoff1 = GUICtrlCreateLabel("", 313, 82, 290, 30)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Rohstoff2 = GUICtrlCreateLabel("", 313, 107, 290, 30)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Rohstoff3 = GUICtrlCreateLabel("", 313, 132, 290, 30)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $FrageLabel = GUICtrlCreateLabel("", 243, 160, 360, 50)
    GUICtrlSetFont(-1, 11, 600)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $FrageInput = GUICtrlCreateInput("", 300, 215, 210, 20, $ES_NUMBER)
    $FrageButton = GUICtrlCreateButton("Berechnung Starten", 320, 245, 170, 20, $BS_DEFPUSHBUTTON)
    $Minus = GUICtrlCreateButton("Minus", 243, 216, 53, 18)
    $Plus = GUICtrlCreateButton("Plus", 516, 216, 53, 18)
    GUICtrlSetState($FrageInput, $GUI_HIDE)
    GUICtrlSetState($FrageButton, $GUI_HIDE)
    GUICtrlSetState($Minus, $GUI_HIDE)
    GUICtrlSetState($Plus, $GUI_HIDE)
    #endregion Label´s + Button´s Start

    #region ListViewItems start
    Local $iCurNum = ''
    Local $aDaten[2][7] = [["Salat", "Zwiebeln: ", 5, "Makaroni Pakete: ", 2, "Tuben Mayonaise: ", 2], _
    ["Test (level 5)", "Test: ", 3, "Steine: ", 40000000]]
    Local $aLV[UBound($aDaten)]
    For $i = 0 To UBound($aLV) - 1
    $aLV[$i] = GUICtrlCreateListViewItem($aDaten[$i][0], $listview)
    Next


    _GUICtrlListView_RegisterSortCallBack($listview)
    _GUICtrlListView_UnRegisterSortCallBack($listview)

    #endregion ListViewItems start

    #region While Schleifen
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $Ende
    Exit
    Case $FrageButton
    GUICtrlSetData($h_l1, $aDaten[$iCurNum][1] & $aDaten[$iCurNum][2] * GUICtrlRead($FrageInput))
    GUICtrlSetData($h_l2, $aDaten[$iCurNum][3] & $aDaten[$iCurNum][4] * GUICtrlRead($FrageInput))
    GUICtrlSetData($h_l3, $aDaten[$iCurNum][5] & $aDaten[$iCurNum][6] * GUICtrlRead($FrageInput))
    Case $ButtonJA
    GUICtrlSetData($LabelUpdater, "Update wird jetzt heruntergeladen...")
    GUICtrlSetState($ButtonJA, $GUI_HIDE)
    GUICtrlSetState($ButtonNEIN, $GUI_HIDE)
    installupdate() ; lädt neue version herunter führt den installer aus und verlässt das programm...
    Case $ButtonNEIN, $ButtonOK ; alle controls der Update Routine unsichtbar machen:
    GUICtrlSetState($ButtonOK, $GUI_HIDE)
    GUICtrlSetState($ButtonJA, $GUI_HIDE)
    GUICtrlSetState($ButtonNEIN, $GUI_HIDE)
    GUICtrlSetState($LabelUpdater, $GUI_HIDE)
    GUICtrlSetState($listview, $GUI_SHOW)
    Case $listview
    _GUICtrlListView_SortItems($listview, GUICtrlGetState($listview))
    Case $Resourcen_Rechner
    GUICtrlSetState($listview, $GUI_HIDE)
    GUICtrlSetState($LabelUpdater, $GUI_SHOW)
    If updatecheck() = -1 Then
    GUICtrlSetData($LabelUpdater, "Du benutzt bereits die aktuellste Version!")
    GUICtrlSetState($ButtonOK, $GUI_SHOW)
    Else
    GUICtrlSetData($LabelUpdater, "Neue Version Vorhanden! Soll diese installiert werden?")
    GUICtrlSetState($ButtonJA, $GUI_SHOW)
    GUICtrlSetState($ButtonNEIN, $GUI_SHOW)
    EndIf
    Case $Job_XP_Rechner
    GUICtrlSetState($listview, $GUI_HIDE)
    GUICtrlSetState($LabelUpdater, $GUI_SHOW)
    If updatecheck() = -1 Then
    GUICtrlSetData($LabelUpdater, "Du benutzt bereits die aktuellste Version!")
    GUICtrlSetState($ButtonOK, $GUI_SHOW)
    Else
    GUICtrlSetData($LabelUpdater, "Neue Version Vorhanden! Soll diese installiert werden?")
    GUICtrlSetState($ButtonJA, $GUI_SHOW)
    GUICtrlSetState($ButtonNEIN, $GUI_SHOW)
    EndIf
    Case $FrageButton
    rechnen()
    Case $Plus
    rechnen(2)
    rechnen()
    Case $Minus
    rechnen(3)
    rechnen()
    EndSwitch
    For $i = 0 To UBound($aLV) - 1
    If $nMsg = $aLV[$i] Then $iCurNum = _Anzeige($aDaten[$i][0], $i)
    Next
    WEnd
    Exit
    #endregion While Schleifen

    #region Function _Anzeige
    Func _Anzeige($sName, $iNum)
    GUICtrlSetState($FrageInput, $GUI_SHOW)
    GUICtrlSetData($FrageInput, "")
    GUICtrlSetState($FrageButton, $GUI_SHOW)
    GUICtrlSetState($Minus, $GUI_SHOW)
    GUICtrlSetState($Plus, $GUI_SHOW)
    GUICtrlSetData($GrundLabel, StringReplace("Für ein %sName% wird folgendes benötigt:", "%sName%", $sName))
    GUICtrlSetData($FrageLabel, StringReplace("Wieviel %sName% möchtest du herstellen?", "%sName%", $sName))
    GUICtrlSetData($Rohstoff1, $aDaten[$iNum][1] & $aDaten[$iNum][2])
    GUICtrlSetData($Rohstoff2, $aDaten[$iNum][3] & $aDaten[$iNum][4])
    GUICtrlSetData($Rohstoff3, $aDaten[$iNum][5] & $aDaten[$iNum][6])
    GUICtrlSetData($h_l1, "")
    GUICtrlSetData($h_l2, "")
    GUICtrlSetData($h_l3, "")
    Return $iNum
    EndFunc ;==>_Anzeige
    #endregion Function Anzeige

    #region Function Updatecheck
    Func updatecheck()
    InetGet("http://test.de/test/update.txt", @Scriptdir & "\data\update.txt", 1, 0)
    $file = FileOpen(@Scriptdir & "\data\update.txt", 0)
    $line = FileReadLine($file, 1)
    If $line = $ver Then
    Return -1 ; keine neue version vorhanden
    Else
    Return 1 ; neue version vorhanden
    EndIf
    EndFunc ;==>updatecheck
    #endregion Function Updatecheck

    #region Function Installupdate
    Func installupdate()
    InetGet("http://test.de/test/test.sfx.exe", @ScriptDir & "\test.sfx.exe", 1, 0)
    Run(@ScriptDir & "\test.sfx.exe")
    Sleep(2000)
    Exit
    EndFunc ;==>installupdate
    #endregion Function Installupdate

    Func rechnen($aufgabe=1)
    if $aufgabe=1 Then
    GUICtrlSetData($h_l1, $aDaten[$iCurNum][1] & $aDaten[$iCurNum][2] * GUICtrlRead($FrageInput))
    GUICtrlSetData($h_l2, $aDaten[$iCurNum][3] & $aDaten[$iCurNum][4] * GUICtrlRead($FrageInput))
    GUICtrlSetData($h_l3, $aDaten[$iCurNum][5] & $aDaten[$iCurNum][6] * GUICtrlRead($FrageInput))
    EndIf
    if $aufgabe = 2 Then GUICtrlSetData($FrageInput,GUICtrlRead($FrageInput)+1)
    if $aufgabe = 3 Then GUICtrlSetData($FrageInput,GUICtrlRead($FrageInput)-1)
    EndFunc

    Ich hoffe ihr könnt mir bei diesen beiden Sachen noch behilflich sein!

    Mfg Ghostleader

  • Hallo wieder,

    Zum Pic Problem:

    Also ich habe nun auch probiert das bild dem anderem Programm anzupassen, was bedeutet das Bild dahin zu tun wo auch das andere Programm seine bilder hat und habe im Rechner Code den Pfad angepasst, jedoch bewirkt das nicht das geringste Bild bleibt weiter weg!
    Eigentlich sollte das doch auch egal sein oder denn der Rechner hat ja nen eigenen Pfad, ist ein eigenständiges Programm und wird ja nur übers Menü des anderen Programms gestartet oder sehe ich da was falsch?

    Auch zu dem Problem der Label löschung bei Programm wechsel habe ich noch keine Lösung.

    Ich hoffe ihr habt noch Ideen für beides!

    Mfg Ghostleader

  • @All
    Ein Problem bleibt allerdings noch und zwar das, das die Label´s, Inputs und Buttons verschwinden sollen, sobald ein anderes oder das selbe Menü aufgerufen wird.
    Was verschwindet ist die Listview, das ist aber auch das einzige!


    Dann musst du halt alle Controls die verschwinden sollen mit Guictrlsetstate auf $GUI_HIDE.
    Wo liegt das Problem?

    Das Problem mit dem Bild liegt vermutlich daran dass sich dein Rechner Programm in nem anderen Ordner befindet als das Hauptprogramm oder?
    D.h. du musst den Pfad anpassen ("data\Backround\Backround.jpg")
    Nimm dazu nen absoluten Pfad und keinen relativen

  • Hallo Schnitzel,
    vielen Dank erstmal wieder für deine Promte Antwort/Hilfe.

    Dann musst du halt alle Controls die verschwinden sollen mit Guictrlsetstate auf $GUI_HIDE.
    Wo liegt das Problem?

    Das Problem ist das ich nicht weiss wann genau ich die Controls wieder auf Hide setzen muss. Ich habe schon sehr viel rum probiert, jedoch verschwinden sie entweder nicht beim wechsel, oder sie verschwinden zum falschem Zeitpunkt!
    Währe schön wenn du mir dies noch zeigen könntest!

    Das Problem mit dem Bild liegt vermutlich daran dass sich dein Rechner Programm in nem anderen Ordner befindet als das Hauptprogramm oder?
    D.h. du musst den Pfad anpassen ("data\Backround\Backround.jpg")
    Nimm dazu nen absoluten Pfad und keinen relativen

    Stimmt, der Rechner liegt in einem anderem Ordner wie das haupt Programm. Habe nun wie von dir empfohlen einen absoluten Pfad genommen und siehe da es geht. Ich wusste net das das so ist da ich davon ausging das es net von Nöten sei, da es ja ein eigenständiges Programm ist, aber wie mann so schön sagt mann lernt nie aus und immer wieder was dazu! ;)

    Eine wietere Frage hätte ich gleich noch.
    Kann mann es irgendwie einstellen, das wenn man den Rechner über das Menu des Hauptprogrammes aufruft, sich das Hauptprogramm minimiert und wenn der Rechner geschlossen wird wieder Maximiert?

    Mfg Ghostleader

  • Beispiel für beide Probleme...

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    GUICreate("", 150, 150)
    $menu1 = GUICtrlCreateMenu("Nr 1")
    $menu2 = GUICtrlCreateMenuItem("Zeigen", $menu1)
    $menu3 = GUICtrlCreateMenu("Nr 2")
    $menu4 = GUICtrlCreateMenuItem("Zeigen", $menu3)
    $menu5 = GUICtrlCreateMenu("Nr 3")
    $menu6 = GUICtrlCreateMenuItem("Zeigen", $menu5)

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

    $1Button = GUICtrlCreateButton("Button Menü 1", 5, 5)
    GUICtrlSetState(-1, $GUI_HIDE)
    $2Button = GUICtrlCreateButton("Button Menü 2", 35, 35)
    GUICtrlSetState(-1, $GUI_HIDE)
    $3Button = GUICtrlCreateButton("Button Menü 3", 65, 65)
    GUICtrlSetState(-1, $GUI_HIDE)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $menu2
    GUICtrlSetState($1Button, $GUI_SHOW)
    GUICtrlSetState($2Button, $GUI_HIDE)
    GUICtrlSetState($3Button, $GUI_HIDE)
    Case $menu4
    GUICtrlSetState($1Button, $GUI_HIDE)
    GUICtrlSetState($2Button, $GUI_SHOW)
    GUICtrlSetState($3Button, $GUI_HIDE)
    Case $menu6
    GUICtrlSetState($1Button, $GUI_HIDE)
    GUICtrlSetState($2Button, $GUI_HIDE)
    GUICtrlSetState($3Button, $GUI_SHOW)
    Case $3Button
    Run("notepad.exe")
    GUISetState(@SW_HIDE)
    Do
    Sleep(100)
    Until Not Winexists("Unbenannt - Editor")
    GUISetState(@SW_SHOW)
    EndSwitch
    WEnd

    [/autoit]
  • Hallo Schnitzel,

    und wieder ein fettes D A N K E an dich.

    Das mit den Buttons funktioniert nun einwandfrei dank deiner Erklährung. Wenn ich mal ehrlich bin haste recht gehabt und ich schäme mich schon ein bisschen das ich diese einfache Weise net richtig umgesetzt habe!

    Zum Programm minimieren / maximieren muss ich sagen das es das Programm zwar minimiert (aber net direkt in die Taskleiste) aber nicht wieder maximiert sobald der Rechner geschlossen wird, sondern das Hauptprogramm (was auch in AutoIt geschrieben ist) unten rechts da wo es hin minimiert wurde weiss net genau wie es heist wo die aktiven sachen wie Firewall und co angezeigt werden und von daher nicht wieder maximiert werden kann, weder von Hand noch durch schliessen des Rechners!

    Mfg Ghostleader

  • Dann denke ich hast du den Fenstertitel falsch angegeben. Vllt arbeitest du besser mit einem Handle oder ähnlichem.
    Ich hab das Fenster nicht einfach nur minimiert sondern ich hab es auf @SW_HIDE gesetzt. Also versteckt.
    Minimieren ginge aber genauso. Sieh dir die Hilfe zu GUISetState an

  • Hallo Schnitzel,

    also ich habe schon den namen richtig angegeben.

    Habe es jetzt so geändert:

    [autoit]

    Func RECHNER_BOX()
    Run($SCRIPTPATH & "Tools\Rechner_Box\Rechner_Box.exe")
    GUISetState(@SW_MINIMIZE)
    Do
    Sleep(100)
    Until Not Winexists("Test")
    GUISetState(@SW_MAXIMIZE)
    EndFunc

    [/autoit]

    Nun lässt sich das Fenster minimieren in die Taskleiste, aber bei Rechner Programm schliessen trotzdem nicht wieder maximieren also automatisch von Hand schon.
    Ein weiteres Problem ist nun das sich das Hauptprogramm nun auch nicht mehr über das X schliessen lässt, genauso wenig wie in der Taskleiste rechtsklick --> schliessen.

    Mfg Ghostleader

  • Ein minimiertes Fenster stellt man btw mit "$SW_Restore" wieder her nicht mit "$SW_Maximize". Dein Hauptprogramm reagiert wohl deswegen nicht mehr, weil es in der "do until" Schleife hängen bleibt. Verwende statt winexists hier doch einfach "$pid=run(...)" und als Abbruchbedingung dann "Not procesexists($pid)".

    EDIT:

    Oder noch einfacher gleich ohne do until Schleife und stattdessen mit runwait(..)

    [autoit]


    ; fenster minimieren
    runwait(...)
    ; fenster wiederherstellen

    [/autoit]

    Einmal editiert, zuletzt von misterspeed (13. Juli 2011 um 17:57)

  • Hallo misterspeed,

    vielen dank für deine Hilfe, die mich voll weiter gebracht hat!!!
    Ich habe allerdings die Variante vor deinem Edit genommen, da dein Edit da noch net da war und sie funzt einwandfrei!!! Vielen Dank dafür!

    Eine Frage hätte ich noch wofür ich nicht erst ein neues Thema eröffnen mag:

    Kann man bei der Gui oben das minimieren und das X oder gar die gesamte Gui leiste weg machen?

    Mfg Ghostleader