saved/copied 到剪贴板时设置 TChart 的大小

Setting the size of a TChart when saved/copied to clipboard

我们的应用程序中有许多图表,我们允许用户从中生成 Word 报告。为此,我们在 TChart 上调用 CopyToClipboardBitmap,然后将其粘贴到 Word 文档的适当位置。

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

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

请注意,我们已经尝试使用 CopyToClipboardMetafile(以 true 和 false 作为参数)并且这似乎有类似的问题,因为图像的大小是基于屏幕上的渲染大小。这会导致轴、标签等的文本在文档中变大时变得过大。所以我们回到希望能够指定 CopyToClipboardBitmap / CopyToClipboardMetafile / SaveToBitmapFile[=28] 的渲染大小=] / SaveToMetafile / SaveToMetafileEnh 基于.

您可以将 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