我正在编写我的Delphi TGraphicControl绘图程序.
我创建了一个画布,然后将它拉伸到图形区域.它运作良好.
然后我用另一个Stretchdraw重复这个到图形区域,但它在第一个Stretchdraw的区域绘制,而不是在我指导它的图形区域.
有没有办法可以在TGraphicControl的画布中将两个stretchdraws放在一起?
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;