vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 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 - Fortgeschrittene
Variablen als Objekte behandeln? 
Autor: Peter S.
Datum: 06.04.23 18:33

Hallo zusammen,

ich schreibe eine Klasse "Sett", die sehr einfach Settings speichern und wieder herstellen soll. Alle Objekte mit zu speichernden Eigenschaften werden einfach in eine Liste aufgenommen.

Class A
 
  Dim i as Integer = 123
 
  Dim S as New Sett
  S.List.Add(Me)       'Übergabe Form "Me"
  S.List.Add(Button1)  'Übergabe Button "Button1"
  S.List.Add(i)        'nur Übergabe Wert, nicht Übergabe Variable "i"
 
 
  'Einstellungen laden
  S.Load()
 
  ...
 
  'Einstellungen speichern
  S.Save()
 
End Class
 
 
 
Class Sett
  Dim List as New List(of Object)
 
  Sub Load()
    For Each o In List
      Load2(o)
    Next
  End Sub
 
  Sub Load2(F as Form)
    F.Text=...
    F.Location = ...
    F. Height ...
  End Sub
 
  Sub Load2(B as Button)
    B.Text=...
    B.Color = ...
  End Sub
 
  Sub Load2(i as Integer)
   i=...
  End Sub
 
End Class
Das funktioniert für echte Objekte, aber nicht für Variablen. Der Wert von i wird (logischerweise) nicht verändert. Hat jemand eine Idee, wie man das realisieren kann? Kann man Variablen als Objekt übergeben?

Beitrag wurde zuletzt am 06.04.23 um 18:50:29 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Variablen als Objekte behandeln? 
Autor: Peter S.
Datum: 06.04.23 19:30

Der Vollständigkeit halber ist noch zu erwähnen, dass die Settings der einzelnen Objekte serialisiert werden und in ein Dictionary(of String) geschrieben werden. Der Key ist dabei jeweils der Name des Objektes.


 Class Sett
  Dim List as New List(of Object)
  Dim Dict as new Dictionary(of String,String) 
 
  Sub Load()
    For Each o In List
      Load2(o)
    Next
  End Sub
 
  Sub Load2(F as Form)   
    Dim Settings as string = Dict(F.Name)   
    F.Text=...
    F.Location = ...
    F. Height ...
  End Sub
 
  Sub Load2(B as Button)
    Dim Settings as string = Dict(B.Name)
    B.Text=...
    B.Color = ...
  End Sub
 
  Sub Load2(i as Integer)
    Dim Settings as string = Dict(i.Name)  'Geht nicht
    i=...
  End Sub
 
End Class
Beim Deserialisieren, also beim Laden der Settings wird die entsprechende Einstellung anhand des Objektnamens ausgewählt. Bei Variablen aber so nicht möglich. Oder doch?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Variablen als Objekte behandeln? 
Autor: effeff
Datum: 07.04.23 13:09

Wenn Du schon Settings speichern willst, warum benutzt Du die dann nicht einfach?

https://learn.microsoft.com/de-de/dotnet/visual-basic/language-reference/objects/my-settings-object

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Variablen als Objekte behandeln? 
Autor: Peter S.
Datum: 18.04.23 17:42

Die Idee ist, mit einer eigenen Class die Settings von vielen unterschiedlichen Objekten und Variablen sehr einfach zu speichern.
Alle Daten werden serialisiert und in einer einzigen Setting
My.Settings.Alles
gespeichert.
Es müssen nicht etliche Settings angelegt werden und das Interface ist schön übersichtlich. Leider muss man für Variablen etwas mehr tippen, dafür kann man jetzt auch Default-Werte angeben, falls noch keine Settings gespeichert waren.
  Dim S as New Sett
  Dim i as Integer
  Dim a as String
 
  'Einstellungen Objekte definieren
  S.Add(Me)              
  S.Add(Button1)  
  S.Add(RichTextBox1) 
 
 
  'Einstellungen Objekte laden
  S.Load()                 'lädt Me, Button1, RichTextBox1
 
  'Einstellungen Variablen laden
  S.Load("i",i)            'lädt i
  S.Load("a",a,"default")  'lädt a, 
                           'falls keine Setting gespeichert, dann a="default"            
 
  ...
 
  'Einstellungen Objekte speichern
  S.Save()                 'speichert Me, Button1, RichTextBox1
 
  'Einstellungen Variablen speichern
  S.Save("i",i)            'speichert i
  S.Save("a",a)            'speichert a
Vielleicht hat ja jemand eine Idee, wie man das Interface noch weiter vereinfachen kann.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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