![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение цвета заливки в RichEdit [D6, XP]
Pavelkq © (2008-03-21 15:55:00)Имеется раскрашенный RichEdit. Красился так:
var CF: TCharFormat2;
begin
FillChar(CF.cbSize, SizeOf(TCharFormat2), 0);
CF.crBackColor:=clWhite;
CF.cbSize:= SizeOf(TCharFormat2);
CF.dwMask := CFM_BACKCOLOR;
SendMessage(RichEdit2.Handle, EM_SETCHARFORMAT, SCF_SELECTION, Integer(@CF));
end;
Хочу прочитать цвет обратно:
CF.cbSize:= SizeOf(CF);
SendMessage(RichEdit2.Handle, EM_GetCharFormat, 0, integer(@CF));
if CF.crBackColor=clWhite then ...
Не получается. Какие тут тонкости?
Palladin (2008-03-21 16:26:00) [1]хм... девствительно... ну тады держи
procedure TForm1.Button1Click(Sender: TObject);
var
CF: TCharFormat2;
begin
ZeroMem(@CF, SizeOf(TCharFormat2));
CF.cbSize:= SizeOf(TCharFormat2);
CF.crBackColor:=clRed;
CF.dwMask := CFM_BACKCOLOR;
SendMessage(RichEdit1.Handle, EM_SETCHARFORMAT, SCF_SELECTION, Integer(@CF));
end;
procedure TForm1.Button2Click(Sender: TObject);
var
CF: TCharFormat2;
begin
ZeroMem(@CF, SizeOf(TCharFormat2));
CF.cbSize:= SizeOf(TCharFormat2);
SendMessage(RichEdit1.Handle, EM_GetCharFormat, 1, integer(@CF));
ShowMessage(ColorToString(cf.crBackColor));
end;
наслаждайся, но учти. цвет фона берется только для символа перед курсором
Pavelkq (2008-03-21 16:10:00) [2]Дык SelAttributes понятия не имеет о заливке. Или имеет?
Palladin (2008-03-21 15:59:00) [3]эээ... а чего все так ректально? а SelAttributes чем не угодил?