vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

VB.NET - Ein- und Umsteiger
Re: Farbwert aus .ini für neue Form 
Autor: Manfred X
Datum: 19.11.17 06:48

Erstelle eine neue Klasse namens "IniAccess".
Public Class IniAccess
  <System.Runtime.InteropServices.DllImport("kernel32.dll", _
  SetLastError:=True)> _
  Private Shared Function GetPrivateProfileString _
              '...... ergänzen
  End Function
 
   <System.Runtime.InteropServices.DllImport("kernel32.dll", _
    SetLastError:=True)> _
   Private Shared Function WritePrivateProfileString _
             '.......
   End Function
 
 
   Private Shared _IniFilename As String
 
   Public Shared Property IniFileName() As String
        Set(value As String)
            If Not IO.File.Exists(value) Then
                Throw New ArgumentException("Datei nicht vorhanden")
            End If
            _IniFilename = value
        End Set
        Get
            Return _Inifilename
        End Get
   End Property
 
 
   Private Shared Function CheckIniParams(section As String, _
        Keyname As String) As Boolean
 
        If Not IO.File.Exists(_IniFilename) Then Return False
        If Not (IO.Path.GetExtension(_IniFilename).ToLower) = ".ini" Then _
          Return False
        If String.IsNullOrWhiteSpace(section) Then Return False
        If String.IsNullOrWhiteSpace(Keyname) Then Return False
        Return True
   End Function
 
 
    Public Shared Function SetStringToIni(Section As String, Keyname As String,
                                          StringToIni As String) As Boolean
 
        If Not CheckIniParams(Section, Keyname) Then Return False
 
        Dim result As Integer = WritePrivateProfileString _
                (Section, Keyname, StringToIni, _IniFilename)
 
        Return result > 0
 
    End Function
 
 
    Public Shared Function GetStringFromIni _
                            (ByVal Section As String, keyname As String,
                             ByRef StringFromIni As String, _
                Optional ByVal DefaultString As String = "leer") As Boolean
 
        Dim defstring As String
        If String.IsNullOrWhiteSpace(DefaultString) Then
            defstring = "leer"
        Else
            defstring = DefaultString
        End If
        StringFromIni = defstring
 
        If Not CheckIniParams(Section, keyname) Then Return False
 
        Dim keyvalue As New System.Text.StringBuilder(1024)
 
        Dim result As Integer = GetPrivateProfileString _
            (Section, keyname, defstring, keyvalue, _
             keyvalue.Capacity, _IniFilename)
        If result = 0 Then
            Return False
        Else
            StringFromIni = keyvalue.ToString
            Return True
        End If
    End Function
 
 
    Public Shared Function SetColorToIni _
                     (Section As String, Keyname As String, _
                      ColorToSet As System.Drawing.Color) As Boolean
 
        If Not CheckIniParams(Section, Keyname) Then Return False
 
        Dim keyvalue As String = ColorToSet.ToArgb.ToString()
 
        Return SetStringToIni(Section, Keyname, keyvalue)
    End Function
 
 
    Public Shared Function GetColorFromIni _
                   (Section As String, Keyname As String,
                    ByRef ColorFromIni As System.Drawing.Color, _
           Optional ByVal Defaultcolor As Color = Nothing) As Boolean
 
        ColorFromIni = Defaultcolor
        If Not CheckIniParams(Section, Keyname) Then Return False
 
        Dim defcolor As String
        If Defaultcolor = Nothing Then
            defcolor = Color.White.ToArgb.ToString
        Else
            defcolor = Defaultcolor.ToArgb.ToString
        End If
 
        Dim keyvalue As String = ""
        If GetStringFromIni(Section, Keyname, keyvalue, defcolor) Then
            Try
                ColorFromIni = Color.FromArgb(CInt(keyvalue.ToString))
            Catch
                Return False
            End Try
            Return True
        Else
            Return False
        End If
    End Function
End Class
Im Load-Eventhandler des Starformulars weist Du den Pfad der Ini-Datei
auf diese Klasse zu:
Dim IniFilename As String = _ IO.Path.Combine _
(My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData, _
"Einstellungen.ini")
 
IniAccess.IniFileName = IniFilename
Überall in Deinem Projekt ist es möglich zuzuweisen und abzufragen:
'Zuweisung:
 
Dim section As String = "Farbeinstellungen"
Dim keyname As String = "Hintergrundfarbe"
 
Dim Usercolor as Color
'ggf. zunächst Dialogabfrage der Farbe (UserColor)
'dann:
IniAccess.SetColorToIni(section, keyname, usercolor)
 
'Abfrage:
'optional kann eine DefaultColor vorgegeben werden
Dim IniColor as Color
IniAccess.GetColorFromIni(section, keyname, inicolor)
PbAnzeige.BackColor = inicolor
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Farbwert aus .ini für neue Form1.152Erwin116.11.17 22:29
Re: Farbwert aus .ini für neue Form637Franki17.11.17 00:33
Re: Farbwert aus .ini für neue Form662Manfred X17.11.17 06:04
Re: Farbwert aus .ini für neue Form625Erwin117.11.17 19:03
Re: Farbwert aus .ini für neue Form658Manfred X17.11.17 22:45
Re: Farbwert aus .ini für neue Form593Erwin118.11.17 16:30
Re: Farbwert aus .ini für neue Form622Manfred X19.11.17 06:48
Re: Farbwert aus .ini für neue Form694Erwin120.11.17 10:26

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