1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, RichEdit;
type
TForm1 = class(TForm)
RichEdit1: TRichEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Déclarations privées }
public
procedure Surligne(const RE: TRichEdit; const Color: TColor);
procedure SupprSurligne(const RE: TRichEdit);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.SupprSurligne(const RE: TRichEdit);
var
Format : CHARFORMAT2;
begin
FillChar(Format, SizeOf(CHARFORMAT2), 0);
memset(Format.cbSize := SizeOf(CHARFORMAT2);
SendMessage(RE.Handle, EM_GETCHARFORMAT, WPARAM(True), LPARAM(@Format));
Format.dwMask := CFM_BACKCOLOR;
Format.dwEffects := CFE_AUTOBACKCOLOR;
SendMessage(RE.Handle, EM_SETCHARFORMAT, SCF_SELECTION, LPARAM(@Format))
end;
procedure TForm1.Surligne(const RE: TRichEdit; const Color: TColor);
var
Format : CHARFORMAT2;
begin
FillChar(Format, SizeOf(CHARFORMAT2), 0);
Format.cbSize := SizeOf(CHARFORMAT2);
SendMessage(RE.Handle, EM_GETCHARFORMAT, WPARAM(True), LPARAM(@Format));
Format.dwMask := CFM_BACKCOLOR;
Format.crBackColor := ColorToRGB(Color);
Format.dwEffects := 0; // CFE_AUTOBACKCOLOR
SendMessage(RE.Handle, EM_SETCHARFORMAT, SCF_SELECTION, LPARAM(@Format))
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Surligne(RichEdit1, clRed);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
SupprSurligne(RichEdit1);
end;
end. |
Partager