IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Изображение и RichEdit
Unconnected
сообщение 11.06.2009 20:34
Сообщение #1


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Допустим, имеется изображение(оно может быть разное) в RichEdit. Как его можно преобразовать в текст, чтобы для каждой картинки был свой "идентефикатор"? Помимо картинки в RichEdite может быть ещё и текст.

Сообщение отредактировано: Unconnected - 11.06.2009 20:39


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Unconnected
сообщение 12.06.2009 13:04
Сообщение #2


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Цитата
Насколько я понимаю, это для твоего ICQ-клиента, чтоб передавать и хранить в истории что-то типа : COOL : для отображения cool.bmp? Тогда можно сделать так: не преобразовывать изображение в текст, а наоборот. Смотри: заводишь переменную типа TStringList, которая будет хранить текст, отрисовываемый в RichEdit, и при получении от собеседника очередной строки текста, добавляешь ее не в RichEdit, а сначала в этот StringList, а уж потом содержимое добавленной строки отрисовываешь в RichEdit. Обычной функцией Pos можно искать идентификаторы картинок, их у тебя будет не так много, я думаю, и выводить новую строку в RE по частям: то, что ДО id картинки - это простой текст, потом вместо ID вставляешь картинку через тот же InsertBitmap, а потом - проверяешь оставшуюся часть строки на наличие ID... Как результат - в RichEdit хранится собственно отображение переписки, а StringGrid содержит готовую историю...

Добавлять изображения в RE можно точно так же: добавлять в текущую позицию каретки ID картинки, и тут же рисовать строку InsertBitmap-ом... Опять же понадобится доп. переменная для хранения строки с ID...


Ну, почти угадал...smile.gif Об реализации истории я ещё не думал, но там этот подход тоже пригодится. Для начала мне нужно научиться отправлять текст со смайлом. Я думал о том, что при отправке можно в РичЭдит выводить текст со смайлом, а в строковую переменную вводить сначала текст, а потом идентификатор смайла, и потом, при отправке через сокет, отправлять не содержимое РичЭдита, а содержимое строковой переменной. Но тут возникает небольшая проблема формирования строки. Вот допустим в РичЭдите строка "Hello, World" и улыбающийся смайл. Т.е. в строке, которая хранит текст с идентефикатором, находится "Hello, World SM1" (У меня все смайлы в ImageList'е, поэтому в качестве идентификатора будет выступать просто номер смайла). И тут вдруг пользователю приспичило после "Hello," поставить ещё один смайл. Возникает вопрос, на какое событие РичЭдита что нужно повесить, чтобы при добавлении смайла не в конец строки РичЭдита в нашей параллельной строке все это правильно отображалось(в плане идентификаторов смайлов)?


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Unconnected   Изображение и RichEdit   11.06.2009 20:34
volvo   А ты попробовал в стандартный TRichEdit запихать и...   12.06.2009 10:43
Unconnected   Картинка в RichEdit уже добавляется, в том и дело,...   12.06.2009 11:37
volvo   Насколько я понимаю, это для твоего ICQ-клиента, ч...   12.06.2009 12:39
Unconnected   Ну, почти угадал...:) Об реализации истории я ещ...   12.06.2009 13:04
Unconnected   Или ответ на мой вопрос кроется в этой фразе? Я ...   12.06.2009 14:40
volvo   :blink: Ты смотрел содержимое модуля, который при...   12.06.2009 14:58
Unconnected   Ну, я этой процедурой и добавляю, там нужно имя ри...   12.06.2009 15:07
volvo   Битмап всегда вставляется в текущую позицию, туда,...   12.06.2009 15:47
Unconnected   Ага, в принципе всё ясно... И ещё, как можно получ...   12.06.2009 15:51
volvo   "DRKB -> VCL -> TRichEdit -> Каретка...   12.06.2009 15:56
Unconnected   Спасибо, наконец иду дальше:)   12.06.2009 19:04
Unconnected   Возникло одно непредвиденное затруднение... Оформ...   16.06.2009 14:04
volvo   :yes2: Придется... Если хочешь сделать работоспос...   16.06.2009 15:16
Unconnected   Хм... ну допустим, а вот если в выделенном фрагм...   18.06.2009 19:39
volvo   Я окончательно запутался в том, что ты делаешь... ...   18.06.2009 21:06
Unconnected   Volvo, у тебя AlphaControls не установлен случаем?...   18.06.2009 21:42
Unconnected   Вот часть проекта с формированием строки, все комп...   18.06.2009 22:27


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 8.07.2025 11:37
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"