Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2010, 14:09   #1
Razyiller
Пользователь
 
Регистрация: 31.03.2010
Сообщений: 50
По умолчанию обработка строк

Как обработать строку в которой есть коды смайликов, чтобы вывелся и текст и смайлик в RichView? что то не могу сообразить

Последний раз редактировалось Razyiller; 15.04.2010 в 14:14.
Razyiller вне форума Ответить с цитированием
Старый 15.04.2010, 14:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну как как...
например идешь циклом по строке и проверяешь
if copy(s,i,2)='' then Это смайлик
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.04.2010, 14:54   #3
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Есть еще функция pos в Sysutils. Она проверяет содержит ли строка x подстроку y (в данном случае смайлик) и возвращает ее позицию.
Вадим Буренков вне форума Ответить с цитированием
Старый 15.04.2010, 15:07   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

pos не удобна тем что ищет только первое вхождение.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.04.2010, 19:18   #5
Razyiller
Пользователь
 
Регистрация: 31.03.2010
Сообщений: 50
По умолчанию

Вот ошибочка получается в коде
Код:
 
   For q:=1 to ColSm do  
     For l:=1 to Length(text) do
        begin
         if copy(text,l,Length(SmileCod[q]))= SmileCod[q]
          then
            begin
             JvGIFAnimator1.Image:=SmileImage[q].Image;
             ChatRichEdit.AddControlEx('',JvGIFAnimator1 , -1, rvvaMiddle);
             ChatRichEdit.format;
            end;

        end;
ColSm- количество смайликов
Text - сообщение
SmileCod - массив кодов смайликов
SmileImage - массив JvGIFAnimator куда уже загружены смайлики

ошибка
Razyiller вне форума Ответить с цитированием
Старый 15.04.2010, 20:15   #6
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

1) Кто тебя научил делать так: JvGIFAnimator1.Image:=SmileImage[q].Image ???
2) ChatRichEdit.AddControlEx... ты хоть на немного help по компонентам читал? Или был на их форуме поддержки ? При выполнении AddControl объект помещается в компонент RichView и далее по твоему циклу если ты попытаешь хоть что-то сделать с JvGIFAnimator1 естественно будет ошибка - тебе придется создавать массив JvGIFAnimator`ов и про каждый после добавления в RichView, так сказать, забывать.
3) Я уже говорил тут на форуме о том, что очень не советую работать с RichView как с обычным Memo, т.е. бездумно пихать в него все можно. Нет конечно запихнуть можно, например, 200 JvGIFAnimator`ов со смайлами gif-формата размером 16х16 которые даже будут двигаться - даже самая мощная домашняя машина повиснет наглухо при попытке закрыть такую прогу. Почему? Потому что RichView при помещении в него такого сложного с точки зрения обработки ресурса компонента как JvGIFAnimator, создает для него отдельный процесс до которого никак не "долезть".
4) http://programmersforum.ru/showthrea...light=RichView
5) В прикрепленном файле пример очень давно написанный создателем компонентов RichView ...
Там все что тебе надо для понимания проблемы.
Вложения
Тип файла: zip chatcodes.zip (7.3 Кб, 16 просмотров)
"Заряженному танку в дуло не смотрят" @Dekmer in WoT

Последний раз редактировалось Kotofff; 15.04.2010 в 20:18.
Kotofff вне форума Ответить с цитированием
Старый 15.04.2010, 20:45   #7
Razyiller
Пользователь
 
Регистрация: 31.03.2010
Сообщений: 50
По умолчанию

спс разбераюсь
Razyiller вне форума Ответить с цитированием
Старый 16.04.2010, 23:12   #8
Razyiller
Пользователь
 
Регистрация: 31.03.2010
Сообщений: 50
По умолчанию

возникла проблема с обработкой строки в которой и тект и код смайлика, если есть варианты помогите
Код:
Код:

while l<=Length(ss) do
       begin
            if  ss[l]='#'
              then
                begin
                  ChatRichEdit.AddText(Copy(ss,0,l-1),0);
                  ChatRichEdit.ReFormat;
                  Delete(ss,0,l);
                 for q:=1 to colSm do
                  begin
           if (copy(ss,l,Length(SmileCod[q]))=SmileCod[q])and((copy(ss,l,Length(SmileCod[q]))<>''))
                      then
                        begin
                          ChatRichEdit.AddControlEx('',SmileImage[q] , -1, rvvaMiddle);
                          ChatRichEdit.reformat;
                          Delete(ss,l,Length(SmileCod[q]));
                        end;
                  end;
                end;

          l:=l+1;
       end;
Razyiller вне форума Ответить с цитированием
Старый 17.04.2010, 00:01   #9
Razyiller
Пользователь
 
Регистрация: 31.03.2010
Сообщений: 50
По умолчанию

УРА,разобрался,все работает
Razyiller вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка строк Dmitriy1989100 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 02.11.2009 22:28
обработка строк на Си HoOpe Помощь студентам 35 20.05.2009 19:11
Обработка строк kpactu Помощь студентам 0 12.05.2009 22:43
обработка строк Xunter Помощь студентам 4 27.06.2008 21:48