foto viewer

Status
Niet open voor verdere reacties.

geert160

Gebruiker
Lid geworden
31 jan 2009
Berichten
43
Ik heb net een aantal boeken over vb gelezen , voor mijn werk moet ik een hele hoop voertuigen kennen en nu zou ik als oefening vb willen gebruiken om iets nuttig te maken .
Ik dacht dus aan een foto viewer .
Mijn bedoeling is om iets te maken dat random 100 fotos laat zien .
Telkens wanneer je op "volgende" klikt gaat het verder en "terug " gaat het één terug .
Layout is geen probleem dat heb ik al .
Maar nu :-)
Kan iemand me een tip geven ofzo ? via google heb ik eerlijk gezegd nog niet veel nuttig gevonden .
 
Hoe zijn je plaatjes genaamd?
1.jpg tot 100.jpg, of hebben ze allemaal een andere naam?
 
Ok dan is het heel makkelijk ,...

ik zal even een voorbeeld code voor je programmeren
 
Ok dan is het heel makkelijk ,...

ik zal even een voorbeeld code voor je programmeren

THX dat zou me echt een heel stuk verder helpen.
Ik had eerlijk gezegd niet verwacht dat het zo moeilijk zou zijn om iets te maken.
Heb 3 boeken gelezen over vb , maar om eerlijk te zijn veel heb je er niet aan eens dat je echt iets wil maken.
Denk dat de eerste stappen voor iedereen wel de moeilijkste zijn , en zeker wanneer je zelfstudie doet uit een boek.
 
Code:
Public Class Form1

    Dim Position As Integer
    Dim PictureBox1 As New PictureBox
    Dim Button1 As New Button
    Dim Button2 As New Button
    Dim Array(100) As Integer

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim Rnd As New Random
        Randomize()

        For Counter As Integer = 1 To 100
            Array(Counter) = Rnd.Next(1, 100)
        Next

        PictureBox1.Location = New Point(50, 50)
        PictureBox1.Size = New Size(100, 100)
        Me.Controls.Add(PictureBox1)

        Button1.Location = New Point(100, 200)
        Button1.Text = "Vorige"
        Me.Controls.Add(Button1)
        AddHandler Button1.Click, AddressOf Vorige

        Button2.Location = New Point(250, 200)
        Button2.Text = "Volgende"
        Me.Controls.Add(Button2)
        AddHandler Button2.Click, AddressOf Volgende

    End Sub

    Private Sub Vorige()
        If Position < 1 Then Position = 100
        Position -= 1
        PictureBox1.Load(Array(Position) & ".jpg")
    End Sub

    Private Sub Volgende()
        If Position > 100 Then Position = 1
        Position += 1
        PictureBox1.Load(Array(Position) & ".jpg")
    End Sub

End Class

Dit zou een goede voorzet moeten zijn .. Zet m eerst even in een nieuw project ,omdat buttons en picturebox programatisch worden aangemaakt.
 
Code:
Public Class Form1

    Dim Position As Integer
    Dim PictureBox1 As New PictureBox
    Dim Button1 As New Button
    Dim Button2 As New Button
    Dim Array(100) As Integer

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim Rnd As New Random
        Randomize()

        For Counter As Integer = 1 To 100
            Array(Counter) = Rnd.Next(1, 100)
        Next

        PictureBox1.Location = New Point(50, 50)
        PictureBox1.Size = New Size(100, 100)
        Me.Controls.Add(PictureBox1)

        Button1.Location = New Point(100, 200)
        Button1.Text = "Vorige"
        Me.Controls.Add(Button1)
        AddHandler Button1.Click, AddressOf Vorige

        Button2.Location = New Point(250, 200)
        Button2.Text = "Volgende"
        Me.Controls.Add(Button2)
        AddHandler Button2.Click, AddressOf Volgende

    End Sub

    Private Sub Vorige()
        If Position < 1 Then Position = 100
        Position -= 1
        PictureBox1.Load(Array(Position) & ".jpg")
    End Sub

    Private Sub Volgende()
        If Position > 100 Then Position = 1
        Position += 1
        PictureBox1.Load(Array(Position) & ".jpg")
    End Sub

End Class

Dit zou een goede voorzet moeten zijn .. Zet m eerst even in een nieuw project ,omdat buttons en picturebox programatisch worden aangemaakt.

WOW dat is snel , ok ik ga dat nu doen :-) THX
 
ongeloofelijk wat je op zo een korte tijd gemaakt hebt.
nu zit ik nog met die 100 foto's ,

PictureBox1.Load(Array(Position) & ".jpg")

als ik de positie opgeef dat ze hebben op mijn pc dan werkt het niet wanneer ik het progje op een usb stick zet.
of zie ik het weer verkeerd ?
 
PictureBox1.Load("F:\MijnUSBStick\" & Array(Position) & ".jpg")

een volledig pad zou gewoon moeten werken...


ik vond trouwens ook nog een foutje van mijn kant...

Position -= 1 , en Position += 1 moeten beide voor het 'If' statement staan.. Want anders pakt ie nooit nummer 100 :P ...
 
PictureBox1.Load("F:\MijnUSBStick\" & Array(Position) & ".jpg")

een volledig pad zou gewoon moeten werken...


ik vond trouwens ook nog een foutje van mijn kant...

Position -= 1 , en Position += 1 moeten beide voor het 'If' statement staan.. Want anders pakt ie nooit nummer 100 :P ...

Ok bedankt ik ga het nu testen .
Sorry voor mijn zeer late reactie , ik geraakte gisteren niet meer op het forum om de één of andere reden.
 
ok ik heb de code een beetje aangepast , omdat ik niet alles letterlijk wil overnemen .
Dan zou ik ook niks bijleren hé :-)

Code:
Public Class Form1

    Dim Position As Integer
    Dim Array(100) As Integer

    Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Position -= 1
        If Position < 1 Then Position = 100
        PictureBox1.Load("M:\" & Array(Position) & ".jpg")
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Position += 1
        If Position > 100 Then Position = 1
        PictureBox1.Load("M:\" & Array(Position) & ".jpg")
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim Rnd As New Random
        Randomize()

        For Counter As Integer = 1 To 100
            Array(Counter) = Rnd.Next(1, 100)
        Next

    End Sub
End Class

dit is mijn resultaat , alles werkt perfect op 1 probleem na .
De memorystick noemt "M:\" , op mijn pc werkt dat dus perfect.
Maar wanneer ik die memorystick in mijn vriendin haar laptop steek om het progje te testen dan heeft die memorystick de naam F:\ en werk het dus niet .
kan ik die naam aanpassen op elke pc of moet ik de code op één of andere manier aanpassen ?
 
uhm, het programma en de plaatjes staan op dezelfde drive?

gebruik dan in plaats van "M:\" & ... iets van :

Code:
Application.StartupPath & "MijnDir\" & ....

dan maakt het niet uit wat voor driveletter hij heeft , maar kijkt ie in de dezelfde map als de applicatie..
 
uhm, het programma en de plaatjes staan op dezelfde drive?

gebruik dan in plaats van "M:\" & ... iets van :

Code:
Application.StartupPath & "MijnDir\" & ....

dan maakt het niet uit wat voor driveletter hij heeft , maar kijkt ie in de dezelfde map als de applicatie..

het programa instaleerd zich op C maar de locatie van de plaatjes verandert afhankelijk van welke letter de pc aan de memorystick geeft.
 
Da's een lastige kwestie omdat je niet kan uitlezen welke 'juiste' USB-device welke driveletter heeft.

het programma op de USB installeren lijkt me makkelijker ...


(Of natuurlijk de USB-Stick een andere letter toewijzen..
bij start-uitvoeren : compmgmt.msc , dan bij schijfbeheer een andere letter toewijzen)
 
Da's een lastige kwestie omdat je niet kan uitlezen welke 'juiste' USB-device welke driveletter heeft.

het programma op de USB installeren lijkt me makkelijker ...


(Of natuurlijk de USB-Stick een andere letter toewijzen..
bij start-uitvoeren : compmgmt.msc , dan bij schijfbeheer een andere letter toewijzen)

de usb stick een andere letter geven , ik wist zelfs niet dat het kon .
kan ik op één of andere manier het progje ook laten zoeken in de drive F ?
op veel pc's noemt een usb stick F of krijg ik dan een fout melding ?
Sorry voor al mijn vragen , deze oefening werkt verslavend voor mij denk ik
 
Ja dat zou kunnen , maar dan moet je ze alle 26 afzoeken...

waar zou je op willen zoeken dan? die 100 jpgs?
 
Ja dat zou kunnen , maar dan moet je ze alle 26 afzoeken...

waar zou je op willen zoeken dan? die 100 jpgs?

Als ik het zou laten zoeken op de meest gebruikte ?
F , G , H , I , J , K , ....

Het is maar een idee
 
Met zoiets kom je er wel..

Code:
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim Drives() As System.IO.DriveInfo = System.IO.DriveInfo.GetDrives()
        Dim File As System.IO.File = Nothing
        For Each Drive In Drives

            If Drive.DriveType = IO.DriveType.Removable Then
                If System.IO.File.Exists(Drive.Name & "1.jpg") = True Then
                    MsgBox("Found your file on " & Drive.Name, MsgBoxStyle.OkOnly)
                End If
            End If
        Next

    End Sub

Hij zet alle drives in een array.. en kijk dan of de drive een removable drive is. Zo-ja kijk dan of op de drive een 1.jpg file te vinden is. Als dat weer met ja wordt beantwoord, laat dan een msgbox( found your file on ....) zien.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan