Главная страница
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.023 c
9-99430
Land
2003-06-03 20:56
2003.12.30
Как узнать на какой угол повернута...


14-99765
mur
2003-12-06 16:26
2003.12.30
вывод дерева на экран


3-99488
BlackKing
2003-12-04 13:26
2003.12.30
Массив в параметре хранимой процедуры


14-99749
Vint
2003-12-02 09:45
2003.12.30
Кто, что думает по этому поводу?


14-99705
Dimaz-z
2003-12-09 14:12
2003.12.30
Будущее Delphi в целом.