Автозапись
Home Up Автозапись Буфер обмена Долой пробелы DOS-программы Контролы в массиве Редактор VB Скрытые папки INI-файлы Лог-файлы Миминизация Звук в MP3 Советы

В модуле находятся две подпрограммы.
Public Sub SaveOptions(Frm As Form) - запись настроек в реестр
Public Sub LoadOptions(Frm As Form) - чтение настроек из реестра

Настройки записываются текущему пользователю. Т.е. в 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

 

Home ] Up ] О группе ] Статьи ] Исходники ] Орфография ] Проекты ] Наша рассылка ]

Хостинг от uCoz