Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

StringVar + RichEdit.Selection+ StringVar2   Найти похожие ветки 

 
Solo   (2004-11-22 09:26) [0]

Добрый день!
Имеем RichEdit.
Выделяем в нем слово, или фразу, или абзац, нажимаем на кнопку - выделение должно замениться на то же самое, только с левой и с правой стороны добавляются теги (допустим, html-редактор). Привожу простейший код:

procedure TForm1.acTagExecute(Sender: PObj);
 var Old_s, // старая строка (заменяемая)
     New_s, // будущая строка (заменяющая)
     otk_tag, zak_tag : String; // Открывающий и закрывающий теги
begin
// Жирный шрифт (к примеру)
 otk_tag := ""; //Это будет открывающий
 zak_tag := "
"; //А это - закрывающий
 Old_s := RichEdit1.Selection; //Инициализируем старую строку
 New_s := otk_tag + Old_s + zak_tag; // откр+выделение+закр
 RichEdit1.ReplaceSelection(New_s, true);//вставляем новую строку

end;


В результате выделение заменяется на "Открывающий тег"Само выделение - И... ВСЕ! Закрывающий тег не вставляется. Вернее, он вообще не прибавляется, и New_s у нас вместо ожидаемого otk_tag + Old_s + zak_tag равно otk_tag + Old_s + фигу с маслом.

RichEdit1.Selection имеет тип "String", значит, ни с каким чаром - пчаром заморочек тут нет. Если присваивать переменной Old_s какую нибудь строку от руки (Old_s := "Какая-нить строка"), тогда все нормально...
Может, тип KolRichEdit.Selection имеет тип String, но другой какой нибудь, не совсем стринговый :)?


 
Solo   (2004-11-22 09:32) [1]

Добавление: Черт, про теги я не подумал, что в хтмл-е они не отобразяться...
Но вы, думаю, поняли, что там должно быть. В принципе, разницы нет. Открывающая строка и закрывающая могут быть любыми. Главное, что закрывающая слетает...


 
Андрей ©   (2004-11-22 12:30) [2]

Похоже, RichEdit1.Selection заканчивается #0, а RichEdit1.ReplaceSelection(New_s, true) вставляет только до #0.

Попробуй проверять последний символ Old_S на #0 и отрезать его, если так.


 
Solo ©   (2004-11-23 09:57) [3]

Спасибо, Андрей, Вы были правы. Селекшн - точно, нуль-терминальный... Все получилось! Какая досада...



Страницы: 1 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.048 c
3-1116318471
jiny
2005-05-17 12:27
2005.06.29
Как возвращать из запроса sum(kol) не null, а 0


14-1117696261
Nik8.
2005-06-02 11:11
2005.06.29
Загадка - Два брата


4-1115173372
Алексей Петухов
2005-05-04 06:22
2005.06.29
Перехват конекстной F1


11-1101068644
Shamansky
2004-11-21 23:24
2005.06.29
Как в Delphi открыть dwg или dxf файлы


14-1117443817
Serg1981
2005-05-30 13:03
2005.06.29
Русский текст на BitBtn