我想可以写一个循环;
FOR I=X1 TO X2
  FOR J=Y1 TO Y2
  INSERT INTO(YOUR TABLE)VALUES(X1+I,Y1+J)

解决方案 »

  1.   

    图形拾取问题,呵呵,不好意思,没有深究过!!
    当然你这样做也是可以的,就是cpu内存消耗大!
    但还要处理交点问题!
      

  2.   

    呵呵,你是不是在做服装的CAD软件压?在计算机中,图形都是由线段和点组成的,你这样做当然是可以的,只不过效率不是太高!老板急着要,就这样做吧,有空了再进一步求精!
      

  3.   

    看一下:
    http://www.truevcl.com
    有CAD控件
      

  4.   

    我找到了一个方法,供大家参考。
    var
      colornum:TColor;
      i:Integer;
    begin
      colornum:=100;
      for i:=0 to 100 do
      begin
        canvas.pen.width:=2;
        canvas.pen.color:=colornum;
        canvas.moveto(X1[i],Y1[i]);
        canvas.lineto(X2[i],y2[i]);
        colornum:=colornum+100;
        保存其中的x1,y1坐标处的颜色值到一个内存表中
      end;
    end;
    其中,canvas是一个后台画布,可用tbitmap来创建,大小与前台画布一致,查找时只要将在后台画布中取鼠标当前位置坐标的颜色值,在内存表中查找,如果存在,表明选中了一个图形。