Mit den beiden nachfolgenden Routinen lassen sich Bildschirm-Eingabemasken temporär speichern und jederzeit wiederherstellen. Berücksichtigt werden Textboxen, Option- und Checkboxen sowie horizontale und vertikale Scrollbalken. Die einzelnen Werte der Controls werden hierbei in einer INI-Datei gespeichert und von dort aus auch wieder ausgelesen. Der Zugriff auf die INI-Datei erfolgt hierbei über die beiden WinAPI-Funktionen WritePrivateProfileString und GetPrivateProfileString. Diese beiden, sowie alle nachfolgenden Funktionen deklarieren Sie am besten in einem Modul: ' zunächst die benötigten API-Funktionen Public Declare Function GetPrivateProfileString Lib "kernel32" _ Alias "GetPrivateProfileStringA" ( _ ByVal lpApplicationName As String, _ ByVal lpKeyName As Any, _ ByVal lpDefault As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String) As Long Public Declare Function WritePrivateProfileString Lib "kernel32" _ Alias "WritePrivateProfileStringA" ( _ ByVal lpApplicationName As String, _ ByVal lpKeyName As Any, _ ByVal lpString As Any, _ ByVal lpFileName As String) As Long ' INI-Datei Public MyIniFile As String Public Sub Main() MyIniFile = App.Path & "\Controls.ini" End Sub Werte der Eingabecontrols eines Formulars speichern [Controls] Name=Inhalt Handelt es sich bei dem Control um ein Steuerelementfeld (also mit gesetzter Index-Eigenschaft), so wird der Index direkt hinter dem Controlnamen in runden Klammern angegeben. ' Inhalte der Controls speichern Public Sub SaveCtrlsTemp(ByVal Form As Form, _ ByVal IniSection As String) Dim Ctl As Control Dim x As String Dim value As String ' Alle Controls der übergebenen Form durchlaufen For Each Ctl In Form.Controls With Ctl x = .Name ' Prüfen, ob Steuerelementfeld (Array) On Local Error Resume Next x = x & "(" & CStr(.Index) & ")" On Local Error GoTo 0 End With value = vbNullString If TypeOf Ctl Is TextBox Then ' TextBox value = Ctl.Text ElseIf TypeOf Ctl Is HScrollBar Or _ TypeOf Ctl Is VScrollBar Then ' horiz./vertik. Scrollbar value = CStr(Ctl.value) ElseIf TypeOf Ctl Is OptionButton Or _ TypeOf Ctl Is CheckBox Then ' OptionButton/CheckBox value = CStr(Ctl.value) Else ' kann beliebig erweitert werden End If ' Inhalt/Wert speichern If value <> vbNullString Then WritePrivateProfileString IniSection, x, value, MyIniFile End If Next End Sub Die Prozedur erwartet zwei Paramater: Gespeicherte Werte auslesen und Control-Inhalte wiederherstellen ' Inhalte der Controls lesen Public Sub RestoreCtrlsTemp(ByVal Form As Form, _ ByVal IniSection As String) Dim Ctl As Control Dim x As String Dim value As String Dim lRet As Long ' Alle Controls der übergebenen Form durchlaufen For Each Ctl In Form.Controls With Ctl x = .Name ' Prüfen, ob Steuerelementfeld (Array) On Local Error Resume Next x = x & "(" & CStr(.Index) & ")" On Local Error GoTo 0 End With value = Space$(256) lRet = GetPrivateProfileString(IniSection, x, vbNullString, _ value, Len(value), MyIniFile) If lRet <> 0 Then value = Left$(value, lRet) If TypeOf Ctl Is TextBox Then ' TextBox Ctl.Text = value ElseIf TypeOf Ctl Is HScrollBar Or _ TypeOf Ctl Is VScrollBar Then ' horiz./vertik. Scrollbar Ctl.value = CInt(value) ElseIf TypeOf Ctl Is OptionButton Then ' OptionButton Ctl.value = CBool(value) ElseIf TypeOf Ctl Is CheckBox Then ' CheckBox Ctl.value = CInt(value) Else ' Kann beliebig erweitert werden End If End If Next End Sub Beispiel Private Sub Form_Load() ' Control-Inhalte wiederherstellen RestoreCtrlsTemp Me, "Controls Form1" End Sub Private Sub Form_Unload(Cancel As Integer) ' Control-Inhalt speichern SaveCtrlsTemp Me, "Controls Form1" End Sub Dieser Tipp wurde bereits 21.571 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
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. |
sevZIP40 Pro DLL Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
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. |