Форум: "Основная";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];
ВнизТекст и цвет Найти похожие ветки
← →
Vadim SA (2002-10-16 16:35) [0]Как выделить автоматически определённый текст в Мемо , например красным "блболабла", зелёным "моболабла"...
← →
MBo (2002-10-16 16:40) [1]В мемо нельзя, в RichEdit см. SelXXX
← →
Vadim SA (2002-10-16 18:24) [2]А поподробней пожалуйста!
← →
pusrg (2002-10-16 20:08) [3]Если извращаться, можно везде, не только в Memo :)
Пример конечно сырой, но модифицируй его по своему желанию.
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons;
type
TForm1 = class(TForm)
Memo1: TMemo;
BitBtn1: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
MemoCanvas: TControlCanvas;
const
SelectText:string = "em";
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
MemoCanvas:=TControlCanvas.Create;
MemoCanvas.Control:=Memo1;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
MemoCanvas.free;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var CursorPos:TPoint;
SelRect, TextRect:TRect;
SizeText:TSize;
BeforeSelText:string;
i:integer;
begin
for i:=0 to Memo1.Lines.Count-1 do
begin
Memo1.SelStart:=Pos(SelectText, Memo1.Lines[i]);
BeforeSelText:=copy(Memo1.Lines[i], 1, Memo1.SelStart-1);
SizeText:=MemoCanvas.TextExtent(BeforeSelText);
SelRect.TopLeft:=Point(SizeText.cx+1, i*SizeText.cy);
SizeText:=MemoCanvas.TextExtent(SelectText);
SelRect.BottomRight:=Point(SelRect.Left+SizeText.cx, (i+1)*SizeText.cy);
MemoCanvas.Brush.Style:=bsSolid;
MemoCanvas.Brush.Color:=clRed;
MemoCanvas.FillRect(SelRect);
MemoCanvas.Brush.Style:=bsClear;
SizeText:=MemoCanvas.TextExtent(Memo1.Lines[i]);
TextRect.TopLeft:=Point(1,i*SizeText.cy);
TextRect.BottomRight:=Point(SizeText.cx, (i+1)*SizeText.cy);
MemoCanvas.TextRect(TextRect, TextRect.Left, TextRect.Top, Memo1.Lines[i]);
end;
end;
end.
← →
Vadim SA (2002-10-17 15:13) [4]Спасибо, поковырял и всё пошло как мне надо!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c