关于绘图----这段代码如何改?

cowbo2 2009-08-17 11:59:09
这是一段用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;
...全文
63 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwp3321 2009-08-17
  • 打赏
  • 举报
回复
搞个数组吧
R: Array [0..100] of TRect;

不固定的话搞个动态数组
R: Array of TRect;
bdmh 2009-08-17
  • 打赏
  • 举报
回复
你并没有随机产生REct呀,一直就是一个Bounds(80, 60, 60, 60);
现对Rect的坐标做随机取值,然后在组成新的Rect
sanguomi 2009-08-17
  • 打赏
  • 举报
回复
你显示的时候也只显示一个?
bdmh 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cowbo2 的回复:]

不是,要画好多个矩形,但我又想对每天矩形进行管理。。
[/Quote]
写一个类,负责对rect管理,你需要把每一个rect都当作一个对象来对待,包括鼠标动作,选择,绘制等,把每一个rect都添加到一个rect列表中去,控制时,循环列表,找到鼠标所在位置的rect
cowbo2 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sanguomi 的回复:]
你显示的时候也只显示一个?

[/Quote]

不是,要画好多个矩形,但我又想对每天矩形进行管理。。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧