<?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=413469&amp;view=findpost&amp;p=3777226</guid>
        <pubDate>Sun, 02 Sep 2018 11:21:00 +0000</pubDate>
        <title>Не работает пример кода извлечение Bitmap из Richedit</title>
        <link>https://forum.sources.ru/index.php?showtopic=413469&amp;view=findpost&amp;p=3777226</link>
        <description><![CDATA[Katerina1993: Пытаюсь сделать вставку картинок в Richedit используя этот пример. <a class='tag-url' href='http://forum.sources.ru/index.php?showtopic=122578&st=0%EF%BF%BDentry921991' target='_blank'> Как вставить Bitmap в TRichEdit</a>. Потом хочу извлечь картинки как это сделано в этом примере <a class='tag-url' href='http://forum.sources.ru/index.php?showtopic=124640' target='_blank'>Извлечение BitMap из RichEdit</a>. Только вот у меня не получается не выполняется это условие <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 Succeeded(DataObject.GetData(FormatEtc, Medium)) then</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><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">procedure TForm1.Button5Click(Sender: TObject);</div><div class="code_line">var IREO:IRichEditOle;</div><div class="code_line">ReObject:TReobject;</div><div class="code_line">Count: Integer;</div><div class="code_line">I:Integer;</div><div class="code_line">DataObject:IDataObject;</div><div class="code_line">FormatEtc:TFormatEtc;</div><div class="code_line">Medium: TStgMedium;</div><div class="code_line">MetafilePictPtr: PMetafilePict;</div><div class="code_line">BitsLength: UINT;</div><div class="code_line">Bits: Pointer;</div><div class="code_line">&nbsp;</div><div class="code_line">MetaFile: TMetafile;</div><div class="code_line">bmp: TBitmap;</div><div class="code_line">Path:String;</div><div class="code_line">Position:LongInt;</div><div class="code_line">begin</div><div class="code_line">Count := 0;</div><div class="code_line">Path:=&#39;c:\temp2\richedit\&#39;;</div><div class="code_line">SendMessage(RichEdit1.Handle, EM_GETOLEINTERFACE, 0, Longint(@IREO));</div><div class="code_line">&nbsp;</div><div class="code_line">Count := IREO.GetObjectCount;</div><div class="code_line">for I := 0 to Count-1 do</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; ZeroMemory(@ReObject, SizeOf(ReObject));</div><div class="code_line">&nbsp;&nbsp; ReObject.cbStruct:=SizeOf(ReObject);</div><div class="code_line">&nbsp;&nbsp; if Succeeded(IREO.GetObject(I,ReObject, {text}000001)) then</div><div class="code_line">&nbsp;&nbsp; if ReObject.poleobj.QueryInterface(IDataObject,DataObject)=S_OK then</div><div class="code_line">&nbsp;&nbsp; if Supports(ReObject.poleobj,IDataObject,DataObject) then</div><div class="code_line">&nbsp;&nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Position:=ReObject.cp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;FormatEtc.cfFormat:=CF_METAFILEPICT;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;FormatEtc.ptd:=nil;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;FormatEtc.dwAspect:=DVASPECT_CONTENT;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;FormatEtc.lindex:=-1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;FormatEtc.tymed:=TYMED_MFPICT;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;OleCheck(DataObject.GetData(FormatEtc,Medium));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if Succeeded(DataObject.GetData(FormatEtc,Medium)) then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;try</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;MetafilePictPtr:=GlobalLock(Medium.hMetaFilePict);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;try</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; BitsLength:= GetMetaFileBitsEx(MetafilePictPtr.hMF,0,nil);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; GetMem(Bits,BitsLength);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; try</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if GetMetaFileBitsEx(MetaFilePictPtr.hMF, BitsLength, Bits) &#60; BitsLength then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;RaiseLastOSError;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MetaFile:=TMetafile.Create;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MetaFile.Handle:=SetWinMetaFileBits(BitsLength,Bits,0,MetafilePictPtr^);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (MetaFile.Width&#60;=0)or(MetaFile.Height&#60;=0)or(MetaFile.Handle&#60;=0)then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;raise Exception.Create(&#39;Invalid Metafile-Picture&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bmp:=TBitmap.Create;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bmp.Width:=MetaFile.Width;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bmp.Height:=MetaFile.Height;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bmp.Canvas.StretchDraw(Rect(0,0,bmp.Width,bmp.Height),MetaFile);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bmp.SaveToFile(Path+&#39;img&#39;+IntToStr(I+1)+&#39;.bmp&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; finally</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bmp.Free;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MetaFile.Free;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FreeMem(Bits, BitsLength);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;finally</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; GlobalUnlock(Medium.hMetaFilePict);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;finally</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; ReleaseStgMedium(Medium);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; </div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">end;</div></ol></div></div></div></div>]]></description>
        <author>Katerina1993</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      </channel>
      </rss>
	