Главная страница
    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.45 MB
Время: 0.041 c
14-1117127529
palva
2005-05-26 21:12
2005.06.29
Про гнилой строй


14-1117743898
Олег-Николаев
2005-06-03 00:24
2005.06.29
Сайт


3-1116844274
ass1
2005-05-23 14:31
2005.06.29
опять isc4.gdb


14-1116820938
Alex Konshin
2005-05-23 08:02
2005.06.29
ICQ клиент


1-1118208961
Mefodiy
2005-06-08 09:36
2005.06.29
Число строк в документе Word





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский