Q&A

  • TChart를 그림으로 저장하려고 하는데..
TChart부분만 bmp파일로 저장하려고 합니다.

Chart1.CopyToClipboardBitmap라는 함수를 사용하면 될것같은데

어떻게 해야하나요?

1  COMMENTS
  • Profile
    김경태 2000.09.21 04:52
    아래소스는 차트영역을 캡춰해서 저장 하는 거예요...

    Tchart에서 제공하는 메소드로 할 수있는방법을 원하시는 것 같은데..

    저두 잘모르겠내요.저두 찾고있는중..알게되면..저두 알려주세요..

    그럼 도움이 되셨으면...



    procedure TReport21.Button1Click(Sender: TObject);

    var

    DeskTopDC: HDc;

    DeskTopCanvas: TCanvas;

    BitmapRect: TRect;

    Bitmap: TBitmap;

    GifImage : TGIFImage;

    begin

    try

    GifImage := TGIFImage.Create;

    Bitmap := TBitmap.Create; {BMP를 저장할 bitmap 생성}

    BitMap.Width := Chart1.Width;

    BitMap.Height := Chart1.Height;

    BitmapRect := Rect(0, 0, Chart1.Width, Chart1.Height); {Chart1 영역}



    {전체 window의 device context(DC) 을 얻는다}

    DeskTopDC := GetWindowDC(Chart1.Handle);

    DeskTopCanvas := TCanvas.Create;

    DeskTopCanvas.Handle := DeskTopDC; {전체 window의 canvas를 얻습니다}



    // BitmapRect영역의 DeskTopCanvas에서 BitmapRect영역의 Bitmap.Canvas로 복사

    Bitmap.Canvas.CopyRect(BitmapRect, DeskTopCanvas, BitmapRect);

    GifImage.Assign(Bitmap);

    if SaveDialog1.Execute then

    GifImage.SaveToFile(SaveDialog1.FileName);

    finally

    ReleaseDC(GetDeskTopWindow, DeskTopDC);

    DeskTopCanvas.Free;

    Bitmap.Free;

    end;

    end;



    호야 wrote:

    > TChart부분만 bmp파일로 저장하려고 합니다.

    > Chart1.CopyToClipboardBitmap라는 함수를 사용하면 될것같은데

    > 어떻게 해야하나요?