我现在正准备开发一个变电压方面的分布式软件,其中一项功能就是要实现将在变电压方面的一些工程图通过程序画出来,用户要能自己任意修改,然后是线将它们联系起来,同时还要对每加入的一个工程部件,通过设计功能对它进行操作,具体情况就好比在Delphi设计窗体时,将一些控件拖到窗体上,然后设置它的宽度,高度,字体等等。   请大家多给点意见,分不够再加!

解决方案 »

  1.   

    采用动态创建组件的方法,比如下面按下一个button就动态的产生一个panel里面有
    一个Image用来画一个圆
     procedure TForm1.buton1click(sender:Tobject);
     var
      temppanel:TPanel;
      tempImage:Timage;
     begin
      temppanel:=TPanel.create(self);//动态创建组件panel
      temppanel.parent:=form1;//在form1上显示temppanel
      //开始设置temppanel的位置
      temppanel.widthL=150;
      temppanel.height:=150;
      temppanel.top:=10;
      temppanel.left:=50;
      //动态创建组件Image
      tempImage:=TImage.create(self);
      tempImage.parent:=panel;//在temppanel上显示tempImage画图
     //开始设置tempImage相对temppanel的位置
      temppanel.widthL=120;
      temppanel.height:=120;
      temppanel.top:=10;
      temppanel.left:=10;
     //在tempImgae上画一个圆
     temppanel.canvas.ellipse(0,0,width,height);
    end;
      

  2.   

    不好意思应该是
    采用动态创建组件的方法,比如下面按下一个button就动态的产生一个panel里面有
    一个Image用来画一个圆
     procedure TForm1.buton1click(sender:Tobject);
     var
      temppanel:TPanel;
      tempImage:Timage;
     begin
      temppanel:=TPanel.create(self);//动态创建组件panel
      temppanel.parent:=form1;//在form1上显示temppanel
      //开始设置temppanel的位置
      temppanel.widthL=150;
      temppanel.height:=150;
      temppanel.top:=10;
      temppanel.left:=50;
      //动态创建组件Image
      tempImage:=TImage.create(self);
      tempImage.parent:=temppanel;//在temppanel上显示tempImage画图
     //开始设置tempImage相对temppanel的位置
      tempImage.widthL=120;
      tempImage.height:=120;
      tempImage.top:=10;
      tempImage.left:=10;
     //在tempImgae上画一个圆
     tempImage.canvas.ellipse(0,0,width,height);
    end;
      

  3.   

    要求旋转吗?
    likethewind(断箭) 的方法无法实现旋转功能,尤其是矩形的任意角度旋转。
      

  4.   

    我倒是有一个第三方的控件,是drowobject,可以在上面画控件的,但是没有源代码!!不过真的很好用的,不信你搜索www.eletech.com.cn,看上面的图片就知道好不好了,