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

Вниз

Как в 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.031 c
3-99443
OlegM
2003-12-08 07:37
2003.12.30
Локальная база без BDE и с возможностью использовать картинки


1-99518
Ko
2003-12-18 00:12
2003.12.30
Мастера Помогите с TreeView!!!!!!!!!!!!!


7-99797
Tanya
2003-10-23 13:15
2003.12.30
Путь к выполняемому приложению


6-99671
DimaK
2003-10-26 12:51
2003.12.30
Terminal


6-99674
Ev1972
2003-10-27 17:18
2003.12.30
Как сохранить Web-страничку локально?