Delphi 画箭头

procedure TForm1.Line(x, y, x2, y2: integer);
begin
  canvas.MoveTo(x, y);
  canvas.LineTo(x2, y2);
end;

procedure TForm1.Button1Click(Sender: TObject);

var
  x, y, len: integer;
  r: TRect;

begin
  r := self.ClientRect;
  len := r.Right - r.Left;
  if len < 5 then
    len := 5;
  if len > 10 then
    len := 10;
  canvas.Pen.Color := canvas.Font.Color;
  canvas.Pen.Width := 1;
  canvas.Pen.Style := psSolid;
  x := (r.Right + r.Left + len) div 2;
  y := (r.Top + r.Bottom) div 2;

  //Left Arrow
  Line(x, y, x - len - 1, y);
  begin
    x := x - len + 1;
    Line(x, y - 1, x, y + 2);
    inc(x);
    Line(x, y - 2, x, y + 3);
    inc(x);
    Line(x, y - 2, x, y + 3);
  end;


  //Right Arrow
  x := x + 100;
  Line(x, y, x - len - 1, y);
  begin
    dec(x);
    Line(x, y - 1, x, y + 2);
    dec(x);
    Line(x, y - 2, x, y + 3);
    dec(x);
    Line(x, y - 2, x, y + 3);
  end;
end;

 

转载于:https://www.cnblogs.com/cb168/p/4446349.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值