如何得到像Word一样划线控件或方法(100分)

  • 主题发起人 主题发起人 LiGen
  • 开始时间 开始时间
L

LiGen

Unregistered / Unconfirmed
GUEST, unregistred user!
word 划线时,它只画一条线,并且划的线能通过鼠标操作,
而我用TShape划的线(直线,斜线),却包含一个矩形区域,
把面板挡住了一片,如何去掉这个矩形区域,只得到一条线,
并且这根线能感应鼠标事件,各位大虾有没有好方法,在下多谢了
 
private
BeginPoint,EndPoint:TPoint;//开始点,结束点

....
procedure TDrawForm.OnMouseDown(Sender:TObject; Button:TMouseButton;X,Y:Integer....)
begin
if button=mbLeft then// 开始画
begin
Canvas.Pen.Color:=clRed;
BeginPoint:=Point(X,Y);
EndPoint:=Point(X,Y);
end;
end;
procedure TDrawForm.OnMouseMove(Sender:TObject;shift:TShfitState;X,Y:Integer..)
begin
if ssLeft in Shift then //如果左键按下就画
begin
//擦除上一次画的
Canvas.Pen.Mode:=pmNotXor;
Canvas.MoveTo(BeginPoint.X,BeginPoint.Y);
Canvas.LineTo(EndPoint.X,EndPoint.Y);
//画
Canvas.Pen.Mode:=pmNotXor;
Canvas.MoveTo(BeginPoint.X,BeginPoint.Y);
Canvas.LineTo(X,Y);
EndPoint:=Point(X,Y);//记录上一次鼠标位置
end;
end;
你是不是要这样啊》
 
to NeutronDelphi
不是这样的,我是要不但划出线,而且要通过鼠标改变这根线的位置、长短、
宽窄等属性。
 
关注[8D]

控件可能是没有的了, 这种实现的具体应用难以统一(画线后,你的先跟什么关联,又或
要保存到某某文件)

自己写个组件吧
 
参考一下
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1616613
 
这有一个:
http://www.playicq.com/dispdoc.php?t=&id=2982
 
看看如下代码又没有用
begin
if line then
form1.canvas.lineto(x,y)
 
后退
顶部