Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];

Вниз

Как в RichEdit Выводить строку с заданным стилем?   Найти похожие ветки 

 
h0use   (2003-12-17 10:50) [0]

Уважаемые мастера, есть вопрос. Есть нека строка, которую надо неким цветом (например, красным) вывести в ричедите, при все при этом остальной текст должен остоваться черным. Как это проделать? Искал, искал, но так и не нашел :(


 
Babay   (2003-12-17 11:24) [1]

Richedit - SelAttributes - F1


 
VAleksey   (2003-12-17 11:51) [2]

Найти номер символа начала строки и конца, выделить (SelStart, SelLength) + Babay © (17.12.03 11:24).


 
h0use   (2003-12-17 12:15) [3]

Не совсем то хотелось...как Babay я просто вывожу строку, а хотелось добавить по Add строку так, чтоб часть ее была одного стиля нежели другая, например есть строка "тестовая строка", хочется вывести ее в Риче как " тестовая строка"


 
Babay   (2003-12-17 12:25) [4]

прямой функции нет.
см. VAleksey © (17.12.03 11:51) [2]
но для твоего примера ищем начало слова "строка"


 
h0use   (2003-12-17 12:37) [5]

Т.е. как я понял, сначала методом Add мы добавляем строку в RichEdit, а потом выделяя по кускам назначаем стили?

А можно добовлять строку в Ричедит кусками?


 
Babay   (2003-12-17 12:42) [6]

Richedit1.Lines[<№ твоей строки>]:=Richedit1.Lines[<№ твоей строки>]+"<следующийкусок>";


 
h0use   (2003-12-17 12:45) [7]

Спасибо, я сам додумался, буду тебе экспериментить на тему, будет ли при таком добавлении меняться стиль добавляемого элемента


 
Babay   (2003-12-17 12:45) [8]

sorry glyknulo
1. да все верно ты понял

2. Richedit1.Lines[<№ твоей строки>]:=Richedit1.Lines[<№ твоей строки>]+"<следующийкусок>";

Тока строка при этом должна уже существовать. Т.е. первый кусок по add или insert


 
h0use   (2003-12-17 13:26) [9]

Кстати, а как быстро получить номер последней строки?


 
h0use   (2003-12-17 13:37) [10]

Увы свойства селекта почему-то остаются на всю строку :(


 
h0use   (2003-12-17 13:47) [11]

Вот процедура вывода

procedure TfmMain.AddChatText(AString:String);
var
I: Integer;
S: string;
P: Integer;
begin
reChat.SelAttributes.Style:=[fsBold];
reChat.Lines.Add("["+DateTimeToStr(Now)+"]");
S:=Copy(AString,2,Pos("]",AString)-2);
reChat.SelAttributes.Style:=reChat.SelAttributes.Style-[fsBold];
if S=BAConn.Login then reChat.SelAttributes.Style:=[fsItalic]
else reChat.SelAttributes.Style:=[fsBold];
P:=reChat.Lines.Count-1;
reChat.Lines[P]:=reChat.Lines[P]+"["+S+"]";
S:=Copy(AString,Pos("]",AString)+1,Length(AString));
reChat.Lines[P]:=reChat.Lines[P]+S;
end; // AddChatText

При первом вызове процедуры получаем всю жирную строку (даже при выполнении проверки). При втром и далее вызове вообще никак не выделяет, просто кидает обычным шрифтом.

В чем грабли?


 
h0use   (2003-12-17 14:29) [12]

Ну так что?



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

Форум: "Основная";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
3-99441
123456
2003-12-05 22:56
2003.12.30
WinXP pro and MSSQL 2000 Enteprise Edition


6-99663
killer
2003-11-01 21:18
2003.12.30
Компонент: изменилось ли содержание WWW-странички?


14-99753
i80486
2003-12-06 19:35
2003.12.30
-=


1-99552
f3n
2003-12-18 07:05
2003.12.30
---> StringGrid и шрифты


6-99664
Vinter
2003-11-03 11:56
2003.12.30
как остановить работу IdHTTP1.Get





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский