Avatar billede reds2001 Nybegynder
01. oktober 2002 - 20:42 Der er 6 kommentarer og
4 løsninger

Vise fremdriften evt. progressbar

Hvordan kan jeg vise brugeren hvor langt en operation er nået? Løsningen kan ikke være den sædvanlige nemme progressbar eftersom at operationen ikke bliver ekseveret i en loop, men nærmere et sekvens af funktionskald.
Avatar billede bamig Nybegynder
01. oktober 2002 - 20:55 #1
Lave en progressbar. Og så et par steder rundt i scriptet plus lidt mere til den. Når du så køre programmet kan du passe det til, så at progressbaren køre mere jævnt.
Avatar billede bamig Nybegynder
01. oktober 2002 - 20:58 #2
Ellers må du lave en timer og lade progressbaren køre op.

Eller måske lave en bladning.
Avatar billede martin_moth Mester
02. oktober 2002 - 11:25 #3
Det er egentligt såre simpelt og logisk - for at brugeren ved hvor langt operationen er nået, må du først selv vide det. Du skal også vide hvornår det hele er færdigt.

Når du ved de 2 ting, er det bare at proppe dem ind i en progressbar.

Lav fx. et par milepæle i dit program, fx. en for hver funktionskald der er afsluttet. Disse bruges så til at vise status på en progress-bar..
Avatar billede reds2001 Nybegynder
02. oktober 2002 - 15:42 #4
Det er nogle udemærket bud gutter, men der er to aspekter i dagen der gør det mere kompliceret end som så.
1. I et funktionskald forekommer der flere 'nested' kald og iblandt dem er der en databasoperation der er ret tung. Det vil sige at hvis jeg sætter progressbarens value til at increase umiddelbart efter operation vil jeg alligevel opleve at den står stille i et godt stykke tid.
2. At 'time' operationen er ikke en holdbar løsning eftersom applikationen skal kunne afvikles i forskellige miljøer.
Avatar billede kjeld_klit Nybegynder
02. oktober 2002 - 16:26 #5
Hvis det ikke er muligt at præcist definere hvor langt processen er, bliver det også svært at angive præcist i en progressbar. Men gør det nødvendigvis noget? Når man installerer store programmer kører progressbaren også nogen gange i ryk. (15%; 35%; 37%; 55%; osv.)

Start evt. med:
    Screen.MousePointer = vbHourglass

    opdater løbende progressbar

    Screen.MousePointer = vbDefault
Avatar billede martin_moth Mester
02. oktober 2002 - 16:43 #6
> reds2001:

Jamen hvad vil du have vi skal gøre ved det - at det er kompliceret?
Principperne er altså de samme: For at brugeren ved hvor langt operationen er nået, må du først selv vide det, og du skal også vide hvornår det hele er færdigt.

Du kan jo putte milepæle ind i de enkelte funktionskald, hvis du vil finopdele. Men du kommer ikke uden om ovenstående princip :o)
Avatar billede reds2001 Nybegynder
02. oktober 2002 - 19:52 #7
Jeg håbede på at der måske var nogle der sad inde med en løsning der måske var på process/thread niveau, eller om muligt windows api.
Avatar billede martin_moth Mester
02. oktober 2002 - 20:01 #8
Jeg vil naturligvis ikke gentage mig selv, men blot sige, at mine svar stadig gælder selvom du bruger api-kald eller lignende  :o)
Avatar billede martin_moth Mester
02. oktober 2002 - 20:04 #9
PS - og jeg kender ingen API-kald der kan det du spørger efter, men se evt på http://216.26.168.92/vbapi/ eller http://allapi.net/
Avatar billede reds2001 Nybegynder
14. oktober 2002 - 13:19 #10
sorry guys jeres svar var ikke tilfredsstillende, alligevel en 10'er for ulejeligheden.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester