Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Image in TRichEdit


Автор: Гость_Lamer 13.10.2004, 02:24
А вообще может ли TRichEdit быть контейнером для, скажем, TImage?
если да, то опишите плз как это сделать

Автор: Alkash 13.10.2004, 02:36
RichEdit - это компонент для отображения текста......TImage в него не засунешь....

Автор: Alex 13.10.2004, 07:26
В стандартном RichEdit нельзя, для RichEdit с картинками используйте RichEdit из RxLib или JVCL.


Автор ответа Vit
Взято с Vingrad.ru http://forum.vingrad.ru


--------------------------------------------------------------------------------

Ниже представлен пример, который можно применить к RxRichEdit, RichEditEx, RichEdit98, и Microsoft RichTextBox (поставляемый с VB5+) не прибегая к использованию буфера обмена или OLE:

Код
function BitmapToRTF(pict: TBitmap): string;
var
 bi,bb,rtf: string;
 bis,bbs: Cardinal;
 achar: ShortString;
 hexpict: string;
 I: Integer;
begin
 GetDIBSizes(pict.Handle,bis,bbs);
 SetLength(bi,bis);
 SetLength(bb,bbs);
 GetDIB(pict.Handle,pict.Palette,PChar(bi)^,PChar(bb)^);
 rtf := '{\rtf1 {\pict\dibitmap ';
 SetLength(hexpict,(Length(bb) + Length(bi)) * 2);
 I := 2;
 for bis := 1 to Length(bi) do
 begin
   achar := Format('%x',[Integer(bi[bis])]);
   if Length(achar) = 1 then
     achar := '0' + achar;
   hexpict[I-1] := achar[1];
   hexpict[I] := achar[2];
   Inc(I,2);
 end;
 for bbs := 1 to Length(bb) do
 begin
   achar := Format('%x',[Integer(bb[bbs])]);
   if Length(achar) = 1 then
     achar := '0' + achar;
   hexpict[I-1] := achar[1];
   hexpict[I] := achar[2];
   Inc(I,2);
 end;
 rtf := rtf + hexpict + ' }}';
 Result := rtf;
end;


А вот пример использования этой функции:

Код
{SS это TStringStream, RE это TRxRichEdit, а BMP это TBitmap содержащий картинку.}
SS := TStringStream.Create(BitmapToRTF(BMP));
RE.PlainText := False;
RE.StreamMode := [smSelection];
RE.Lines.LoadFromStream(SS);
SS.Free;
Взято с Исходников.ru http://www.sources.ru

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)