这是一段用GDIPlus的绘图代码,
请问一下,如果要动态的产生无数R: TRect,如,R1:TRect,R2:TRect....
这样可以吗?因为我想控制每一个绘图的矩形,要移动或放大或缩小。。
但声明里,只有一个R。
var
  R: TRect;
procedure TForm1.Draw;
begin
  Refresh;
  Canvas.FillRect(R);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
  Button1.Caption := '绘制矩形';
end;procedure TForm1.Button1Click(Sender: TObject);
begin
  R := Bounds(80, 60, 60, 60);
  Randomize;
  Canvas.Brush.Color := Random($FFFFFF);
  Draw;
end;

解决方案 »

  1.   

    你并没有随机产生REct呀,一直就是一个Bounds(80, 60, 60, 60); 
    现对Rect的坐标做随机取值,然后在组成新的Rect
      

  2.   

    搞个数组吧
     R: Array [0..100] of TRect; 不固定的话搞个动态数组
    R: Array of TRect; 
      

  3.   

    写一个类,负责对rect管理,你需要把每一个rect都当作一个对象来对待,包括鼠标动作,选择,绘制等,把每一个rect都添加到一个rect列表中去,控制时,循环列表,找到鼠标所在位置的rect