18. september 2002 - 13:34Der er
9 kommentarer og 1 løsning
Data i ComboBox.
Kan man opdater sin combo-liste automatisk, hvor den viser filnavnene fra en bestemt mappe. F.eks. hvis der ligger følgende filer i mappen c:\knud - 1.jgp, 2.jpg, 3.jpg Så viser Combo-boksen disse navne. Og hvis man så smider flere filer ind i mappen, ja så bliver Combo-boksen opdaterret. Kan det lade sig gøre ?
hmmm - hvis en ekstern applikation (fx. stifinderen) ændrer indholdet af en mappe, så skal du kunne opfange denne ændring fra dit VB-program - det tror jeg ikke du kan. Men jeg lytter lige med, just in case.
PS: En fuskerløsning er jo at have en timer, der fx. en gang i sekundet opdaterer indholdet. Den løsning er nem at lave, men det er vel ikke det du vil have? /Martin
Tja. egentligt rigtigt forstået. Men som alternativ kunne jeg godt tænke mig at se løsningen med timeren på. Eller at jeg alternativt smider den i min form_load. Og så skal jeg selvfølge bare starte prg. forfra når der smides nye ting i mappen. Eller bare have lukket mit prg. når jeg smider filer i mappen. Så vil da gerne se løsningen :-)
Private Sub Timer1_Timer() List1.Clear For i = 0 To (File1.ListCount - 1) List1.AddItem File1.List(i) Next i End Sub
Du kan sætte timeren til hvad du vil, personligt synes jeg det er irriterende med hvert sekund fordi listboksen blinker. Jeg har valgt en listbox istedet for en combo... Nedenstående vælger kun .jpg filer ud Anyway kig på det.
Private Sub Timer1_Timer() List1.Clear For i = 0 To (File1.ListCount - 1) If LCase(Right(File1.List(i), 3)) = "jpg" Then List1.AddItem File1.List(i) Next i End Sub
Takker. Men får fejl ved File1.Listcount... Den sige variable ikker er defineret ? Hvor ved den hvilke mappe den skal "kigge" i ? Tager den mappen som prg. køres fra ?
Private Sub List1_Click() Dim sti As String sti = File1.Path DoEvents If Len(File1.Path) > 3 Then sti = File1.Path & LTrim("\") Image1.Picture = LoadPicture(sti & List1.Text) End Sub
Private Sub Timer1_Timer() For i = 0 To (File1.ListCount - 1) If File1.List(i) <> List2.List(i) Then List2.Clear List1.Clear For x = 0 To (File1.ListCount - 1) List2.AddItem File1.List(x) If LCase(Right(File1.List(x), 3)) = "jpg" Then List1.AddItem File1.List(x) Next x End If DoEvents Next i End Sub
Hvis ikke du kan bruge det, så har jeg da moret mig i en times tid :o)
Nu her jeg form1 OG form2
Der er kun få ændringer til form1... Men her er det hele Form1:
Private Sub Dir1_Change() File1.Path = Dir1.Path Timer1_Timer End Sub
Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub
Private Sub Form_Load() Drive1.Drive = App.Path List2.Visible = False Image1.Height = 1000 ' twips !!! Image1.Width = 1000 ' twips !!! Image1.Stretch = True Label1.Visible = False Timer1_Timer End Sub
Private Sub Image1_Click() Form2.Show End Sub
Private Sub List1_Click() Dim sti As String sti = File1.Path DoEvents If Len(File1.Path) > 3 Then sti = File1.Path & LTrim("\") Image1.Picture = LoadPicture(sti & List1.Text) End Sub
Private Sub Timer1_Timer() For i = 0 To (File1.ListCount - 1) If File1.List(i) <> List2.List(i) Then List2.Clear List1.Clear For x = 0 To (File1.ListCount - 1) List2.AddItem File1.List(x) If LCase(Right(File1.List(x), 3)) = "jpg" Then List1.AddItem File1.List(x) Next x End If DoEvents Next i End Sub
Her er form2:
Private Sub Form_Click() Picture1.Cls Unload Me Form1.SetFocus End Sub
Private Sub Form_Load() Me.AutoRedraw = True Me.WindowState = 2 With Picture1 .AutoRedraw = True .AutoSize = True .Picture = Form1.Image1.Picture .Refresh End With End Sub
Private Sub Picture1_Click() Picture1.Cls Unload Me Form1.SetFocus End Sub
Endnu engang takker jeg fordi du har givet mig noget at tumle lidt med :o) Spørg endelig løs, jeg er tilbage imorgen.
Jo meget interessant.. Mange tak for hjælpen... Grunden til det sene svar, er at der lige kom noget i vejen, så jeg først nu har tjekket det. Takker mange gange :-)
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.