画一个封闭的框很容易,如何画成如图所示的漂亮框框? 

解决方案 »

  1.   

    可以试试下面这个函数
    PolyPolygon(
      DC: HDC;    {设备环境句柄}
      var Points; {点数组}
      var nPoints;{数组, 数组元素是每个多边形的顶点数}
      p4: Integer {多边形数, 也就是 nPoints 的元素数}
    ): BOOL;
    绘制一组多边形
      

  2.   

    canvas上画,一条线一条线的画也可以
      

  3.   

    moveto lineto 就可以了吧
      

  4.   

     left 
     top
     right
     bottom Canvas.Rectangle(left, top, right, bottom);矩形框是用这个代码画出来的,如何用 moveto lineto 画出我要的效果?
      

  5.   

    如果你只要实现这种图形,简单啊
    Canvas.Rectangle(10,10,110,110);
    Canvas.FillRect(Rect(30,10, 90, 110));
    Canvas.FillRect(Rect(10,30, 110, 90));
      

  6.   

    procedure DrawYours(c: TCanvas; r: TRect);
    const size = 5;
    var
      x, y: integer;
    begin
      x := (r.Right - r.Left) div size;
      y := (r.Bottom - r.Top) div size;
      c.Pen.Style := psSolid;  with c, r do
      begin
        MoveTo(left, top);
        LineTo(left, top + y);
        MoveTo(left, bottom);
        LineTo(left, Bottom - y);    MoveTo(left, top);
        LineTo(left + x, Top);
        MoveTo(right, top);
        LineTo(Right - x, top);    MoveTo(right, top);
        LineTo(Right, top + y);
        MoveTo(right, Bottom);
        LineTo(Right, Bottom - y);    MoveTo(Left, Bottom);
        LineTo(Left + x, bottom);
        moveto(Right, Bottom);
        LineTo(right - x, bottom);
      end;
    end;demo: drawYours( formX.canvas, rect(20,20,200,200));
    已搞定