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


Автор: Bibimij 23.10.2005, 18:28
Хочу в ставить в RichEdit смайлы в формате gif (ну как в обычных чатах smile )! Как сделать? Ваши предложения! smile smile

Автор: Poseidon 23.10.2005, 19:45
В RichEdit никак. Используй RxRichEdit из библиотеки RxLib (есть в нашем FAQ)

Автор: Samhein 23.10.2005, 19:53
Взято из DRKB:

В стандартном RichEdit нельзя, для RichEdit с картинками используйте RichEdit из RxLib или JVCL.


Ниже представлен пример, который можно применить к 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; 

Автор: kukuwka 19.11.2006, 14:48
А как сделать обратную операцию? То есть есть RTF текст, с текстом и картинками. Необходимо найти в нем картинки, ну, допустим, смайлы, и сохранить их в файл???

Автор: W1zArD 19.11.2006, 15:12
в Jvcl бибилиотеке есть TjvRichEdit попробуй поработать с ним...

Автор: Bose 19.11.2006, 18:54
Цитата(W1zArD @  19.11.2006,  15:12 Найти цитируемый пост)
в Jvcl бибилиотеке есть TjvRichEdit попробуй поработать с ним...

там и пример есть по вставке смайлов, кстати smile 

Автор: Sunvas 19.11.2006, 20:01
Цитата(Bibimij @  23.10.2005,  18:28 Найти цитируемый пост)
смайлы в формате gif


Цитата(Samhein @  23.10.2005,  19:53 Найти цитируемый пост)
pict: TBitmap

Не думаю, что способ из ДРКБ автору не подойдет....

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