TeeChart Transparency in Delphi XE2



是否可以使TeeChart的背景透明?我正在使用v2011.03.32815(德尔福XE2开箱即用的版本)。我在这里找到了一个可行的解决方案,但这不是我需要的。我的DBChart在框架内,绘制图表的背景可能会更改。那么,有什么想法吗?

Yeray 在这里发布的示例呢?

这适用于多图表表单/面板可能是这样的:

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;

完整的项目可在此处获得。

相关内容

  • 没有找到相关文章

最新更新