2012-09-19 6 views
0

TeeChart의 배경을 투명하게 만들 수 있습니까? v2011.03.32815 (Delphi XE2와 함께 제공되는 버전)를 사용하고 있습니다. 다소 실용적인 솔루션 인 here을 찾았지만 필요한 것은 아닙니다. 내 DBChart이 프레임 안에 있고 차트가 그려지는 배경이 변경 될 수 있습니다. 그래서, 어떤 아이디어?Delphi XE2의 TeeChart 투명도

+0

나는 이것을 시도해 본 적이 한 번도 없었습니다. – mj2008

답변

2

Yeray의 게시글은 here일까요? 백 비트 맵이 모든 차트 초기화해야한다는 사실을

procedure TFrame3.Chart1BeforeDrawChart(Sender: TObject); 
begin 
    MakeChartTransparent(Chart1, Back1); 
end; 

procedure TFrame3.Chart2BeforeDrawChart(Sender: TObject); 
begin 
    MakeChartTransparent(Chart2, Back2); 
end; 

procedure TFrame3.Chart3BeforeDrawChart(Sender: TObject); 
begin 
    MakeChartTransparent(Chart3, Back3); 
end; 

procedure TFrame3.MakeChartTransparent(Chart: TChart; var Back: TBitmap); 
begin 
    if not Assigned(Back) then 
    begin 
    Back:=TBitmap.Create; 
    Back.Width:=Chart.Width; 
    Back.Height:=Chart.Height; 

    Back.Canvas.CopyRect(Chart.ClientRect, (Self.Parent as TForm).Canvas, Chart.BoundsRect); 
    end; 

    if Chart.Color=clNone then 
    Chart.Canvas.Draw(0,0,Back); 
end; 

procedure TFrame3.Timer1Timer(Sender: TObject); 
begin 
    Chart1[0].FillSampleValues(); 
    Chart2[0].FillSampleValues(); 
    Chart3[0].FillSampleValues(); 
end; 

참고 :

는 다음과 같이 될 수있는 여러 차트 형식/패널에 적용했다.

폼의 한 OnCreate 이벤트에서 투명하여 차트를 설정하는 것을 잊지 마십시오

procedure TForm2.FormCreate(Sender: TObject); 
begin 
    Frame31.Chart1.Color:=clNone; 
    Frame31.Chart2.Color:=clNone; 
    Frame31.Chart3.Color:=clNone; 
end; 

전체 프로젝트가 here 사용할 수 있습니다.

+0

teechart 포럼에 제공된 예제와 동일합니다. 나는 그려지지 않을 * 뒷 패널이 필요합니다. –

+0

@iManBiglari 예, 죄송합니다. 스레드에서 해당 코드를 놓쳤습니다. 좀 더 자세히 조사해 드리겠습니다. –

+0

@iManBiglari 다시 살펴보면이 예제의 backgorund 이미지는 차트 패널이 완전히 투명 함을 증명하는 것입니다. 그 배경에 상관없이 그렇게해야합니다. 가능한 솔루션을 테스트 할 수 있도록 www.steema.net/upload/에서 문제의 예제 프로젝트를 보내주십시오. 미리 감사드립니다. –