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