用户名:  密码:   
您当前的位置:首页 > 程序设计 >  Delphi > 

再次或重复打开带有DBChart的窗口总是出错

上次修改时间: 2023-05-19 11:23:50      来源:网络总结      作者:钢铁长陈
上一页      路径:DSD\Learn\Delphi语言\第三方控件的安装与使用\TeeChart\      下一页

一直以为是没有释放查询或没有释放图标控件,搞了一两天找了释放相关的方法,最终发现只要把图表控件DBChart2.Visible := False;就可以了释放了

解决方法1:
把控制图表生成代码不要放在窗体的显示事件中,而应该放到Button按钮的点击事件,窗体显示事件中设置点击这个按钮的代码就可以了,如果不想显示该按钮直接把其显示事件设为False即可

解决方法2:有效:
终极解决方法:DBChart2.Visible := False;
procedure TChatFr.FormShow(Sender: TObject);
var
  S: TChartSeries;
begin
  DBChart2.Visible := False;   //主要语句1,必须要有这两句
  DbChart2.Title.Text.Text := 'test';
  DBChart2.SeriesList.Clear;
  S := TBarSeries.Create(DbChart2);
  DbChart2.AddSeries(S);
  ADOQuery1.close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add(sortsql);
  ADOQuery1.Open;
  S.DataSource := ADOQuery1;

  if Pos('salesdata', sortsql) <> 0 then
  begin
    S.XLabelsSource := 'shopname';
    S.YValues.ValueSource := 'salesmoney';
  end
  else
  begin
    S.XLabelsSource := 'cjsname';
    S.YValues.ValueSource := 'cjsmoney';
  end;

  S.ShowInLegend:=False;
  DBChart2.Gradient.StartColor:=clBlue;
  DBChart2.Gradient.EndColor:=clWhite;
  DBChart2.Gradient.Visible:=True;
  DBChart2.AllowPanning := pmNone;
  DBChart2.Align := alClient;
  DBChart2.Refresh;
  DBChart2.Visible := True;   //主要语句2,必须要有这两句
end;