Форум: "Основная";
Текущий архив: 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