<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=75076&amp;view=findpost&amp;p=534410</guid>
        <pubDate>Mon, 06 Dec 2004 13:30:54 +0000</pubDate>
        <title>Как сохранить настройки программы</title>
        <link>https://forum.sources.ru/index.php?showtopic=75076&amp;view=findpost&amp;p=534410</link>
        <description><![CDATA[CERBER: Готовый класс для работы с INI. Подключаешь его к проекту.<br>
<br>
Сохранение параметров: <br>
 <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">dim iNi as new clsIni</div><div class="code_line">&nbsp;iNi.Filename = path &amp; &quot;file.ini&quot;</div><div class="code_line">&nbsp;iNi.Value(&quot;Color&quot;, &quot;MainLable&quot;) = Me.lblMain.Backcolor</div><div class="code_line">&nbsp;iNi.UpdateFile</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
Загрузка параметров: <br>
 <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Dim iNi As New clsIni</div><div class="code_line">&nbsp;iNi.Filename = path &amp; &quot;file.ini&quot;</div><div class="code_line">&nbsp;Me.lblMain.Backcolor = iNi.Value(&quot;Color&quot;, &quot;MainLable&quot;)</div></ol></div></div></div></div>]]></description>
        <author>CERBER</author>
        <category>Настройки, реестр, ini</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=75076&amp;view=findpost&amp;p=534390</guid>
        <pubDate>Mon, 06 Dec 2004 13:18:01 +0000</pubDate>
        <title>Как сохранить настройки программы</title>
        <link>https://forum.sources.ru/index.php?showtopic=75076&amp;view=findpost&amp;p=534390</link>
        <description><![CDATA[SCINER: Кстати этого нет в факе, просьба добавить&#33;<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Option Explicit</div><div class="code_line">&nbsp;</div><div class="code_line">Private Declare Function GetPrivateProfileString Lib &quot;kernel32&quot; Alias _</div><div class="code_line">&quot;GetPrivateProfileStringA&quot; (ByVal Section As String, ByVal Key As String, _</div><div class="code_line">ByVal Default As String, ByVal GetStr As String, ByVal nSize As Long, _</div><div class="code_line">ByVal INIfile As String) As Long</div><div class="code_line">Private Declare Function WritePrivateProfileString Lib &quot;kernel32&quot; Alias _</div><div class="code_line">&quot;WritePrivateProfileStringA&quot; (ByVal Section As String, ByVal Key As String, _</div><div class="code_line">ByVal putStr As String, ByVal INIfile As String) As Long</div><div class="code_line">&nbsp;</div><div class="code_line">Dim CONFIG_FILE As String</div><div class="code_line">&nbsp;</div><div class="code_line">Sub Main()</div><div class="code_line">&nbsp;&nbsp;&#39;ПРИСВАИВАЕМ ПУТЬ К ФАЙЛУ С НАСТРОЙКАМИ С КОТОРЫМ ХОТИМ РАБОТАТЬ</div><div class="code_line">&nbsp;&nbsp;CONFIG_FILE = RCP(App.Path) &amp; &quot;options.ini&quot;</div><div class="code_line">&nbsp;&nbsp;&#39;ПРИ ПЕРВОМ ЗАПУСКЕ ВЫДАСТ &quot;ПУСТО&quot;</div><div class="code_line">&nbsp;&nbsp;&#39;ПРИ ВТОРОМ УЖЕ ВЫТАЩИТ СОХРАНЕННЫЕ ДАННЫЕ</div><div class="code_line">&nbsp;&nbsp;MsgBox SETS(&quot;МояНастройка&quot;, &quot;Пусто&quot;)</div><div class="code_line">&nbsp;&nbsp;&#39;ЗАПИШЕМ ДАННЫЕ В ФАЙЛ НАСТРОЕК</div><div class="code_line">&nbsp;&nbsp;SETS(&quot;МояНастройка&quot;) = &quot;Настроенные настройки&quot;</div><div class="code_line">&nbsp;&nbsp;End Sub</div><div class="code_line">&nbsp;</div><div class="code_line">&#39;ФУНКЦИЯ ВОЗВРАЩАЕТ СТРОКУ СО СЛЕШЕМ НА КОНЦЕ</div><div class="code_line">Function RCP(ByVal P As String)</div><div class="code_line">&nbsp;&nbsp;RCP = P &amp; IIf(VBA.Right(P, 1) = &quot;\&quot;, vbNullString, &quot;\&quot;)</div><div class="code_line">&nbsp;&nbsp;End Function</div><div class="code_line">&#39;ФУНКЦИЯ ФОРМАТИРОВАНИЯ СТРОКИ</div><div class="code_line">Function TrimNullChar(ByVal lpzString As String) As String</div><div class="code_line">&nbsp;&nbsp;lpzString = lpzString &amp; vbNullChar</div><div class="code_line">&nbsp;&nbsp;lpzString = VBA.Left$(lpzString, InStr(lpzString, vbNullChar) - 1)</div><div class="code_line">&nbsp;&nbsp;TrimNullChar = lpzString</div><div class="code_line">&nbsp;&nbsp;End Function</div><div class="code_line">&nbsp;</div><div class="code_line">&#39;ОБОЛОЧКА К ФУНКЦИИ ЧТЕНИЯ/ЗАПИСИ INI-ФАЙЛОВ</div><div class="code_line">Public Property Get SETS(ByVal Key As String, Optional ByVal Default As Variant) As Variant</div><div class="code_line">&nbsp;&nbsp;Dim Tmp As String</div><div class="code_line">&nbsp;&nbsp;Tmp = GetSettingIni(CONFIG_FILE, &quot;OPTIONS&quot;, Key, Default)</div><div class="code_line">&nbsp;&nbsp;SETS = Tmp</div><div class="code_line">&nbsp;&nbsp;End Property</div><div class="code_line">Public Property Let SETS(ByVal Key As String, Optional ByVal Default As Variant, ByVal vNewValue As Variant)</div><div class="code_line">&nbsp;&nbsp;SaveSettingIni CONFIG_FILE, &quot;OPTIONS&quot;, Key, vNewValue</div><div class="code_line">&nbsp;&nbsp;End Property</div><div class="code_line">&nbsp;</div><div class="code_line">Private Function GetSettingIni(ByVal File As String, ByVal Section As String, ByVal Key As String, Optional ByVal Default As Variant) As Variant</div><div class="code_line">&nbsp;&nbsp;Dim Tmp As String, Ret As Long</div><div class="code_line">&nbsp;&nbsp;Tmp = VBA.Space$(16536)</div><div class="code_line">&nbsp;&nbsp;Ret = GetPrivateProfileString(Section, Key, vbNullString, Tmp, Len(Tmp), File)</div><div class="code_line">&nbsp;&nbsp;If Ret = 0 Then GetSettingIni = Default Else GetSettingIni = TrimNullChar(Tmp)</div><div class="code_line">&nbsp;&nbsp;End Function</div><div class="code_line">Private Sub SaveSettingIni(ByVal File As String, ByVal Section As String, ByVal Key As String, ByVal Value As Variant)</div><div class="code_line">&nbsp;&nbsp;Dim Ret As Integer, wS As String</div><div class="code_line">&nbsp;&nbsp;Ret = WritePrivateProfileString(Section, Key, CStr(Value), File)</div><div class="code_line">&nbsp;&nbsp;End Sub</div></ol></div></div></div></div>]]></description>
        <author>SCINER</author>
        <category>Настройки, реестр, ini</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=75076&amp;view=findpost&amp;p=137417</guid>
        <pubDate>Thu, 05 Dec 2002 11:46:17 +0000</pubDate>
        <title>Как сохранить настройки программы</title>
        <link>https://forum.sources.ru/index.php?showtopic=75076&amp;view=findpost&amp;p=137417</link>
        <description><![CDATA[Vasya2000: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>В модуле находятся две подпрограммы. <br>
<br>
<strong class='tag-b'>Public Sub SaveOptions(Frm As Form)</strong>  - запись настроек в реестр <br>
<strong class='tag-b'>Public Sub LoadOptions(Frm As Form)</strong>  - чтение настроек из реестра <br>
Настройки записываются текущему пользователю. Т.е. в Windows NT каждый пользователь будет иметь свои настройки.<br>
<br>
Использование: <br>
<br>
1) Выбрать форму, которая будет хранить в своих элементах настройки. Например в калькуляторе - frmMain<br>
<br>
2) В обработчик события формы OnLoad вставить строку<br>
<br>
<strong class='tag-b'>LoadOptions Me</strong> <br>
<br>
3) В обработчик события формы OnUnload вставить строку:<br>
<br>
<strong class='tag-b'>SaveOptions Me</strong> <br>
<br>
По умолчанию сохраняются/записываются только положение и размер окна приложения.<br>
<br>
Если Вы хотите сохранить в реестре ещё значение какого-нибудь элемента формы, то надо в свойствах этого элемента в поле Tag поставить значение &quot;Save&quot; (в процессе разработки формы, а не в RunTime) <br>
<br>
Например в калькуляторе можно было бы сохранять значения поля lcd0 <br>
<br>
Для этого надо просто присвоить свойству Tag этого поля значение Save<br>
<br>
И тогда, если вы вставляли ранее описанные строки в обработчики OnLoad и OnUnload, то значение этого поля будут записываться и считываться при запуске приложения и выходе из него.<br>
<br>
Это - в модуль. </div></div><br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Option Explicit</div><div class="code_line">&nbsp;</div><div class="code_line">Public Sub SaveOptions(Frm As Form)</div><div class="code_line">Dim Cont As Control</div><div class="code_line">SaveSetting App.Title, Frm.Name, &quot;(name)&quot;, Frm.Caption</div><div class="code_line">With Frm</div><div class="code_line">If Frm.WindowState &#60;&#62; vbMinimized Then</div><div class="code_line">SaveSetting App.Title, Frm.Name, &quot;_Form Wight&quot;, .Width</div><div class="code_line">SaveSetting App.Title, Frm.Name, &quot;_Form Height&quot;, .Height</div><div class="code_line">SaveSetting App.Title, Frm.Name, &quot;_Form Top&quot;, .Top</div><div class="code_line">SaveSetting App.Title, Frm.Name, &quot;_Form Left&quot;, .Left</div><div class="code_line">End If</div><div class="code_line">&#39;Общие параметры приложение</div><div class="code_line">Dim НазваниеПараметра As String</div><div class="code_line">For Each Cont In Frm</div><div class="code_line">Select Case Left$(Cont.Tag, 5)</div><div class="code_line">Case &quot;Save:&quot;</div><div class="code_line">НазваниеПараметра = Mid$(Cont.Tag, 6, Len(Cont.Tag) - 5)</div><div class="code_line">SaveSetting App.Title, &quot;Shared&quot;, НазваниеПараметра, Cont</div><div class="code_line">Case Else</div><div class="code_line">End Select</div><div class="code_line">Next</div><div class="code_line">&nbsp;</div><div class="code_line">&#39;Параметры окна</div><div class="code_line">For Each Cont In Frm</div><div class="code_line">Select Case Cont.Tag</div><div class="code_line">Case &quot;Save&quot;</div><div class="code_line">Select Case IsArray(Cont)</div><div class="code_line">Case False</div><div class="code_line">SaveSetting App.Title, Frm.Name, Cont.Name, Cont</div><div class="code_line">Case True</div><div class="code_line">SaveSetting App.Title, Frm.Name, Cont.Name &amp; &quot; [&quot; &amp;Trim$(Str$(Cont.Index)) &amp; &quot;]&quot;, Cont</div><div class="code_line">End Select</div><div class="code_line">Case Else</div><div class="code_line">End Select</div><div class="code_line">Next</div><div class="code_line">End With</div><div class="code_line">End Sub</div><div class="code_line">&nbsp;</div><div class="code_line">Public Sub LoadOptions(Frm As Form)</div><div class="code_line">Dim Cont As Control</div><div class="code_line">&nbsp;</div><div class="code_line">With Frm</div><div class="code_line">Frm.Width = GetSetting(App.Title, Frm.Name, &quot;_Form Wight&quot;, .Width)</div><div class="code_line">Frm.Height = GetSetting(App.Title, Frm.Name, &quot;_Form Height&quot;, .Height)</div><div class="code_line">Frm.Top = GetSetting(App.Title, Frm.Name, &quot;_Form Top&quot;, .Top)</div><div class="code_line">Frm.Left = GetSetting(App.Title, Frm.Name, &quot;_Form Left&quot;, .Left)</div><div class="code_line">&nbsp;</div><div class="code_line">&#39;Общие параметры приложение</div><div class="code_line">Dim НазваниеПараметра As String</div><div class="code_line">For Each Cont In Frm</div><div class="code_line">Select Case Left$(Cont.Tag, 5)</div><div class="code_line">Case &quot;Save:&quot;</div><div class="code_line">НазваниеПараметра = Mid$(Cont.Tag, 6, Len(Cont.Tag) - 5)</div><div class="code_line">Cont = GetSetting(App.Title, &quot;Shared&quot;, НазваниеПараметра, Cont)</div><div class="code_line">Case Else</div><div class="code_line">End Select</div><div class="code_line">Next</div><div class="code_line">&nbsp;</div><div class="code_line">For Each Cont In Frm</div><div class="code_line">Select Case Cont.Tag</div><div class="code_line">Case &quot;Save&quot;</div><div class="code_line">Select Case IsArray(Cont)</div><div class="code_line">Case False</div><div class="code_line">Cont = GetSetting(App.Title, Frm.Name, Cont.Name, Cont)</div><div class="code_line">Case True</div><div class="code_line">Cont = GetSetting(App.Title, Frm.Name, Cont.Name &amp; &quot; [&quot; &amp;Trim$(Str$(Cont.Index)) &amp; &quot;]&quot;, Cont)</div><div class="code_line">End Select</div><div class="code_line">Case Else</div><div class="code_line">End Select</div><div class="code_line">Next</div><div class="code_line">End With</div><div class="code_line">End Sub</div><div class="code_line">&nbsp;</div><div class="code_line">Public Function Параметр(НазваниеПараметра As String, Optional Default)</div><div class="code_line">Параметр = GetSetting(App.Title, &quot;Shared&quot;, НазваниеПараметра, Default)</div><div class="code_line">End Function</div></ol></div></div></div></div><br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>С вами был BSP</div></div><br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Эта тема была разделена из темы &quot;<a class='tag-url' href='http://forum.sources.ru/index.php?showtopic=16830' target='_blank'>Настройки програмы&#33;&#33;&#33;</a>&quot;</span></span><br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Это сообщение было перенесено сюда или объединено из темы &quot;Как сохранить настройки программы&quot;</span></span>]]></description>
        <author>Vasya2000</author>
        <category>Настройки, реестр, ini</category>
      </item>
	
      </channel>
      </rss>
	