Changes... well, as I already said, multiple timers... ten of them to be exact as selectable by the slider bar in the options dialog. Apply and OK saves the settings for the current timer to the registry using the format I previously outlined. Default still dumps the defaults for the reason I made it in the first place into the boxes, so there's examples of valid data. I should make Default dump in "Now" plus a day or something so if anyone is actually using it 68 years from 12/13/2001, the default isn't invalid. Export dumps the settings from the registry to the file 'medlircd.dat', or if there are no registry settings, it dumps the defaults for all timers. The edit button tries to open notepad.exe in the windir with the medlircd.dat file, if it doesn't work for anyone, let me know. Import reads in all data from the file and dumps back to the registry. If the file exists on startup, it reads all settings from the file. The reg structure now has 5 string settings off each Timer_x key off the MedlirCD key. The Options key is still there and currently only holds one setting called Timer, which is the active timer. I also cleaned up the forms a little... made the Configure and Exit buttons the same size, and resized and centered the labels. Cleaned up some variables, made a few private that were global public before. Totally got rid of some...
Dim dateNow As Date
dateNow = Now
... was a little redundant. :P Did the whole reset thing... when it hits zero, the Configure button becomes a Reset button. Changed some things from multiple numbered control or vars to contral and variable arrays which made it so I could take a six case statement and condense it down to a single If... Else... in a few places. Threw in a ton of Trim()'s on things so there weren't extraneous spaces. Removed double spaces from things as well. Error checking on the calculations! Before, if there was say a minute and 15 seconds left you would see "1 minute, 15 seconds" and as it counted down it would go below 60 seconds left, but it would still display "1 minute" until you got down to 30 seconds because 31 or greater / 60 was a fraction and so VBwas rounding it up. So there's some checking to see if the values are less than what they're being divided by now. Simplified a few other if statements... turned them into elseif's so I wasn't re-evaluating the same thing repeatedly. Changed how the error handling was done. Before, if there was an error in one of the data field, it was still writing all the others. Changed it so that all the error generation is done first, and the successful save is done inside the case statement along with the error messages... i.e. 0 is successful, do all saving, 1 is an error so report it instead of saving, etc.
Overall, I'm fairly pleased with myself right now. :P
So anyway, anyone who tries, let me know if you find a bug. Undecided on a few thingsso suggestions would be helpful... particularly... after a timer goes off, and you click the reset button, should it just turn everything off as it does now, or should it automatically open the Options dialog so you can change timers or edit the current one? When you export settings, and it pops up the sucessful message, should that have a question "Do you want to edit it now?" And open it up if you click yes, and just drop back to the options dialog if you say no? If a timer goes off while you have it minimized to the systray, should it open, activate and flash the form window? There's probably some others too. Looking for opinions.