Главная страница
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.017 c
3-99459
badis
2003-12-03 07:53
2003.12.30
Как сделать так, чтобы БД работала без BDE Administrator


14-99734
Desdechado
2003-12-05 16:53
2003.12.30
Кто пробовал Delphi 8


14-99722
Романов Р.В.
2003-12-08 09:35
2003.12.30
Задачка по физике


6-99665
St!ff
2003-10-28 23:39
2003.12.30
Поиск по фтп...


3-99454
ZSergey
2003-12-07 15:53
2003.12.30
Как передать зн. переменной в отчет QReport?