Results 1 to 5 of 5

Thread: Update ProgressBar

  1. #1

    Update ProgressBar

    Hi,

    Ik heb een intensieve procedure die een API aanroept en op het antwoord moet wachten. Om de gebruiker op de hoogte te houden heb ik een TProgressbar met Max := 60 (timeout in seconden). Bij het aanroepen van de procedure start ik een TTimer met een interval van 1000. Elke seconde zou de Progressbar dan geupdate moeten worden. Maar dat doet-ie niet want de procedure lockt (waarschijnlijk) het mechanisme dat de interface moet updaten oid. Hoe doe ik dit zonder dat ik mijn Procedure in een TThread moet stoppen?

    Sander

  2. #2
    Quote Originally Posted by Bodevinaat View Post
    Hoe doe ik dit zonder dat ik mijn Procedure in een TThread moet stoppen?
    Niet.

    Ja, daar kunnen we kort over zijn.

    De enige andere optie die je hebt is je procedure aanpassen dat deze TIJDENS het wachten op de API de interface/GUI kan updaten.
    Maar dan zul je je communicatiemethode aan moeten passen zodat je meer controle hebt over de wacht-procedure.
    (en die mogelijkheid heb je niet bij alle componenten)

    (Wat is het probleem om de procedure in een TThread te stoppen?)

  3. #3
    Hoi Rik,

    Duidelijk. Dit fenomeen zie eigenlijk bij elke tool. TThreads: nooit eerder gedaan in Delphi. Maar als het de enige route is ga ik het doen.

    Thx

    Sander

  4. #4
    Een alternatief voor de progressbar (die in feite geen zinvolle informatie over de wachttijd geeft) is het tijdelijk gebruik van een andere cursor. Zo ziet de gebruiker dat er gewacht wordt.
    Of (heb ik geen verstand van, noch ervaring) gebruik een aparte thread om de API aan te roepen, terwijl je de progressbar update.

  5. #5
    het ligt eraan hoe die "procedure die een API aanroept....op het antwoord moet wachten" op dat antwoord wacht. Als dat een soort van loop is in je eigen programma dan kan je daar call maken naar een procedure die die de progressbar update en refresh-ed

    Het kan ook zijn dat die API ook met een async call aangeroepen kan worden, in dat geval is de timer voldoende.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •