Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Про RichEdit и смайлы... я бессилен... 
:(
    Опции темы
Bibimij
  Дата 23.10.2005, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 19.8.2005

Репутация: нет
Всего: нет



Хочу в ставить в RichEdit смайлы в формате gif (ну как в обычных чатах smile )! Как сделать? Ваши предложения! smile smile
PM MAIL   Вверх
Poseidon
Дата 23.10.2005, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



В RichEdit никак. Используй RxRichEdit из библиотеки RxLib (есть в нашем FAQ)


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Samhein
Дата 23.10.2005, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Башзэфашовец
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 27.6.2005

Репутация: нет
Всего: 3



Взято из 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; 



--------------------
Знаю форум наизусть, но писать еще боюсь
PM   Вверх
kukuwka
Дата 19.11.2006, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 19.11.2006

Репутация: нет
Всего: нет



А как сделать обратную операцию? То есть есть RTF текст, с текстом и картинками. Необходимо найти в нем картинки, ну, допустим, смайлы, и сохранить их в файл???
PM MAIL   Вверх
W1zArD
Дата 19.11.2006, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 29.1.2006

Репутация: 3
Всего: 3



в Jvcl бибилиотеке есть TjvRichEdit попробуй поработать с ним...
PM   Вверх
Bose
Дата 19.11.2006, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 23
Всего: 51



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

там и пример есть по вставке смайлов, кстати smile 
PM MAIL WWW Skype   Вверх
Sunvas
Дата 19.11.2006, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



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


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

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


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0521 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.