Текущий архив: 2007.03.18;
Скачать: CL | DM;
Вниз
Как правильно добавлять разноцветные строки в RichEdit? Найти похожие ветки
← →
lics (2007-02-28 13:40) [0]К примеру мне надо добавить в RichEdit строку "rgb", чтобы буквы r, g и b соответственно были clRed, clGreen и clBlue. Как это правильно сделать?
← →
Elen © (2007-02-28 13:53) [1]
> lics (28.02.07 13:40)
типа :var t:Tcolor;
begin
t:=clred or clgreen;
caption:=ColorToString(GetRValue(t))+" "+ColorToString(GetGValue(t))+
ColorToString(GetBValue(t));
end;
← →
Elen © (2007-02-28 13:55) [2]
> lics (28.02.07 13:40)
А, в смысле каждая буква разного цвета?
← →
lics (2007-02-28 13:57) [3]Прошу прощения, наверное не правильно сформилировал вопрос. Нужно, чтобы строка "rgb" была разноцветная (каждая буква разным цветом). Цвет роли не играет...
← →
lics (2007-02-28 14:01) [4]Вот так все работает:
r.Lines.Add("rgb");
r.SelStart:=Length(r.text)-5;
r.SelLength:=1;
r.SelAttributes.Color:=clRed;
r.SelStart:=r.SelStart+1;
r.SelLength:=1;
r.SelAttributes.Color:=clGreen;
r.SelStart:=r.SelStart+1;
r.SelLength:=1;
r.SelAttributes.Color:=clBlue;
Но по-моему это "левое" решение.
Наверняка можно сделать как-нибудь иначе через DefAttributes...
← →
Elen © (2007-02-28 14:13) [5]
> Но по-моему это "левое" решение.
Рабочее решение левым не бывает. ;)
← →
lics (2007-02-28 14:17) [6]А есть какая-нибудь альтернатива? Что-нибудь наподобии:
r.SelAttributes.Color:=clRed;
r.AddText("r");
r.SelAttributes.Color:=clGreen;
r.AddText("g");
r.SelAttributes.Color:=clBlue;
r.AddText("b"+#13#10);
← →
Dmitrij_K (2007-02-28 16:09) [7]procedure AddText(const aText: AnsiString; aColor: TColor);
var k : Integer;
begin
k := RichEdit1.GetTextLen;
RichEdit1.Perform(EM_SETSEL, k, k);
RichEdit1.SelAttributes.Color := aColor;
RichEdit1.Perform(EM_REPLACESEL, 0, Longint(PChar(aText)));
end;
Страницы: 1 вся ветка
Текущий архив: 2007.03.18;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.034 c