当前位置:  开发笔记 > 编程语言 > 正文

如何在自定义TGraphicControl上拉伸两个图形彼此相邻?

如何解决《如何在自定义TGraphicControl上拉伸两个图形彼此相邻?》经验,为你挑选了1个好方法。

我正在编写我的Delphi TGraphicControl绘图程序.

我创建了一个画布,然后将它拉伸到图形区域.它运作良好.

然后我用另一个Stretchdraw重复这个到图形区域,但它在第一个Stretchdraw的区域绘制,而不是在我指导它的图形区域.

有没有办法可以在TGraphicControl的画布中将两个stretchdraws放在一起?



1> Rob Kennedy..:

TCanvas.StretchDraw将图形绘制到给定矩形区域的画布上.矩形应该但不一定要在画布的范围内.画布的所有者确定了那些边界.在您的情况下,它听起来像画布所有者是TGraphicControl对象.

如果要将两个图形彼此相邻绘制,则TRect用于绘制第一个图形的图像应表示与TRect用于第二个图形的矩形相邻的矩形.你还没有显示任何代码,所以很难分辨出什么是错误的.

如果TRect对两个调用使用相同的变量StretchDraw,则需要确保修改矩形在调用之间的位置 - 更改Left属性,对于初学者.

例如:

var
  r: TRect;
begin
  r := ClientRect;
  // First rectangle takes up left half of control
  r.Right := r.Right div 2;
  Canvas.StretchDraw(r, graphic1);

  // Shift the rectangle to the right half
  r.Left := r.Right;
  r.Right := ClientRect.Right;
  Canvas.StretchDraw(r, graphic2);
end;

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有