19. maj 2009 - 16:06Der er
10 kommentarer og 1 løsning
Dårlig opdatering af brugeroverflade
Hej herinde.
Jeg oplever, at visual basic 6.0 programmer ikke opdaterer brugeroverfladen, når det givne program udsættes for resursekrævende opgaver.
F.eks. hvis man beder den om at tjekke et eller andet i en stor fil med en while løkke, og samtidig gerne vil ændre en Label's caption for at vise status over hvor langt den er, så "fryser" programmet nærmest, og captionen bliver ikke opdateret. I stedet bliver Label-boksen lavet om til en hvid boks. Først når den krævende opgave er færdig, vil visual basic opdaterer brugeroverfladen.
Dette vanskeliggøre at lave progress bar og generelt give information til brugeren om, hvor langt programmet er, med en given opgave.
Opnå den bedste ydeevne med din computer, og overtag føringen i de nyeste spil uden at gå over budgettet.
30. oktober 2024
Slettet bruger
19. maj 2009 - 17:39#1
Nu kender jeg ikke til Visual Basic, men jeg kan da forestille mig at det ville virke at sætte en lille smule ventetid i starten af while-løkken. Det vil selvfølgelig gøre at opgaven går lidt langsommere, men det vil give captionen tid til at opdatere.
Ja, det tænkte jeg også. Men der findes vist ikke en "sleep" ligesom i andre sprog, og man er derfor nødsaget til at bruge timers, hvilket jeg ikke har megen lyst til, pga. at det vil kræve en masse omkodning.
Kan det passe for mig eller har jeg overset noget?
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Derefter, f.eks.
Sleep(5000)
Synes godt om
Slettet bruger
19. maj 2009 - 21:35#4
Men, det er vist bare en timer, sorry.
Synes godt om
Slettet bruger
19. maj 2009 - 21:42#5
Et andet tip, sikkert også meget ressourcekrævende, men værd at prøve. Lav en variabel, forøg den med én for hver gang while-løkken kører. Ændr captionen hvis variablen er lig 5, 10, 100 eller hvor meget du finder passende, og nulstil den. Kan det bruges?
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.