vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Teil2: Anwendungsbeispiel 
Autor: Manfred X
Datum: 02.07.17 12:26

Das Formular kann JPEGs in einem Ordner zusammenfassen,
anzeigen und sie als Liste serialisieren und deserialisieren
 
Public Class frmPicSerialize
 
    'Instanz der serialisierbaren Datenklasse
    Dim pl As PicList
 
    Dim fmt As New System.Runtime.Serialization. _
       Formatters.Binary.BinaryFormatter
 
    'Auswahl der gelisteten Bilder
    Dim WithEvents cbo_picnames As New ComboBox With _
        {.Parent = Me, .DropDownStyle = ComboBoxStyle.DropDownList, _
         .Width = 400, .Top = 40}
 
    'Anzeige eines gewählten Bildes
    Dim pb As New PictureBox With _
        {.Parent = Me, .Width = 400, .Height = 400, .Top = 80, _
         .SizeMode = PictureBoxSizeMode.Zoom}
 
    'Auswahl des Ordners, dessen JPEGs gelistet werden
    Dim fbd As New FolderBrowserDialog With _
        {.Description = "Ordner mit JPEG-Dateien"}
 
    Dim WithEvents btnLoad As New Button With _
        {.Parent = Me, .Text = "JPEGs in eine PicList laden", .Width = 400}
 
    'Speichern der Bilderliste
    Dim WithEvents btnSerialize As New Button With _
        {.Parent = Me, .Text = "Serialize PicList", _
         .Width = 400, .Top = 500, .Enabled = False}
 
    'Laden einer serialisierten Bilderliste
    Dim WithEvents btnDeSerialize As New Button With _
        {.Parent = Me, .Text = "DeSerialize PicList", _
         .Width = 400, .Top = 530}
 
    Dim ofd As New OpenFileDialog With {.Title = "Laden einer PicList", _
                                        .CheckFileExists = True}
    Dim sfd As New SaveFileDialog With {.Title = "Speichern einer Piclist", _
                                        .OverwritePrompt = True}
 
 
    Private Sub PicSerialize_Load(sender As System.Object, _
        e As System.EventArgs) Handles MyBase.Load
        Me.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedDialog
        Me.Size = New Size(420, 600)
    End Sub
 
 
    Private Sub cbo_picnames_SelectedIndexChanged _
        (sender As Object, e As System.EventArgs) _
        Handles cbo_picnames.SelectedIndexChanged
 
        pb.Image = pl.GetPic(cbo_picnames.SelectedIndex).Value
    End Sub
 
 
    Private Sub btnLoad_Click(sender As Object, _
            e As System.EventArgs) Handles btnLoad.Click
 
        If fbd.ShowDialog = Windows.Forms.DialogResult.Cancel Then Exit Sub
 
        PrepareForm()
 
        'Hintergrund-Thread zum Laden der JPEGs aus einem Ordner
        Dim lds As New Threading.ThreadStart(AddressOf loadpics)
        Dim ld As New Threading.Thread(lds)
        ld.Start()
    End Sub
 
 
    Private Sub loadpics()
        pl = New PicList(fbd.SelectedPath)
        Me.Invoke(New MethodInvoker(AddressOf shownames))
    End Sub
 
    Private Sub PrepareForm()
        Me.Text = "Bilder werden geladen"
        cbo_picnames.Items.Clear()
        pb.Image = Nothing
    End Sub
 
    Private Sub shownames()
 
        cbo_picnames.Items.Clear()
        For i As Integer = 0 To pl.Count - 1
            cbo_picnames.Items.Add(pl.GetPic(i).name)
        Next i
 
        btnSerialize.Enabled = pl.Count > 0
        Me.Text = pl.Count.ToString & " Bilder aus " _
            & pl.Folder & " geladen"
        cbo_picnames.SelectedIndex = 0
    End Sub
 
 
    Private Sub btnSerialize_Click(sender As Object, _
        e As System.EventArgs) Handles btnSerialize.Click
 
        If sfd.ShowDialog = Windows.Forms.DialogResult.Cancel Then Exit Sub
        IO.File.Delete(sfd.FileName)
        Using fs As New IO.FileStream _
            (sfd.FileName, IO.FileMode.Create, IO.FileAccess.Write)
 
            fmt.Serialize(fs, pl)
        End Using
    End Sub
 
 
    Private Sub btnDeSerialize_Click(sender As Object, _
        e As System.EventArgs) Handles btnDeSerialize.Click
        If ofd.ShowDialog = Windows.Forms.DialogResult.Cancel Then Exit Sub
 
        PrepareForm()
 
        Using fs As New IO.FileStream _
            (ofd.FileName, IO.FileMode.Open, IO.FileAccess.Read)
 
            pl = DirectCast(fmt.Deserialize(fs), PicList)
            shownames()
        End Using
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Frage zu Datenaustausch1.761Bazi28.06.17 13:59
Re: Frage zu Datenaustausch918effeff28.06.17 15:48
Re: Frage zu Datenaustausch952Bazi28.06.17 20:04
Re: Frage zu Datenaustausch922Blackbox28.06.17 17:09
Re: Frage zu Datenaustausch928Bazi28.06.17 20:04
Re: Frage zu Datenaustausch889Franki29.06.17 03:32
Re: Frage zu Datenaustausch1.041Schudi30.06.17 09:01
Re: Frage zu Datenaustausch857Bazi30.06.17 11:04
Re: Frage zu Datenaustausch879Manfred X30.06.17 15:28
Re: Frage zu Datenaustausch865Bazi30.06.17 20:16
Re: Frage zu Datenaustausch905Schudi01.07.17 07:05
Re: Frage zu Datenaustausch993Bazi01.07.17 20:39
Re: Frage zu Datenaustausch853Manfred X01.07.17 22:44
Re: Frage zu Datenaustausch990Bazi01.07.17 22:50
Re: Frage zu Datenaustausch908Manfred X01.07.17 23:04
Re: Frage zu Datenaustausch854Bazi02.07.17 09:46
Teil1: Serialisierbare Klasse für Bilderliste (JPEGs)891Manfred X02.07.17 12:23
Teil2: Anwendungsbeispiel968Manfred X02.07.17 12:26
Re: Teil2: Anwendungsbeispiel841Bazi02.07.17 14:03
Ergänzender Hinweis818Manfred X02.07.17 21:35
Re: Ergänzender Hinweis828Bazi02.07.17 22:09
Re: Ergänzender Hinweis838Manfred X02.07.17 22:28
Re: Ergänzender Hinweis879Bazi02.07.17 22:32

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel