procedure TfrmXWBL.FormPaint(Sender: TObject);
var
aCanvas: Tcanvas;
X1, X2, Y,t,i: Integer;
byLineLength: BYTE;begin
aCanvas := TCanvas.Create;
Y := RichEdit1.Height;
try aCanvas.Handle := GetDC(RichEdit1.Handle);
t:=2+richedit1.DefAttributes.Height+6;
aCanvas.Pen.Color:=clskyblue;
acanvas.Pen.width:=1;
for i := 0 to RichEdit1.Lines.Count - 1 do
begin
//RichEdit1.
With aCanvas do
Begin
Begin
MoveTo(RichEdit1.Left+2,t); // Draw line after 80 characters
LineTo(RichEdit1.Width-1,t);
End;
end;
t:=t+richedit1.DefAttributes.Height+5;
end
Finally
ReleaseDC(RichEdit1.Handle,aCanvas.Handle);
aCanvas.Free;
End;
end;
各位高手,我想在richedit中的每行加一条线分隔,但是当richedit中的内容过多时,滚动滚动条就会把原来绘好的线条抹去。有没有办法在滚动滚动条时,原来划的行线保留。谢谢!
var
aCanvas: Tcanvas;
X1, X2, Y,t,i: Integer;
byLineLength: BYTE;begin
aCanvas := TCanvas.Create;
Y := RichEdit1.Height;
try aCanvas.Handle := GetDC(RichEdit1.Handle);
t:=2+richedit1.DefAttributes.Height+6;
aCanvas.Pen.Color:=clskyblue;
acanvas.Pen.width:=1;
for i := 0 to RichEdit1.Lines.Count - 1 do
begin
//RichEdit1.
With aCanvas do
Begin
Begin
MoveTo(RichEdit1.Left+2,t); // Draw line after 80 characters
LineTo(RichEdit1.Width-1,t);
End;
end;
t:=t+richedit1.DefAttributes.Height+5;
end
Finally
ReleaseDC(RichEdit1.Handle,aCanvas.Handle);
aCanvas.Free;
End;
end;
各位高手,我想在richedit中的每行加一条线分隔,但是当richedit中的内容过多时,滚动滚动条就会把原来绘好的线条抹去。有没有办法在滚动滚动条时,原来划的行线保留。谢谢!
解决方案 »
- TList.Add(),只增加最后一条记录!
- TWindowMedalplay控件问题
- 一个初级问题。。
- 急 fastreport中文开发文档及事例。顶就有分
- 为什么我批量产生的线程--传入的数据都变成了最后一次的那个?详情进来看看,很奇怪
- 遇到个问题不知如何解决!望高手指点!
- 用Query Analyzer可以登录到另一个机器SQL SERVER,SA是没能密码的,但用Enterprise Manager就不行??
- 电子书下载
- 网站开张,欢迎大家,可惜没多少分,不然就大散了
- xe7开发android,如何取屏幕颜色
- delphi 程序里有一个方法,方法里面的算法比较复杂,计算起来时间比较长,我想把这个方法单独放到一个线程里去执行,请问是怎么写?一点头绪没有啊,谢谢
- 把一个指针赋值给一个结构,怎么做?
加上你上面的代码
uses
Messages, Windows, Graphics, ComCtrls;type
TMyRichEdit = class(TRichEdit)
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
end;implementation{ TMyRichEdit }procedure TMyRichEdit.WMPaint(var Message: TWMPaint);
var
ACanvas: Tcanvas;
X1, X2, Y,t,i: Integer;
byLineLength: BYTE;
begin
inherited;
aCanvas := TCanvas.Create;
Y := Self.Height;
try
ACanvas.Handle := GetDC(Self.Handle);
t:=2+Self.DefAttributes.Height+6;
aCanvas.Pen.Color:=clskyblue;
acanvas.Pen.width:=1;
for i := 0 to Self.Lines.Count - 1 do
begin
With ACanvas do
Begin
Begin
MoveTo(Self.Left+2,t); // Draw line after 80 characters
LineTo(Self.Width-1,t);
End;
end;
t:=t+Self.DefAttributes.Height+5;
end
Finally
ReleaseDC(Self.Handle,ACanvas.Handle);
ACanvas.Free;
End;
end;然后动态创建这个控件即可