<?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=410283&amp;view=findpost&amp;p=3704777</guid>
        <pubDate>Wed, 01 Feb 2017 07:12:08 +0000</pubDate>
        <title>Lazarus + IniFile + свой класс HELP&amp;#33;</title>
        <link>https://forum.sources.ru/index.php?showtopic=410283&amp;view=findpost&amp;p=3704777</link>
        <description><![CDATA[Федосеев Павел: Возможно, что ini файл считывается в память, а потом все данные берутся из памяти.<br>Я бы попробовал вместе со считыванием файла уточнять время последней модификации. Если текущее значение времени модификации не совпало со временем в переменной, то нужно организовать перечитывание ini файла с диска. Скорее всего в классе TIniFile есть такой метод.<br><br>Или же совсем просто. Удалить поле TIniFile, а при чтении настроек всегда заново создавать переменную этого класса.]]></description>
        <author>Федосеев Павел</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410283&amp;view=findpost&amp;p=3704729</guid>
        <pubDate>Tue, 31 Jan 2017 16:54:34 +0000</pubDate>
        <title>Lazarus + IniFile + свой класс HELP&amp;#33;</title>
        <link>https://forum.sources.ru/index.php?showtopic=410283&amp;view=findpost&amp;p=3704729</link>
        <description><![CDATA[DemonXpPro: Всем привет&#33;<br>
Просьба помочь в следующей проблеме:<br>
есть свой класс, в котором есть свойства, на свойства повешены функции считывания из файла.<br>
Класс создается при запуске программы и не уничтожается.<br>
Проблема состоит в том, что когда я запрашиваю нужное свойство в первый раз - оно считывается из файла и возвращается, но если запросить во время выполнения, тогда ничего не меняется, возвращается тоже самое что в первый раз, должно произойти считывание из ini файла, но этого не происходит, не могу никак понять почему.<br>
Чтобы лучше понять, можно сделать запрос по таймеру на эту функцию, и начать изменять в файле нужный ident в нужной section, будет видно, что при изменении в файле, в свойство класса не возвращается измененное значение, я в замешательстве (попробовал в delphi 7, там норм работает, в Lazarus не хочет) :(<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">unit SettingsHelper;</div><div class="code_line">&nbsp;</div><div class="code_line">interface</div><div class="code_line">&nbsp;</div><div class="code_line">uses Classes, SysUtils, IniFiles;</div><div class="code_line">&nbsp;</div><div class="code_line">type</div><div class="code_line">&nbsp;</div><div class="code_line">{ TSettings }</div><div class="code_line">&nbsp;</div><div class="code_line">TSettings = class</div><div class="code_line">&nbsp;&nbsp; &nbsp;private</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;iSettingsFile: TIniFile;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function GetBaseCurrency: String;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;procedure SetBaseCurrency(Value: String);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function GetSettingsFileName: String;</div><div class="code_line">&nbsp;&nbsp; &nbsp;public</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;constructor Create();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;destructor Destroy(); override;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;property BaseCurrency: String read GetBaseCurrency write SetBaseCurrency;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">const</div><div class="code_line">&nbsp;&nbsp; &nbsp;cSettingsFileName = &#39;settings&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;cSettingsFileExt = &#39;.conf&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;szSettings = &#39;Settings&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">implementation</div><div class="code_line">&nbsp;</div><div class="code_line">function TSettings.GetBaseCurrency: String;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;Result := iSettingsFile.ReadString(szSettings, &#39;BaseCurrency&#39;, &#39;&#39;);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TSettings.SetBaseCurrency(Value: String);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;iSettingsFile.WriteString(szSettings, &#39;BaseCurrency&#39;, Value);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">function TSettings.GetSettingsFileName: String;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;Result := ExtractFileDir(ParamStr(0)) + &#39;\&#39; + cSettingsFileName + cSettingsFileExt;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">constructor TSettings.Create();</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;inherited;</div><div class="code_line">&nbsp;&nbsp; &nbsp;iSettingsFile := TIniFile.Create(GetSettingsFileName);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">destructor TSettings.Destroy();</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;iSettingsFile.Free;</div><div class="code_line">&nbsp;&nbsp; &nbsp;inherited;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">end.</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>DemonXpPro</author>
        <category>32-битные компиляторы</category>
      </item>
	
      </channel>
      </rss>
	