<?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=79243&amp;view=findpost&amp;p=574199</guid>
        <pubDate>Wed, 12 Jan 2005 15:27:29 +0000</pubDate>
        <title>OpenDialog без &amp;quot;uses Dialog&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=79243&amp;view=findpost&amp;p=574199</link>
        <description><![CDATA[krid24: <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">program opd;</div><div class="code_line">&nbsp;</div><div class="code_line">uses </div><div class="code_line">&nbsp;windows,commdlg;</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;ofn:TOpenFileName;</div><div class="code_line">&nbsp;s:string;</div><div class="code_line">&nbsp;f:array[0..MAX_PATH-1] of char;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;FillChar(f,sizeof(f),0);</div><div class="code_line">&nbsp;FillChar(ofn,sizeof(ofn),0);</div><div class="code_line">&nbsp;ofn.lStructSize := sizeof(OPENFILENAME);</div><div class="code_line">&nbsp;ofn.hwndOwner := 0;</div><div class="code_line">&nbsp;ofn.hInstance := hInstance;</div><div class="code_line">&nbsp;ofn.lpstrFilter:=&#39;Text Files (*.txt)&#39;#0&#39;*.txt&#39;#0&#39;Executables (*.EXE)&#39;#0&#39;*.exe&#39;#0&#39;All files (*.*)&#39;#0&#39;*.*&#39;#0#0;</div><div class="code_line">&nbsp;ofn.lpstrTitle := &#39;Select My File!&#39;;</div><div class="code_line">&nbsp;ofn.lpstrFile := f;</div><div class="code_line">&nbsp;ofn.nMaxFile := MAX_PATH;</div><div class="code_line">&nbsp;ofn.Flags := OFN_EXPLORER or OFN_CREATEPROMPT or OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST or &nbsp;OFN_ENABLESIZING;</div><div class="code_line">&nbsp;</div><div class="code_line">if GetOpenFileName(ofn) then s:=ofn.lpstrFile;</div><div class="code_line">&nbsp;</div><div class="code_line">MessageBox(0,pchar(s),&#39;My file&#39;,0);</div><div class="code_line">end.</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>krid24</author>
        <category>Работа с файлами, форматы файлов и данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=79243&amp;view=findpost&amp;p=574167</guid>
        <pubDate>Wed, 12 Jan 2005 15:07:12 +0000</pubDate>
        <title>OpenDialog без &amp;quot;uses Dialog&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=79243&amp;view=findpost&amp;p=574167</link>
        <description><![CDATA[feriman: Вот так:<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">uses activeX;</div><div class="code_line">&nbsp;</div><div class="code_line">function GetFileNameFromBrowse(hOwner: LongInt; var sFile: string;</div><div class="code_line">&nbsp;&nbsp;sInitDir, sDefExt, sFilter, sTitle: string): Boolean;</div><div class="code_line">&nbsp;</div><div class="code_line">implementation</div><div class="code_line">&nbsp;</div><div class="code_line">function SHGetFileNameFromBrowse(hOwner: LongInt; sFile: LPWSTR; nMaxFile:</div><div class="code_line">&nbsp;&nbsp;LongInt;</div><div class="code_line">&nbsp;&nbsp;sInitDir: LPWSTR; sDefExt, sFilter, sTitle: LPWSTR): Boolean;</div><div class="code_line">&nbsp;&nbsp;stdcall; external &#39;Shell32.dll&#39; index 63;</div><div class="code_line">&nbsp;</div><div class="code_line">//*************************** Код функций ****************************************</div><div class="code_line">&nbsp;</div><div class="code_line">function GetFileNameFromBrowse(hOwner: LongInt; var sFile: string;</div><div class="code_line">&nbsp;&nbsp;sInitDir, sDefExt, sFilter, sTitle: string): Boolean;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;sFileW, sInitDirW, sDefExtW, sFilterW, sTitleW: PWideChar;</div><div class="code_line">&nbsp;&nbsp;sFileL, sInitDirL, sDefExtL, sFilterL, sTitleL: Integer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;sFileW := CoTaskMemAlloc(255 * sizeof(WideChar));</div><div class="code_line">&nbsp;&nbsp;StringToWideChar(SFile, SFileW, 255);</div><div class="code_line">&nbsp;&nbsp;SInitDirL := Length(sInitDir) + 1;</div><div class="code_line">&nbsp;&nbsp;sInitDirW := CoTaskMemAlloc(SInitDirL * sizeof(WideChar));</div><div class="code_line">&nbsp;&nbsp;StringToWideChar(SInitDir, SInitDirW, sInitDirL);</div><div class="code_line">&nbsp;&nbsp;SDefExtL := Length(sDefExt) + 1;</div><div class="code_line">&nbsp;&nbsp;sDefExtW := CoTaskMemAlloc(SDefExtL * sizeof(WideChar));</div><div class="code_line">&nbsp;&nbsp;StringToWideChar(SDefExt, SDefExtW, sDefExtL);</div><div class="code_line">&nbsp;&nbsp;SFilterL := Length(sFilter) + 1;</div><div class="code_line">&nbsp;&nbsp;sFilterW := CoTaskMemAlloc(SFilterL * sizeof(WideChar));</div><div class="code_line">&nbsp;&nbsp;StringToWideChar(SFilter, SFilterW, sFilterL);</div><div class="code_line">&nbsp;&nbsp;STitleL := Length(sTitle) + 1;</div><div class="code_line">&nbsp;&nbsp;sTitleW := CoTaskMemAlloc(STitleL * sizeof(WideChar));</div><div class="code_line">&nbsp;&nbsp;StringToWideChar(STitle, STitleW, sTitleL);</div><div class="code_line">&nbsp;&nbsp;Result := SHGetFileNameFromBrowse(hOwner, sFileW, Integer(sFileW), sInitDirW,</div><div class="code_line">&nbsp;&nbsp; &nbsp;sDefExtW, sFilterW, sTitleW);</div><div class="code_line">&nbsp;&nbsp;SFile := sFileW;</div><div class="code_line">&nbsp;&nbsp;CoTaskMemFree(sFileW);</div><div class="code_line">&nbsp;&nbsp;CoTaskMemFree(sInitDirW);</div><div class="code_line">&nbsp;&nbsp;CoTaskMemFree(sDefExtW);</div><div class="code_line">&nbsp;&nbsp;CoTaskMemFree(sFilterW);</div><div class="code_line">&nbsp;&nbsp;CoTaskMemFree(sTitleW);</div><div class="code_line">end;</div></ol></div></div></div></div><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">if GetFileNameFromBrowse(handle, b1, &#39;c:\Install&#39;, &#39;*.txt&#39;,</div><div class="code_line">&nbsp;&nbsp;&#39;Текстовые файлы&#39;#0&#39;*.txt&#39;#0&#39;Все файлы&#39;#0&#39;*.*&#39;#0#0 &nbsp; &nbsp; &nbsp;, &#39;Название&#39;) then</div><div class="code_line">begin</div><div class="code_line">&nbsp;</div><div class="code_line">end;</div></ol></div></div></div></div><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;<a class='tag-url' href='http://forum.sources.ru/index.php?showtopic=79213' target='_blank'>OpenDialog без &quot;uses Dialog&quot;</a>&quot;</span></span>]]></description>
        <author>feriman</author>
        <category>Работа с файлами, форматы файлов и данных</category>
      </item>
	
      </channel>
      </rss>
	