I have a Dialog script that gets much of it's info from an excel export .xls
Throughout the day there can be new xls to import and I have to close the Dialog and reopen to load the new xls sheet into the dialog.
I'm looking to make a button on the Dialog that will close it and start the script over again instead of restarting the exe.
So here is the button:
object ReloadButton: tMSButton
Left = 864
Top = 3
Width = 48
Height = 25
Caption = 'Reload'
TabOrder = 49
DoBrowse = False
BrowseStyle = fbOpen
end
Here is the dialog handler:
AddDialogHandler>Dialog1,ReloadButton,OnClick,ResetXls
and here is the SRT:
SRT>ResetXls
CloseDialog>Dialog1
SkipLabel>Start2
END>ResetXls
Start2 is a label before the xls file import prompt and before loading the xls to the array and before the Dialog.
When running the script it says that Dialog1 is still running "Line: 55 - A dialog called Dialog1 already exists."
Leading me to think I can use a variable to name Dialog%n% and have the numbers climb up each time you hit the reset button. However if Dialog1 still exists after using the close dialog command, then how will that effect the program after 100 resets?
Is there a way to actually close the dialog if the close dialog command doesn't work? or I'm not understanding how it's intended to be used.
Thank you!
Reloading a dialog
Moderators: Dorian (MJT support), JRL
Re: Reloading a dialog
Good news, I found a way reading every thread on this board, I found something that wasn't an answer, but lead me to the answer.
I was using Show>Dialog1,
The comma making a hard stop and yes, leaving the dialog window open to interact with, but also locking me to nothing else.
So, I removed the comma and made a loop after the Show....
With Label>DisplayDialog being after the EndDialog> but before all the SetDialogProperty>
So hitting reload sends to load the array from sql server and redraw all the button properties.
Still not sure why closing the dialog with CloseDialog>Dialog1 shuts down the whole script, but it does.
I've also graduated from xlsToArray to SQLToArray, all in two days!!
Thank you Macro Scheduler for allowing a non programmer/coder to make a program!!
Also thank you to viewtopic.php?f=3&t=8673 for finding me viewtopic.php?f=2&t=8472
I was using Show>Dialog1,
The comma making a hard stop and yes, leaving the dialog window open to interact with, but also locking me to nothing else.
So, I removed the comma and made a loop after the Show....
Code: Select all
Let>ReDisplayDialogFlag=0
Show>Dialog1
//keep open unless closed or reloaded
Label>Loop
Wait>0.01
If>ReDisplayDialogFlag=1
Goto>DisplayDialog
EndIf
Goto>Loop
//Close button
SRT>doCancel
CloseDialog>Dialog1
Exit>0
END>doCancel
//reload SQL
SRT>ReloadSQL
Let>ReDisplayDialogFlag=1
Gosub>ConnectDB
END>ReloadSQL
So hitting reload sends to load the array from sql server and redraw all the button properties.
Still not sure why closing the dialog with CloseDialog>Dialog1 shuts down the whole script, but it does.
I've also graduated from xlsToArray to SQLToArray, all in two days!!
Thank you Macro Scheduler for allowing a non programmer/coder to make a program!!
Also thank you to viewtopic.php?f=3&t=8673 for finding me viewtopic.php?f=2&t=8472
Re: Reloading a dialog
Thanks for sharing your experience so it will help others!
Re: Reloading a dialog
Oh sure! I've found so many useful things in these forums, it's a gold mine!! I'm happy to add to that in any way.
Still not sure if leaving a macro to loop all day long has any long term negative effects, but so far so good.
Still not sure if leaving a macro to loop all day long has any long term negative effects, but so far so good.