![]() |
|
How to change the value on the fly? - Printable Version +- Atozed Forums (https://www.atozed.com/forums) +-- Forum: Atozed Software (https://www.atozed.com/forums/forum-1.html) +--- Forum: IntraWeb (https://www.atozed.com/forums/forum-3.html) +---- Forum: English (https://www.atozed.com/forums/forum-16.html) +----- Forum: IntraWeb General Discussion (https://www.atozed.com/forums/forum-4.html) +----- Thread: How to change the value on the fly? (/thread-3237.html) |
How to change the value on the fly? - baxing - 05-18-2023 Hello, Is there a way? If when done use the command JavaScript (may be calling a JS function or changing a variable in JS) with Dephi and let that command run. without having to wait for the end of that Event I would like to expand on the above message as follows. : Because of that from which I tested for example Inside the event of IWBTN1AsyncClick I have a loop, or a Delphi subcommand loop, to do something. And in the meantime I want to change JS variable values or call JS functions with Delphi. Let me give you a simple example: Code: for I := 0 to 100 doOr to give a clearer example, let's say I have a JS Plugins to display the Cricle Pregress Loader and show the value as a percentage. while some operations are in progress This will prevent the user from clicking anywhere and knowing that the process is in progress. But the result is not what I want. That is, the value that I want to change or the function that I want to call. It wasn't immediately called. But only to be called at the end of the event of IWBTN1 being clicked. Please suggest me what should I do or use. Thank you
RE: How to change the value on the fly? - Alexandre Machado - 05-18-2023 There is a way of obtaining this result but the process can't be done in a blocking request (i.e. a request that won't return until the process is finished). In this regard, even an async request is a blocking request from the server point of view. You need to start a background thread on the server side that will handle the long process. The thread should update a progress counter that is read by the TIWMonitor that can update the page. There is an example of such thing here: https://github.com/Atozed/IntraWeb/tree/master/15/Delphi/IWMonitor2 I'll see if I write a better example on how to deal with long processes using the IWMonitor class RE: How to change the value on the fly? - baxing - 05-19-2023 (05-18-2023, 11:35 PM)Alexandre Machado Wrote: There is a way of obtaining this result but the process can't be done in a blocking request (i.e. a request that won't return until the process is finished). In this regard, even an async request is a blocking request from the server point of view. Thanks Alexandre, I have attended the sample as you suggested. But still can't see how to apply it to my case. I don't know if you can provide a short code example. Or if there is an opportunity and you find it appropriate, please bring an example to apply this to my case or similar. Initially, I would have to use LockOnAsynEvent property first. Thank you very much RE: How to change the value on the fly? - Alexandre Machado - 05-24-2023 Hi Baxing, I'm working on a new example that will probably work for you. I'll see if I can finish it by tomorrow. Also, while working on it I found few things that could be extended in IntraWeb core and also some components that I think would be handy for this case and similar. Possibly I'll release an update containing some stuff. Hopefully you are using the latest version... RE: How to change the value on the fly? - baxing - 05-24-2023 Hi Alexandre, That is very good news for me. Thank you for taking the time to do this and I hope it will be helpful to others as well.
|