vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
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:  28.772 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

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 28.772 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-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