Вниз
Скачать: CL | DM;

Узнать раскраску фона RichEdit   Найти похожие ветки 

← →
картман ©   (2010-02-26 17:41) [0]

Всем доброго времени суток!

Нужно раскрашивать фон (шрифта?) RichEdit, крашу так:

procedure RESetSelBgColor(RichEdit: TRichEdit; AColor: TColor);
var
 Format: CHARFORMAT2;
begin
 FillChar(Format, SizeOf(Format), 0);
 with Format do
 begin
   cbSize := SizeOf(Format);
   dwMask := CFM_BACKCOLOR;
   crBackColor := AColor;
   Richedit.Perform(EM_SETCHARFORMAT, SCF_SELECTION, Longint(@Format));
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 RESetSelBgColor(RichEdit1, clYellow);
end;

Потом мне нужно получить смещение и длину всех раскрашенных областей. Получаю так:

function REGetSelBgColor(RichEdit: TRichEdit): Boolean;
var
 Format: CHARFORMAT2;
begin
 FillChar(Format, SizeOf(Format), 0);
 with Format do
 begin
   cbSize := SizeOf(Format);
   dwMask := CFM_BACKCOLOR;
   Richedit.Perform(EM_GETCHARFORMAT, SCF_SELECTION, Longint(@Format));
 end;
 Result := Format.crBackColor > 0;
end;

procedure TForm1.Button4Click(Sender: TObject);
var
 st: string;
 i: Integer;
 InSel: Boolean;
begin
 st := "";
 InSel := False;
 for i := 0 to Length(RichEdit1.Text) - 1 do
 begin
   RichEdit1.SelStart := i;
   RichEdit1.SelLength := 1;
   if REGetSelBgColor(RichEdit1) then
   begin
     if not InSel then
     begin
       InSel := True;
       st := st + #13#10 + IntToStr(i);
     end;
   end
   else begin
     if InSel then
       st := st + "-" + IntToStr(i - 1);
     InSel := False;
   end;
 end;
 ShowMessage(st);
end;

Как получить то же самое не посылая сообщение для каждого символа?


← →
KilkennyCat ©   (2010-02-26 18:26) [1]

посмотреть формат ртф и работать с ним нативно


← →
картман ©   (2010-02-26 21:54) [2]


> KilkennyCat ©   (26.02.10 18:26) [1]

о-ох...
спасибо.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.063 c
2-1271310301
vegarulez
2010-04-15 09:45
2010.08.27
Вопрос про XML


15-1264678479
Илья_
2010-01-28 14:34
2010.08.27
Norton Internet Security заблокировал и удалил файл SysConst.dcu


2-1262965161
novichek
2010-01-08 18:39
2010.08.27
передача объектов с DLL


3-1242884568
dort12
2009-05-21 09:42
2010.08.27
Сохранение всех файлов с blob поля


15-1266044160
AlexDan
2010-02-13 09:56
2010.08.27
Спрятать php файл




   Наверх