About TsArcPreloader freez

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #37715
    Jin
    Participant

    Hello,

    I use TsArcPreloader to show loading process to users, but when my software is busy by some job this TsArcPreloader stops moving and cannot show the loading process in real time, it looks lake to be frozen. And after software is finished to do some job, it is continue to moving. This loading process is not looking good from the user side. Is it possible to move it to some thread to have this process of moving without any stops?

    #57528
    Support
    Keymaster

    Hello, Jin! I will try to improve it soon.

    #59343
    Jin
    Participant

    Hello, are you still going to improve this issue? Because it is really important for me to show real loading process not just stopped image without any movements.

    #59344
    Support
    Keymaster

    Hello

    I hope to make it in the nearest few releases.

    #59364
    Support
    Keymaster

    Hi

    I have a question, how are you planning to use this control?

    Your application is busy in the own new thread? Or you are using a main thread only?

    #59779
    Jin
    Participant
    'Support' wrote:

    Hi

    I have a question, how are you planning to use this control?

    Your application is busy in the own new thread? Or you are using a main thread only?

    Hi, I am using only main thread only. It is necessary when my software use some big functions to show to user that software is ok and it is just loading the data now.

    #59780
    Stephane Senecal
    Participant

    Just trying to help here…

    You can do Application.ProcessMessages() or ArcControl.Update() to force one paint.

    It will need to be repeated many times in your process so that the UI can update itself.

    Hope it helps.

    Stephane Senecal
    CIS Group
    Delphi programmer since 2001

    #59822
    Jin
    Participant
    'Stephane wrote:

    Just trying to help here…

    You can do Application.ProcessMessages() or ArcControl.Update() to force one paint.

    It will need to be repeated many times in your process so that the UI can update itself.

    Hope it helps.

    It is impossible. For example you have some function, it works 15 seconds form the begin till end. And I can put Application.ProcessMessages or something else only after this function, but it will not resolve my issue, because for all 15 seconds ArcPreloder will not show for user this function calculation process. From my point of view it is bad practice to put such string like ArcControl.Update() in your code for such kind of component.

    #59824
    JM-DG
    Participant
    'Jin' wrote:

    It is impossible. For example you have some function, it works 15 seconds form the begin till end. And I can put Application.ProcessMessages or something else only after this function, but it will not resolve my issue, because for all 15 seconds ArcPreloder will not show for user this function calculation process. From my point of view it is bad practice to put such string like ArcControl.Update() in your code for such kind of component.

    It is bad practice to use Application.ProcessMessages()/ArcControl.Update() in a loop to force an update,

    but it is also bad practice to run an intensive job on the main thread instead of having it in a separated thread of its own.

    #59830
    Support
    Keymaster

    Hello, Jin

    Window controls may be painted in the main application thread only because VCL, is not thread-safe.

    Additional threads should be used for calculations or other information handling, but drawing on the canvas should be made at the main thread only.

Viewing 10 posts - 1 through 10 (of 10 total)
  • You must be logged in to reply to this topic.