Главная страница
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.039 c
10-1094755922
Комбинатор
2004-09-09 22:52
2005.06.29
Что такое corba и с чем её едят?


9-1111691522
Bret
2005-03-24 22:12
2005.06.29
Cosmos4D


6-1110568217
Bailey
2005-03-11 22:10
2005.06.29
pereslat record cheres UDP indy 10


1-1118318165
Cat
2005-06-09 15:56
2005.06.29
TComboBox ItemIdex


14-1117439308
Kolan
2005-05-30 11:48
2005.06.29
что такое xmas