NeverDUN Posted July 24, 2014 Posted July 24, 2014 (edited) Ok so thus far the script does what it's suppose to do.. to a point. There are two complications and they are as follows: There is suppose to be ONE GUI that opens up. When i run the script it opens, but when i close it another identical one opens behind it. When i click save on the first GUI it saves like it's supposed too. BUT when i close it and reopen it, it's suppose to open with the info that was saved. I'm no pro coder, maybe it's something very small i'm not getting. Some help would be highly appreciated. Yea.. i have it saving alot :3 expandcollapse popup#include <ButtonConstants.au3> #include <EditConstants.au3> #include <MsgBoxConstants.au3> #include <GUIConstantsEx.au3> #include <GuiStatusBar.au3> #include <ProgressConstants.au3> #include <WindowsConstants.au3> Do $pass = InputBox("Enter Password", "Please enter the password", "", "*", 150, 120) If $pass <> "Password" Then EndIf If (@error == 1) Then Exit ; Until $pass == "123" MsgBox(0, "Success", "Correct password" & @CRLF & "") Global $sConfigPath = @ScriptDir & "\Settings.ini" ProgressOn("Title", "Loading program", "Loading...") For $i = 0 To 100 ProgressSet($i) Sleep(5) Next ProgressSet(50, "Half Way.") Sleep(250) ProgressSet(100, "Done!") Sleep(750) ProgressOff() #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Title", 610, 477, 206, 143) $Input1 = GUICtrlCreateInput("Date", 480, 16, 113, 21) $Input2 = GUICtrlCreateInput("Title", 16, 56, 577, 21) $Edit1 = GUICtrlCreateEdit("", 16, 80, 577, 329) $Button1 = GUICtrlCreateButton("Save", 520, 424, 75, 25, $BS_DEFPUSHBUTTON) $idProgressbar1 = GUICtrlCreateProgress(16, 424, 454, 17) $StatusBar1 = _GUICtrlStatusBar_Create($Form1) GUICtrlSetColor(-1, 32250) GUISetState(@SW_SHOW) Local $iWait = 20; wait 20ms for next progressstep Local $iSavPos = 0; progressbar-saveposition Local $idMsg, $idM ; Loop until the user exits. Do $idMsg = GUIGetMsg() If $idMsg = $Button1 Then GUICtrlSetData($Button1, "Stop") For $i = $iSavPos To 100 If GUICtrlRead($idProgressbar1) = 50 Then MsgBox($MB_SYSTEMMODAL, "Info", "half is done...", 1) $idM = GUIGetMsg() If $idM = -3 Then ExitLoop If $idM = $Button1 Then GUICtrlSetData($Button1, "Next") $iSavPos = $i;save the current bar-position to $iSavPos ExitLoop Else $iSavPos = 0 GUICtrlSetData($idProgressbar1, $i) Sleep($iWait) EndIf Next If $i > 100 Then ; $iSavPos=0 GUICtrlSetData($Button1, "Click") EndIf If GUICtrlSetData($Button1, "Click") Then IniWrite($sConfigPath, "Date", "Input1", GUICtrlRead($Input1)) IniWrite($sConfigPath, "Title", "Input2", GUICtrlRead($Input2)) IniWrite($sConfigPath, "Edit", "Edit1", GUICtrlRead($Edit1)) EndIf If IniWrite($sConfigPath, "Edit", "Edit1", GUICtrlRead($Edit1)) Then GUICtrlSetData($Button1, "Done") EndIf EndIf Until $idMsg = $GUI_EVENT_CLOSE GUICtrlSetData($Input1, IniRead($sConfigPath, "Date", "Input1", "Date")) GUICtrlSetData($Input2, IniRead($sConfigPath, "Title", "Input2", "Title")) GUICtrlSetData($Edit1, IniRead($sConfigPath, "Edit", "Edit1", "Start writing...")) While 1 $idMsg = GUIGetMsg() Switch $idMsg Case $GUI_EVENT_CLOSE ; Note: Exit needs to be changed to ExitLoop ; for any code after the loop to execute. ExitLoop EndSwitch If $idMsg = $GUI_EVENT_CLOSE Then ExitLoop If $idMsg = $Button1 Then SendMyData() WEnd Func Button1Click() IniWrite($sConfigPath, "Date", "Input1", GUICtrlRead($Input1)) IniWrite($sConfigPath, "Title", "Input2", GUICtrlRead($Input2)) IniWrite($sConfigPath, "Edit", "Edit1", GUICtrlRead($Edit1)) EndFunc ;==>Button1Click IniWrite($sConfigPath, "Date", "Input1", GUICtrlRead($Input1)) IniWrite($sConfigPath, "Title", "Input2", GUICtrlRead($Input2)) IniWrite($sConfigPath, "Edit", "Edit1", GUICtrlRead($Edit1)) Func SendMyData() FileDelete('Settings.ini') $data = "[General]" & @CRLF & GUICtrlRead($Input2) & @CRLF & @CRLF & GUICtrlRead($Edit1) FileWrite('\Settings.ini', $data) MsgBox(0, 'Info', 'Data saved') EndFunc ;==>SendMyData #EndRegion ### END Koda GUI section ### Edited July 24, 2014 by NeverDUN
abberration Posted July 25, 2014 Posted July 25, 2014 (edited) Your program is so simple, progress bars are not necessary. The Do/Until loop is overly complicated. Also, near the end of the program, I see you were deleting the INI file and using FileWrite to write to it. That is very inefficient. I'm posting some simple code that does what you need. Perhaps it can help you see a better way: expandcollapse popup#include <ButtonConstants.au3> #include <EditConstants.au3> #include <MsgBoxConstants.au3> #include <GUIConstantsEx.au3> #include <GuiStatusBar.au3> #include <ProgressConstants.au3> #include <WindowsConstants.au3> Do $pass = InputBox("Enter Password", "Please enter the password", "", "*", 150, 120) If $pass <> "Password" Then EndIf If (@error == 1) Then Exit ; Until $pass == "123" MsgBox(0, "Success", "Correct password" & @CRLF & "") Global $sConfigPath = @ScriptDir & "\Settings.ini" $Form1 = GUICreate("Title", 610, 477, 206, 143) $Input1 = GUICtrlCreateInput("Date", 480, 16, 113, 21) $Input2 = GUICtrlCreateInput("Title", 16, 56, 577, 21) $Edit1 = GUICtrlCreateEdit("", 16, 80, 577, 329) $Button1 = GUICtrlCreateButton("Save", 520, 424, 75, 25, $BS_DEFPUSHBUTTON) $StatusBar1 = _GUICtrlStatusBar_Create($Form1) GUICtrlSetColor(-1, 32250) GUISetState(@SW_SHOW) $dateRead = IniRead($sConfigPath, "Date", "Input1", "") $titleRead = IniRead($sConfigPath, "Title", "Input2", "") $editRead = IniRead($sConfigPath, "Edit", "Edit1", "") GUICtrlSetData($Input1, $dateRead) GUICtrlSetData($Input2, $titleRead) GUICtrlSetData($Edit1, $editRead) While 1 $idMsg = GUIGetMsg() Switch $idMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 If GUICtrlRead($Button1) = "Save" Then IniWrite($sConfigPath, "Date", "Input1", GUICtrlRead($Input1)) IniWrite($sConfigPath, "Title", "Input2", GUICtrlRead($Input2)) IniWrite($sConfigPath, "Edit", "Edit1", GUICtrlRead($Edit1)) GUICtrlSetData($Button1, "Done") ElseIf GUICtrlRead($Button1) = "Done" Then Exit EndIf EndSwitch WEnd Edited July 25, 2014 by abberration Easy MP3 | Software Installer | Password Manager
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now