Bug in chart editor BMP export

TeeChart VCL for Borland/CodeGear/Embarcadero RAD Studio, Delphi and C++ Builder.
Post Reply
ulibru
Newbie
Newbie
Posts: 15
Joined: Fri Jan 17, 2014 12:00 am

Bug in chart editor BMP export

Post by ulibru » Fri Jan 17, 2014 1:31 pm

Hi,

exporting a chart in BMP format by the chart editor seems to fail. It only exports one series. The preview shows all series correctly. But saving is not ok.

Uli

Yeray
Site Admin
Site Admin
Posts: 9602
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Re: Bug in chart editor BMP export

Post by Yeray » Fri Jan 17, 2014 4:14 pm

Hi Uli,

What exact TeeChart version and IDE are you using?
Also, please arrange a simple example project we can run as-is to reproduce the problem here.

Here with Delphi 7, Teechart Pro v2013.09, I create a new application, I drop a TChart and a TTeeCommander into the form and I use the following code:

Code: Select all

procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
  for i:=0 to 3 do
    Chart1.AddSeries(TBarSeries).FillSampleValues;
end;
Then, I open the editor through the commander and I export the chart as a bmp throught the "Save..." button in the "Export/Picture" tab, having "Bitmap" selected as Format. And here it is the result I get (I zipped the bmp because the forum doesn't allow bmp extension for the attachments):
test.zip
(30.15 KiB) Downloaded 725 times
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

ulibru
Newbie
Newbie
Posts: 15
Joined: Fri Jan 17, 2014 12:00 am

Re: Bug in chart editor BMP export

Post by ulibru » Fri Jan 17, 2014 5:11 pm

Hello Yeray,

it seems I have to dig a but deeper in my program.
Creating your test example also works here (Delphi XE4, TeeChart pro v2013.11).

But it does not work correctly in my application.
So if I load two series at once both series are exported. If I load one series, export it and then add another series the export of both series does not work, only the first series is still exported.
As this fault is not happening with a quick test example the problem must be caused by another reason. So I must dig in.
I'll come back.

Uli

ulibru
Newbie
Newbie
Posts: 15
Joined: Fri Jan 17, 2014 12:00 am

Re: Bug in chart editor BMP export

Post by ulibru » Wed Jan 22, 2014 2:47 pm

Hello again,

I like to come back to the problem.
So I have created a small project that you can download by https://drive.google.com/file/d/0B8QsTW ... sp=sharing
The project contains the pas, dfm, dpr file as well as the exe file (renamed as exx).
So you can run the program and add a curve by a button click. The chart editor will then automatically get opened.

So now simply add a curve, go to the export tab in the editor and check the bmp preview. Add another curve and check the preview again.
Obviously something is wrong as only the first curve is shown.

But I don't know what is the reason.

Here is the code of the test program:

Code: Select all

procedure TMainForm.Button1Click(Sender: TObject);
begin
  if (activeseries<1) or (activeseries>3) then
  begin
    activeseries := 1;
    Series1.Clear;
    Series2.Clear;
    Series3.Clear;
  end;
  case activeseries of
  1: Series1.FillSampleValues(100);
  2: Series2.FillSampleValues(100);
  3: Series3.FillSampleValues(100);
  end;
  activeseries := activeseries+1;
  ChartEditor1.Execute;
end;
Thanks in advance for your help.
I'm using XE4.

Uli

Yeray
Site Admin
Site Admin
Posts: 9602
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Re: Bug in chart editor BMP export

Post by Yeray » Thu Jan 23, 2014 10:22 am

Hello Uli,

Thanks for the project. The chart in your project has some settings made at design time, making a bit more difficult to identify what exact property or combination of properties is causing this.
I've identified it seems to happen when you use GDI and you initialize the hiding the Legend Shadow. So the options to workaround this are:
- Use GDI+ instead of GDI.
- Make the Legend Shadow visible at design time (or at FormCreate, before the chart has been drawn) and hide it at runtime, after a chart repaint.
Ie, in your project, if I add the FormCreate event and this code, it works fine:

Code: Select all

procedure TMainForm.FormCreate(Sender: TObject);
begin
   Chart1.Legend.Shadow.Visible:=true;
   Chart1.Draw;
   Chart1.Legend.Shadow.Visible:=false;
end;
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

ulibru
Newbie
Newbie
Posts: 15
Joined: Fri Jan 17, 2014 12:00 am

Re: Bug in chart editor BMP export [solved]

Post by ulibru » Thu Jan 23, 2014 10:40 am

Hello Yeray,

thanks.
I prefer to use your code example as I do not like the blurred GDI+ picture.

All the best (still wondering about the side effect of the legend shadow on BMP export)
Uli

Post Reply