2016-01-21 97 views
0

我們在應用程序中有許多圖表,我們允許用戶在Word中生成報表。我們通過調用CopyToClipboardBitmapTChart執行此操作,然後將其粘貼到Word文檔的適當位置。保存/複製到剪貼板時設置TChart的大小

但是,我們遇到的問題是,位圖的分辨率是基於其當前在屏幕上呈現的大小。因此,低分辨率桌面上的用戶,或者碰巧不會運行應用程序的用戶最終會在生成的Word文檔中獲得相當低分辨率的圖像。

我們希望能夠在執行CopyToClipboardBitmap之前設置分辨率。無論如何要做到這一點?

注意,我們使用CopyToClipboardMetafile(有真假兩作爲參數),並且似乎有在圖像的大小是根據屏幕上所呈現的尺寸類似的問題嘗試。這會導致文檔中的軸,標籤等文本變大時文本過大。所以,我們又回到了希望能夠以指定CopyToClipboardBitmap/CopyToClipboardMetafile/SaveToBitmapFile/SaveToMetafile/SaveToMetafileEnh基於呈現大小。

回答

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軟件支持論壇here同樣的問題。

+0

謝謝。這是記錄在任何地方?我們無法訪問Steema源代碼,所有我能找到的都是http://www.teechart.net/docs/teechart/vclfmx/lib/html/TCustomTeePanel.CopyToClipboardBitmap.html,再加上Delphi 2010似乎並不在Steema方法上提供自動完成功能(可能因爲我們沒有源代碼)。 –

+0

檢查庫路徑並構建項目。方法和屬性自動完成應該在沒有源代碼的情況下工作。我們將修改在線文檔。 – Yeray