保存/复制到剪贴板时设置TChart的大小

时间:2016-01-21 12:07:30

标签: delphi delphi-2010 teechart

我们的应用程序中有许多图表,我们允许用户在Word中生成报告。我们通过在 TChart 上调用 CopyToClipboardBitmap ,然后将其粘贴到相应位置的Word文档中来完成此操作。

但是,我们遇到的问题是位图的分辨率是基于屏幕上当前渲染的大小。因此,低分辨率桌面上的人,或者碰巧没有运行应用程序最大化的人最终会在生成的Word文档中使用相当低分辨率的图像。

我们希望能够在执行 CopyToClipboardBitmap 之前设置分辨率。反正有吗?

注意,我们尝试使用 CopyToClipboardMetafile (同时使用true和false作为参数),并且似乎有类似的问题,因为图像的大小基于屏幕上的渲染大小。这导致在文档内变大时轴,标签等的文本过大。所以我们又想要能够指定 CopyToClipboardBitmap / CopyToClipboardMetafile / SaveToBitmapFile / SaveToMetafile / SaveToMetafileEnh 基于。

1 个答案:

答案 0 :(得分:2)

您可以将TRect设置为CopyToClipboardBitmap方法的参数。即:

procedure TForm1.Button1Click(Sender: TObject);
var tmpRect: TRect;
    tmpWidth, tmpHeight: Integer;
begin
  tmpRect:=Chart1.GetRectangle;
  tmpWidth:=tmpRect.Right-tmpRect.Left;
  tmpHeight:=tmpRect.Bottom-tmpRect.Top;
  tmpRect.Right:=tmpRect.Right+tmpWidth;
  tmpRect.Bottom:=tmpRect.Bottom+tmpHeight;
  Chart1.CopyToClipboardBitmap(tmpRect);
end;

我刚刚在Steema Software支持论坛here中回答了同样的问题。