Настройки записываются текущему пользователю.
Т.е. в Windows NT каждый
пользователь будет иметь свои настройки.
Использование:
1) Выбрать форму, которая будет хранить в своих
элементах настройки.
Например в калькуляторе - frmMain
2)
В обработчик события формы OnLoad вставить строку
LoadOptions Me
3)
В обработчик события формы OnUnload вставить строку:
SaveOptions Me
По умолчанию сохраняются/записываются только
положение и размер окна
приложения.
Если Вы хотите сохранить в реестре ещё значение
какого-нибудь элемента
формы, то надо в свойствах этого элемента в поле
Tag поставить значение
"Save" (в процессе разработки формы, а не в
RunTime)
Например в калькуляторе можно было бы сохранять
значения поля lcd0
Для этого надо просто присвоить свойству Tag этого
поля значение Save
И тогда, если вы вставляли ранее описанные строки
в обработчики OnLoad и
OnUnload, то значение этого поля будут записываться и
считываться при
запуске приложения и выходе из него.
Это - в
модуль.
Option Explicit
Public Sub SaveOptions(Frm As Form)
Dim Cont As Control
SaveSetting App.Title, Frm.Name, "(name)", Frm.Caption
With Frm
If Frm.WindowState <> vbMinimized Then
SaveSetting App.Title, Frm.Name, "_Form Wight", .Width
SaveSetting App.Title, Frm.Name, "_Form Height", .Height
SaveSetting App.Title, Frm.Name, "_Form Top", .Top
SaveSetting App.Title, Frm.Name, "_Form Left", .Left
End If
'Общие параметры приложение
Dim НазваниеПараметра As String
For Each Cont In Frm
Select Case Left$(Cont.Tag, 5)
Case "Save:"
НазваниеПараметра = Mid$(Cont.Tag, 6, Len(Cont.Tag) - 5)
SaveSetting App.Title, "Shared", НазваниеПараметра, Cont
Case Else
End Select
Next
'Параметры окна
For Each Cont In Frm
Select Case Cont.Tag
Case "Save"
Select Case IsArray(Cont)
Case False
SaveSetting App.Title, Frm.Name, Cont.Name, Cont
Case True
SaveSetting App.Title, Frm.Name, Cont.Name & " [" &
Trim$(Str$(Cont.Index)) & "]", Cont
End Select
Case Else
End Select
Next
End With
End Sub
Public Sub LoadOptions(Frm As Form)
Dim Cont As Control
With Frm
Frm.Width = GetSetting(App.Title, Frm.Name, "_Form Wight", .Width)
Frm.Height = GetSetting(App.Title, Frm.Name, "_Form Height", .Height)
Frm.Top = GetSetting(App.Title, Frm.Name, "_Form Top", .Top)
Frm.Left = GetSetting(App.Title, Frm.Name, "_Form Left", .Left)
'Общие параметры приложение
Dim НазваниеПараметра As String
For Each Cont In Frm
Select Case Left$(Cont.Tag, 5)
Case "Save:"
НазваниеПараметра = Mid$(Cont.Tag, 6, Len(Cont.Tag) - 5)
Cont = GetSetting(App.Title, "Shared", НазваниеПараметра,
Cont)
Case Else
End Select
Next
For Each Cont In Frm
Select Case Cont.Tag
Case "Save"
Select Case IsArray(Cont)
Case False
Cont = GetSetting(App.Title, Frm.Name, Cont.Name, Cont)
Case True
Cont = GetSetting(App.Title, Frm.Name, Cont.Name & " [" &
Trim$(Str$(Cont.Index)) & "]", Cont)
End Select
Case Else
End Select
Next
End With
End Sub
Public Function Параметр(НазваниеПараметра As String, Optional
Default)
Параметр = GetSetting(App.Title, "Shared",
НазваниеПараметра, Default)
End Function
С вами был BSP