![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| coolikov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 12.7.2005 Репутация: нет Всего: нет |
Есть такая проблема не могу правильно выделять и копировать текст из RichEdit
В richedit на определенном месте стоит текстовый курсор. Необходимо : текст от самого начала до курсора необходимо скопировать в строковую переменную, после этого скопировать от курсора до конца текста в другую. Вариант типа скопировать все из Richedit и потом поделить строковыми функциями на две половины прошел бы, но токо в том случае есди бы я знал позицию текстового курсора в строке(не в пикселях а в знакоместах, (т.е. например 7 или 8 символ, а не 115х100 пикс)) Помогите ПЛИЗЗЗ а то уже нервы здают!!! |
|||
|
||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
i:=RichEdit1.SelStart;
Вернет номер символа за которым курсор висит |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
|
|||
|
||||
| coolikov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 12.7.2005 Репутация: нет Всего: нет |
Огромное спасибо. Работает. Но в моей задаче оказалось не приминимо.
Вобщем то мне надо было осущ следующееЖ 1)вводить текст в richedit по кнопкам вставлять смайлы (СДЕЛАНО. смайлы беру из rtf) 2)при пасылке смайлы заменять на символьное представление (??????????) 3) при получении менять символьное представление на смайлы (СДЕЛАНО) вот второй пункт как осущ не знаюю Использовал только что предложенный Snowy кусок кода перед вставкой символа
но вот в чем беда, если вставлять один смайл то это катит, а если их больше то символьным представлением замениться только один символ (на котором стоит курсор) а все другие просто будут пробелами (RichEdit их так вернет в строковую переменную) мож кто посоветует реальный способ З.Ы. простите что неясно изьясняюсь но башка не варит уже |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
А. Всего-то.
|
|||
|
||||
| coolikov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 12.7.2005 Репутация: нет Всего: нет |
to Snowy:
ПРоблема не в том : У меня в Richedit нет симв представления смайлов там сразу картинки из rtf (как в ICQ в окне в котором ты пишешь нет символьного представления смайлов токо картинки) . А как в данном форуме например организованы смайлы(в окне где пишеш вставляеться не картинка Добавлено @ 13:22 Как думаете покатит? |
|||
|
||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
coolikov, Покатит, но символов маловато....
Смайл в форуме (да и везде) не есть один символ, это пследовательность символов, собственно как и везде....Так что проще тебе будет искать подстроку по шаблону.....Т.е. составляешь таблицу строк и соответствующих им картинок.....Потом с помощью SetPos (вроде так подстрока ищеться), определяешь положение смайлов и уже их рисуешь. |
|||
|
||||
| coolikov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 12.7.2005 Репутация: нет Всего: нет |
то ~FoX~
Эта задача решена Решаем как выполнить обратное преобразование ищу я в RichEdite а там картинки а не символьные представления. Я ж немогу искать определенную картинку(ИЛИ МОГУ??) и заменять ее на симв предст |
|||
|
||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
coolikov, Ты не так понял.....строка она и остается строкой (ты же посылаешь/принемаешь строку?), вот и работай с ней, а то что у тебя символы не отображаются как символы, а как картинки на контроле это уже дело десятое.
|
|||
|
||||
| coolikov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 12.7.2005 Репутация: нет Всего: нет |
To FOX
Да я принимаю и отправляю строку У меня (УЖЕ ГОТОВА) функция приема и перевода символьного представления в смайлы Т.Е. по приходу строки " :-)привет:-(" на ричедит1 выведеться " а вот счас надо наоборот: Юзер пишет в окне текст но ведь не красиво чтобы он смайлы вставлял такие ":-)" поэтому он жмет на кнопку и выбират смайл (прям как в ICQ) и в ричедите2 вставляеться смайл-картинка а не символьное представление(УЖЕ СДЕЛАЛ) осталось перед отправлением каким-то образом обработать данные в ричедите2 и заменить картинки на символьное представление ВОТ КАК ЭТО ОСУЩЕСТВИТЬ ??? |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Вручную обрабатывать все позиции, в которых находятся смайлики, т.е. при вставке запоминать позицию, соответственно, менять ее при корректировке, и т.д. -------------------- |
|||
|
||||
| coolikov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 12.7.2005 Репутация: нет Всего: нет |
ТО Демо
Думал так делать но тогда если пользователь отредактирует текст т.е. сотрет его или добавит, то позиции изменяться Добавлено @ 14:32 а отслеживать корректировку я думаю не так то просто (Делиты инсерты бекспейсы и .т.д) |
|||
|
||||
| ~FoX~ |
|
||||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
coolikov, Ну храни принятую/послонную/составленную строку отдельно, т.е. не надо ее брать из самого рича........Еще раз говорю, то что нарисовано в компаненте дело десятое....
Добавлено @ 15:06 Короче так..... Ты в риче пишеш текст, попутно вставляя туда смайлы....Смайлы у тебя кодяться последовательностью символов...Т.е. "привет
В итоге текст твоего рича выглядит так:
вот его и отправля/принемай/обрабатывай/рисуй etc. Если ты прям из текста рича выдираешь символы и рисуешь на их месте смайл, то парралельно заведи переменную s и в нее складируй не парсинную строку... Это сообщение отредактировал(а) ~FoX~ - 27.4.2006, 15:12 |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |