16. oktober 2002 - 15:31Der er
12 kommentarer og 1 løsning
Vise f.eks. et billede, mens commando-udføres.
Hej eksperter. Når jeg klikker på min commandoknap, søger den efter bestemte filer på disken (f.eks. wav). Hvor den så viser de fudne filer i listbox. Det virker fint. Men "Søgningen" tager jo lidt tid.. Derfor : Kan man, så længe "søgningen" er aktiv vises et Billede eller Form og som så forsvinder igen når det er udført. (ideen er at jeg så vil vise et billede hvor der f.eks. står please wait, så brugeren ved der foregår noget).
Ok. Virker næsten perfekt for mig.. Men billedet når ikke at loade helt ind inden min "kommando" udføres. Det er kun "rammen" for pictureboksen der når vise sig, ikke mit billede. Kan man "forsinke" min "søgning" med f.eks. et par sek. så billedet når at vise sig.. Jo, referencen med progressbaren er ok, men synes ikke jeg kan få den til at passe med selve søgningen. Og prg. skal køres på flere pc'ere. Derfor ville det være kanont at få "billede-løsningen" til at virke :-)
Hmmm - billedet kan ikke nå at loade inden søgningen er færdig? Du loader jo billedet allerede ved programstart, og derefter skifter du bare mellem visible = true/false. Og det burde ingen tid tage, så jeg forstår ikke helt hvad der sker...?
Men jo, du kan sætte en pause ind ved at bruge timeren. Smid en timer på din form, og brug følgende (der laver ventetid på 2 sek - det kan du bare ændre...)
Ved programstart (Altså under Form_Load) varCountDown = 0 '<-- NY Timer1.Interval = 1000 ' 1000 millisekunder = 1 sek <-- NY Timer1.Enabled = False '<-- NY Picture1.Picture = LoadPicture("C:\test.jpg") Picture1.visible=false
Ved filsøgningsstart Screen.MousePointer = vbHourglass Picture1.visible=true Timer1.Enabled = True '<-- NY If varCountDown = 2 Then '2 => Ventetid 2 sek '<-- NY varCountDown = 0 '<-- NY Timer1.Enabled = False '<-- NY End If '... Og så gør du det du nu vil med dine filer og din listbox
Ved slut filsøgning Screen.MousePointer = vbDefault Picture1.visible=false
Lidt mere forklaring..eller uddybende.. Jeg loader ikke billedet ved programstart, men når jeg klikker på min knap loades billedet herefter søgningen.. Hvis jeg loader billedet ved programstart kan jeg ikke klikke på min commandoknap og udføre søgningen. Men måske skal jeg loade det hele i Form_Load istedet... ?
Sidste gang - nu skulle det virke! Drop det med timeren og løsningen jeg gav kl 9:43:39 & 10:48:08, og brug følgende i stedet for:
Ved programstart (Altså under Form_Load) Picture1.Picture = LoadPicture("C:\test.jpg") Picture1.visible=false
Ved filsøgningsstart Screen.MousePointer = vbHourglass Picture1.visible=true
'Så venter vi i 2 sek......... Starttid = Now Do varCountDown = DateDiff("s", Starttid, Now) Loop Until varCountDown >= 2 'dvs. vent 2 sekunder 'Så er der gået 2 sek.........
'... Og så gør du det du nu vil med dine filer og din listbox
Ved slut filsøgning Screen.MousePointer = vbDefault Picture1.visible=false
Og ja, du skal IKKE loade billedet når du klikker på din kommandoknap. Hele ideen med min løsning er, at billedet bliver loadet een gang for alle under programstart (Form_load), og derefter bare tændes/slukkes (enabled = true/false)...
Jeg er forvirret over din uddybende forklaring, for du skelner åbenbart mellem programstart og form_load-eventen. For mig er det det samme... Men bare du loader billedet under form_load, så virker det :o)
Ok. Forstår godt ideen nu:-) Men kan desværre ikke få det til at virker. Hvis du gider se på det smider jeg lige lidt af kode : Private Sub Command1_Click() Screen.MousePointer = vbHourglass Picture1.Visible = True 'Så venter vi i 2 sek......... Starttid = Now Do varCountDown = DateDiff("s", Starttid, Now) Loop Until varCountDown >= 5 'dvs. vent 2 sekunder 'Så er der gået 2 sek.........
Jpegs = GetAllFiles("C:\PROGRAMMER", "*.jpg", True).Count Screen.MousePointer = vbDefault Picture1.Visible = False End Sub Private Sub Form_Load() Picture1.Picture = LoadPicture("C:\vbkode\kabler.jpg") Picture1.Visible = False End Sub
Kan du se om jeg gør noget forkert ?. Hvis du altså gider bixe med det mere :-)
Hey Prøv lige at kaste et doevents in inden du udføre "kommandoen". Det skulle gerne opfriske din form og dermed vise billedet. ... Screen.MousePointer = vbHourglass Picture1.Visible = True DoEvents ...
Hej Martin.. Jeps så er jeg her igen.. Tiden rendte fra mig.. Men..men nu virker alt perfekt.. Satte en DoEvnts ind som Picard foreslog.. Så koden vedr. mit spørgsmål endte sådan her: Screen.MousePointer = vbHourglass Picture1.Visible = True Starttid = Now Do DoEvents varCountDown = DateDiff("s", Starttid, Now) Loop Until varCountDown >= 2 'dvs. vent 2 sekunder 'Så er der gået 2 sek......... Jpegs = GetAllFiles("C:\PROGRAMMER", "*.jpg", True).Count Label1 = List1.ListCount Screen.MousePointer = vbDefault Picture1.Visible = False
Kanon det virker :-)))) Danke Danke...
Synes godt om
Ny brugerNybegynder
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.