tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
380
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Guwange Guwange ist offline Rookie
    Registriert seit
    Mar 2008
    Beiträge
    5
    Hallo, ich bin absoluter Anfänger, aber ich will unbendingt ein kleines Programm erstellen womit man aus bestimmten Ordnern (mit Bildern gefüllt) per Zufall ein Bild angezeigt bekommt per Klick auf einen Button.

    Ich hab auch schon ein Code dafür gefunden aber ich bekomme es nicht hin in richtig einzubauen, hiermal der Code (Ist nicht von mir):

    ---------------------------------------------------------------------------------------------------------------------------------

    Functions to get random images from a folder


    Dim Pics(3) As Image


    Private Function RandomImageFromFolder(ByVal DirectoryName As System.String, ByVal SearchOption As System.IO.SearchOption) As System.Drawing.Image
    Dim Directory As New System.IO.DirectoryInfo(DirectoryName)
    Dim Files() As System.IO.FileInfo = Directory.GetFiles("*.jpg", SearchOption)
    If Files.Length > 0 Then
    Dim Random As New System.Random
    Return System.Drawing.Image.FromFile(Files(Random.Next(0, Files.Length)).FullName)
    Else
    Return Nothing
    End If
    End Function

    eg... pic(0) = RandomImageFromFolder(My.Computer.FileSystem.SpecialDirectories.MyPictures, System.IO.SearchOption.AllDirectories)



    or

    Private Function GetRandomImagePath() As String
    '========================
    'It is possible to call this function so fast that myRnd
    'will have the same seed and appear to return non-random
    'results. You might want to move this to a class member
    'rather than local to this function
    '========================
    Dim myRnd As New Random()
    '========================

    Dim myDir As New System.IO.DirectoryInfo(My.Computer.FileSystem.SpecialDirectories.MyPictures)
    Dim myFiles() As System.IO.FileInfo = myDir.GetFiles("*.jpg; *.gif")

    Dim myRandomFile As String

    If Not myFiles.Length.Equals(0) Then
    myRandomFile = myFiles(myRnd.Next(myFiles.Length)).FullName
    End If
    ---------------------------------------------------------------------------------------------------------------------------------

    Welche Variante is leichter einzubauen für einen Anfänger, und wie verbinde ich diese Funktion mit einem Buttonclick und einer Picturebox wo das Bild dann angezeigt wird?
    Und wo gebe ich in diesem Code überhaupt das jeweilige Verzeichniss an (Es sollen mehrere Verzeichnisse werden und jeweils ein anderer Button)

    Hoffe einer sieht da durch oder hat eventuell eine bessere Lösung, danke.
     

  2. #2
    Avatar von Spyke
    Spyke Spyke ist offline Capoeirista
    Registriert seit
    Oct 2002
    Beiträge
    931
    das eine Sucht nur nach jpg Dateien und das andere nach JPG und GIF aber ansonsten sind se sich gleich.
    (Bis auf die Längen prüfung und die Rückgabe (string, Image))

    Entscheide selbst ob du nur den Pfad (mit Dateinamen) haben willst oder gleich ein Image Objekt zurück haben willst.
     
    www.iv-interactive.de - Projektewebsite
    WikiParser - aktuelles Projekt

  3. #3
    Guwange Guwange ist offline Rookie
    Registriert seit
    Mar 2008
    Beiträge
    5
    Ja danke erstmal, also ich will ein Image Objekt Direkt zurückhaben.
    Ich weiss aber nicht wirklich wie ich diesen Code (nehmen wir mal den 2.) in mein Programm einbaue, also wo genau kommt die Angabe zu meinen verzeichnissen hin? (wo die Bilder sind)

    Und wie genau verknüpfe ich das mit nem Button und ner Imagebox? (wie gesagt bin absoluter Anfänger).
     

  4. #4
    Guwange Guwange ist offline Rookie
    Registriert seit
    Mar 2008
    Beiträge
    5
    Ich wäre sehr dankbar dafür wenn mir jemand einfach nur den Code für das aktivieren der Random Bildausgabe in eine Picturebox durch klicken eines Buttons zeigen könnte.

    Also der Random Code:

    Private Function RandomImageFromFolder(ByVal DirectoryName As System.String, ByVal SearchOption As System.IO.SearchOption) As System.Drawing.Image
    Dim Directory As New System.IO.DirectoryInfo("F:\Bilder")
    Dim Files() As System.IO.FileInfo = Directory.GetFiles("*.jpg", SearchOption)
    If Files.Length > 0 Then
    Dim Random As New System.Random
    Return System.Drawing.Image.FromFile(Files(Random.Next(0, Files.Length)).FullName)
    Else
    Return Nothing
    End If
    End Function

    Und dann der Code zur Ausgabe:

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

    Me.PictureBox1 ? Wie gehts weiter?

    End Sub

    Ich brauch diese Funktion ganz dringend für mein kleines Programm please help
     

  5. #5
    ZeuX ZeuX ist offline Mitglied
    Registriert seit
    Sep 2005
    Ort
    Wien
    Beiträge
    15
    Du könntest dir die MSDN anschauen, du wirst dort oft fündig werden. (Man muss halt wissen, nach was man sucht)
    in deinem Fall wird dich
    -> http://msdn2.microsoft.com/en-us/lib...x_members.aspx
    und
    -> http://msdn2.microsoft.com/en-us/lib...box.image.aspx
    interessieren.

    Dort hast du folgendes Beispiel stehen.
    Code :
    1
    2
    3
    4
    5
    6
    
    Dim instance As PictureBox
    Dim value As Image
     
    value = instance.Image
     
    instance.Image = value

    Ich hoffe das hilft dir weiter.
    Geändert von ZeuX (01.04.08 um 17:24 Uhr)
     

  6. #6
    Guwange Guwange ist offline Rookie
    Registriert seit
    Mar 2008
    Beiträge
    5
    Das ist mir einfach (noch) zu hoch.

    Ich weiss nicht was ich als Instance und Value eingeben soll.

    Ist die Instance der RandomImageGenerator?

    Es würde mir sehr weiterhelfen wenn anstadt der variablen mir jemand konkret schreiben würde wie der Code ausschaut die RandomImageGenerator Function in die Picturebox auszupucken per Button.

    Das ist nervig aber ich hab nunmal (noch) überhaupt keine Ahnung was was ist in VBasic.
    Danke.
     

Ähnliche Themen

  1. Zufallsbild aus einem Ordner, ich kriegs nicht hin =(
    Von Guwange im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 28.03.08, 17:37
  2. Antworten: 15
    Letzter Beitrag: 08.09.07, 16:01
  3. Visual Basic 2005. EXE geht nicht auf anderen Rechnern.
    Von WhiteShadow im Forum Visual Basic 6.0
    Antworten: 6
    Letzter Beitrag: 14.01.06, 20:43
  4. Visual Basic 2005. EXE geht nicht auf anderen Rechnern.
    Von WhiteShadow im Forum .NET Windows Forms
    Antworten: 1
    Letzter Beitrag: 13.01.06, 08:43
  5. Visual Basic Code in Visual Basic generieren
    Von NBOne im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 16.01.05, 15:51