我需要在一个image里实时画图。后来发现canvas的在第一次画上东西时,尺寸已经固定,大小可以有cliprect读出。但是我需要将图像放大,却改变不了canvas的大小,超出范围的都被裁掉。我的方法是,为了保持图形的准确性,我在每次resize的时候,没有选择bitblt,总是重新画图,可是发现了上述的问题。我没有试用bitblt会怎么样,不过如果还是向canvas Copy的话,不是还会遇到同样的问题吗?可能仍旧会有一部分被裁掉。问题有点奇怪,为什么不允许改变canvas的尺寸呢?有没有别的变通的方法?
procedure TfrmMain.palTimeImgResize(Sender: TObject);
......
ClearCanvas(imgTime);
DrawCoor(imgTime, tTimeMediaCoor, 'S', strShow, 12, 4);
DrawScanCurve(imgTime, tTimeMediaCoor, tmTime, tValue, tTimeScanInfo.nMax,
tTimeScanInfo.nMin, tTimeScanInfo.nStep);
......
end;
三个过程分别为清空作图区,画坐标,画图形。现象如上所述。还有个问题,Align和Anchors属性联合使用时好象会混乱,现在还没有找出规律。继续做。
Image1.Picture.Bitmap.Width := Image1.Width;
Image1.Picture.Bitmap.Height := Image1.Height;这样就可以啦,而且是不需要重绘的