vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 12 bzw. 19 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2015
 
zurück
Rubrik: Verschiedenes / Sonstiges   |   VB-Versionen: VB4, VB5, VB616.11.01
Einstellungen verwalten mit dem PropertyBag-Objekt

Eine weitere, eher unbekannte Methode zum Lesen und Speichern von Anwendungs-Einstellungen bietet das PropertyBag-Objekt.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  21.488 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8 Beispielprojekt auf CD 

Summer-Special bei Tools & Components!
Gute Laune Sommer bei Tools & Components
Top Summer-Special - Sparen Sie teilweise über 100,- EUR
Alle sev-Entwicklerkomponenten und Komplettpakete jetzt bis zu 25% reduziert!
zum Beispiel:
  • Developer CD nur 455,- EUR statt 569,- EUR
  • sevDTA 2.0 nur 224,30 EUR statt 299,- EUR
  •  
  • vb@rchiv   Vol.6 nur 18,70 EUR statt 24,95 EUR
  • sevCoolbar 3.0 nur 58,70 EUR statt 69,- EUR
  • - Werbung -Und viele weitere Angebote           Aktionspreise nur für kurze Zeit gültig

    Wie speichern Sie eigentlich Anwender-Einstellungen, die der User z.B. in einem "Einstellung-Dialog" vorgenommen hat?

    Hmmm... Klar - in INI-Dateien... oder auch in der Registry.

    Warum eigentlich nicht mit Hilfe des PropertyBag-Objekts?

    Hmmm... auch Klar - weil dieses viele VB-Progger gar nicht kennen. Und wenn doch, dann nur in Verbindung mit UserControls, bei denen man das PropertyBag-Objekt ja von Haus aus zum Speichern und Wiederherstellen von Einstellungen verwenden muss.

    Warum das PropertyBag-Objekt also nicht auch für ganz normale Einstellungen verwenden?

    Das "schöne" am PropertyBag-Objekt ist, dass sich beliebige Datentypen speichern lassen - also z.B. auch Bilder. Haben Sie mal versucht die Picture-Eigenschaft eines Image- oder PictureBox-Controls in einer INI-Datei oder in der Registry zu speichern? Mit dem PropertyBag-Objekt ist dies ohne Probleme möglich. Alle Einstellungen werden in einer einzigen Datei gespeichert - und können aus dieser auch wieder gelesen werden. Sie brauchen sich auch nicht darum zu kümmern, an welcher Position in der Datei, welche Einstellung steht - das alles erledigt das PropertyBag-Objekt für Sie.

    Nun aber (endlich) zur praktischen Anwendung des PropertyBag-Objekts.

    Speichern von Einstellungen

    ' Speichern
    Private Sub Properties_Save()
      Dim F As Integer
     
      ' Neues PropertyBag-Objekt erstellen
      Dim myPropBag As New PropertyBag
     
      ' Einstellungen zunächst im PropertyBag-Objekt speichern
      With myPropBag
        .WriteProperty "UserName", txtUserName.Text, ""
        .WriteProperty "UserID", Val(txtUserID.Text), 0
        .WriteProperty "UserPic", picUser.Picture, Nothing
      End With
     
      ' Jetzt den Inhalt des PropertyBags speichern
      ' Falls die Datei existiert - vorher löschen!
      If Dir$(App.Path & "\user.dat", vbNormal) <> "" Then _
        Kill App.Path & "\user.dat"
     
      F = FreeFile
      Open App.Path & "\user.dat" For Binary As #F
      Put #F, , myPropBag.Contents
      Close #F
    End Sub

    Wie Sie am obigen Code sehen, wird über die WriteProperty-Methode eine Einstellung im PropertyBag-Objekt gespeichert. Der erste Parameter bestimmte den Namen, über den Sie dann später die Einstellung wieder den Controls oder Variablen zuweisen können. Der zweite Parameter legt den zu speichernden Inhalt fest. Hierbei kann es sich um einen beliebigen Datentyp handeln. Der dritte Parameter ist optional und legt den Default-Wert (Standard-Wert) der Einstellung fest. Die Angabe ist dahingehend nützlich, dass die Einstellung nur dann gespeichert wird, wenn Sie vom Default-Wert abweicht. Ist das PropertyBag mit allen Daten gefüllt, so kann dieses über seine Contents-Eigenschaft in eine Datei gespeichert werden. Aber Achtung! Die Datei muss im binären Format geöffnet werden, da ein späteres Einlesen sonst zu einem Laufzeitfehler führt!

    Lesen der Einstellung

    ' Lesen
    Private Sub Properties_Load()
      Dim F As Integer
      Dim vInhalt As Variant
     
      ' Neues PropertyBag-Objekt erstellen
      Dim myPropBag As New PropertyBag
     
      ' Datei-Inhalt einlesen
      If Dir$(App.Path & "\user.dat", vbNormal) <> "" Then
        F = FreeFile
        Open App.Path & "\user.dat" For Binary As #F
        Get #F, , vInhalt
        Close #F
     
        ' Inhalt dem PropertyBag-Objekt zuweisen
        myPropBag.Contents = vInhalt
     
        ' Einstellungen den Controls zuweisen
        With myPropBag
          txtUserName.Text = .ReadProperty("UserName", "")
          txtUserID.Text = CStr(.ReadProperty("UserID", 0))
          Set picUser.Picture = .ReadProperty("UserPic", Nothing)
        End With
      End If
    End Sub

    Fazit:Das PropertyBag-Control eignet sich hervorragend, um Anwender- oder Anwendungseinstellungen zu speichern - vor allem, wenn es sich um Einstellungen verschiedener Datentypen handelt (wie Bilder, oder ähnliches).
     

    Dieser Tipp wurde bereits 21.488 mal aufgerufen.

    Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

    Über diesen Tipp im Forum diskutieren
    Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

    Neue Diskussion eröffnen

    nach obenzurück


    Anzeige

    Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
    (einschl. Beispielprojekt!)

    Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
    - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
    - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
    Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
     
       

    Druckansicht Druckansicht Copyright ©2000-2015 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