17. april 2005 - 12:24Der er
9 kommentarer og 2 løsninger
Hvordan anvendes ProgressBar i praksis?
Hej,
Nogen der kan forklare lidt om hvordan ProgressBar controllen anvendes i praksis. Jeg har læst om den på MSDN, og kan også godt sætte min, max og value...men hvordan dælen knytter man dens "fremskridt" til en given funktion.
Jeg kunne godt tænke mig at anvende den i forbindelse med et lille tool jeg brygger på, hvor n antal billeder resizes og gemmes.
Det ville være smart om jeg så snart gennemløbet af billedsamlingen starter åbner en lille dialogbox med en progressbar, i modsætning til nu, hvor computeren mere eller mindre fryser indtil den har arbejdet færdig.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
1) koden der reziser dine billeder skal køre i en ny tråd 2) Min value sætter du til 0, og MaxValue sætter du til antal billeder der skal resizes 3) Hver gang du har resizet et billede skal du lade din kode tælle Value på ProgressBar'en en op. Husk at brug Invoke, da din resize-kode kører i en anden tråd en ProgrssBar'en
I dit givne problem ville jeg nok lave en arbejdstråd som går arbejdet, så undgår du også at din GUI er låst mens arbejdet udføres. Fra denne arbejdstråd kan du aktivere en event, som i GUI'et er kædet sammen med en metode, der tæller ProgressBar.Value en frem.
På den måde har du adskilt GUI og logik, men har en fin måde at få opdateret din ProgressBar.
det aller pæneste vil være at lave en delegate som indeholder den funktion der tæller en op på progressbaren. Denne delegate bruger du så som argument til din Resize-funktion som du så kalder. På den måde har du en meget løs kobling mellem Resize-funktionen og selve dit GUI.
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.