用canvas,先画一条直线,再在直线的前面画一个三角形不就成了吗!
具体的查一下Canvas的属性,我记得直线是LineTo,多边形我忘了
:-)

解决方案 »

  1.   

    你先画一条直线,在直线的尽头上下各加固定的值算出两个点,在直线前加几个点的值算出一个点,算出三个点连起来不就行了吗。给你一个小例程:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      ArrowHead : Array[1..3] of TPoint;
      s,e, y : integer;
    begin
        s := 100;
        e := 100;
        y := 5;
        self.Canvas.MoveTo(s,e);
        self.Canvas.LineTo((s + 100),e);
        ArrowHead[1].X :=s + 100;
        ArrowHead[1].Y := e - y;
        ArrowHead[2].X := s + 100;
        ArrowHead[2].Y := e + y;
        ArrowHead[3].X := s+ 100 + 25;
        ArrowHead[3].Y :=e;
        self.Canvas.Polygon(ArrowHead);
    end;