Steema Issues Database

Note: This database is for bugs and wishes only. For technical support help, if you are a customer please visit our online forums;
otherwise you can use StackOverflow.
Before using this bug-tracker we recommend a look at this document, Steema Bug Fixing Policy.



Bug 2206

Summary: Markers of bar series doesn't work
Product: VCL TeeChart Reporter: Roman K <rk>
Component: SeriesAssignee: yeray alonso <yeray>
Status: RESOLVED FIXED    
Severity: major CC: marc, yeray
Priority: ---    
Version: 26.181203   
Target Milestone: ---   
Hardware: PC   
OS: Windows   
Chart Series: --- Delphi / C++ Builder RAD IDE Version:
Attachments: Exports of charts in version 24 and 26

Description Roman K 2019-05-24 05:56:44 EDT
Created attachment 915 [details]
Exports of charts in version 24 and 26

I have simple DB chart with Bar serie. After savings marks don't work, it looks like they save values and don't react on dataset.

I had version 24.180321 before and all is OK, now in version 26.181203 is bug.

I have simple query:
SELECT 1 AS ID, CAST(210 AS INT) AS CisloOrg, CAST(3746.40 AS NUMERIC(19,6)) AS SumaKc
UNION
SELECT 2, NULL, 34.1
UNION
SELECT 3, 1000, 504
UNION
SELECT 4, 1000, 34.1
UNION
SELECT 5, 1007, 0
UNION
SELECT 6, 1010, 34.1
UNION
SELECT 7, 1003, 0
UNION
SELECT 8, 1, 0

Chart from my application (export, definition is created in version 24):
object TDBChart
  Left = 0
  Top = 0
  Width = 1920
  Height = 832
  View3D = False
  Align = alClient
  TabOrder = 1
  ExplicitWidth = 784
  ExplicitHeight = 477
  DefaultCanvas = 'TGDIPlusCanvas'
  ColorPaletteIndex = 13
  object Series1: TBarSeries
    HoverElement = []
    DataSource = DatasetForTeeChart
    XLabelsSource = '#SORTASC#CisloOrg'
    XValues.Name = 'X'
    XValues.Order = loAscending
    YValues.Name = 'Sloupec'
    YValues.Order = loNone
    YValues.ValueSource = '#SUM#SumaKc'
    Data = {
      0407000000CDCCCCCCCC0C4140FF000000000000000000000000FF0100000031
      CDCCCCCCCCD08040FF04000000313030300000000000000000FF040000003130
      30330000000000000000FF0400000031303037CDCCCCCCCC0C4140FF04000000
      31303130CDCCCCCCCC44AD40FF03000000323130}
  end
end

Chart from my application (export, definition is created in version 26):
object TDBChart
  Left = 0
  Top = 0
  Width = 1920
  Height = 832
  View3D = False
  Align = alClient
  TabOrder = 1
  ExplicitWidth = 784
  ExplicitHeight = 477
  DefaultCanvas = 'TGDIPlusCanvas'
  ColorPaletteIndex = 13
  object Series1: TBarSeries
    HoverElement = []
    Marks.Items = {
      07000000010C456D626F73732E436F6C6F720706636C477261790C536861646F
      772E436F6C6F720706636C477261790A53686170655374796C650711666F7352
      6F756E6452656374616E676C650C546578742E537472696E677301060433342C
      310000010C456D626F73732E436F6C6F720706636C477261790C536861646F77
      2E436F6C6F720706636C477261790A53686170655374796C650711666F73526F
      756E6452656374616E676C650C546578742E537472696E677301060131000001
      0C456D626F73732E436F6C6F720706636C477261790C536861646F772E436F6C
      6F720706636C477261790A53686170655374796C650711666F73526F756E6452
      656374616E676C650C546578742E537472696E6773010604313030300000010C
      456D626F73732E436F6C6F720706636C477261790C536861646F772E436F6C6F
      720706636C477261790A53686170655374796C650711666F73526F756E645265
      6374616E676C650C546578742E537472696E6773010604313030330000010C45
      6D626F73732E436F6C6F720706636C477261790C536861646F772E436F6C6F72
      0706636C477261790A53686170655374796C650711666F73526F756E64526563
      74616E676C650C546578742E537472696E6773010604313030370000010C456D
      626F73732E436F6C6F720706636C477261790C536861646F772E436F6C6F7207
      06636C477261790A53686170655374796C650711666F73526F756E6452656374
      616E676C650C546578742E537472696E6773010604313031300000010C456D62
      6F73732E436F6C6F720706636C477261790C536861646F772E436F6C6F720706
      636C477261790A53686170655374796C650711666F73526F756E645265637461
      6E676C650C546578742E537472696E67730106033230310000}
    DataSource = DatasetForTeeChart
    XLabelsSource = '#SORTASC#CisloOrg'
    XValues.Name = 'X'
    XValues.Order = loAscending
    YValues.Name = 'Bar'
    YValues.Order = loNone
    YValues.ValueSource = '#SUM#SumaKc'
    Data = {
      0407000000CDCCCCCCCC0C4140FF000000000000000000000000FF0100000031
      CDCCCCCCCCD08040FF04000000313030300000000000000000FF040000003130
      30330000000000000000FF0400000031303037CDCCCCCCCC0C4140FF04000000
      31303130CDCCCCCCCC44AD40FF03000000323130}
  end
end

I compared source code 24 and 26 and found out that if I comment this code, all works OK:

unit TeEngine;

Function TSeriesMarks.Clicked(const P:TPoint):Integer;
...
      if (result mod tmpEvery)=0 then
      begin
        tmp:=FPositions.Position[result];

        if Assigned(tmp){ and FItems[result].Visible} then // HERE COMMENT
        begin
          R.TopLeft:=ConvertTo2D(tmp.ArrowTo,tmp.LeftTop);
...
Comment 1 marc meumann 2019-10-01 08:34:20 EDT
Thank you Roman, for the useful feedback. An interesting cause/effect. We'll put the fix in for the next update (imminent).
Comment 2 yeray alonso 2019-10-02 05:27:30 EDT
Note this appeared with the fix for #2092:
http://bugs.teechart.net/show_bug.cgi?id=2092

Here the new condition:

unit TeEngine;

Function TSeriesMarks.Clicked(const P:TPoint):Integer;
...
      if (result mod tmpEvery)=0 then
      begin
        tmp:=FPositions.Position[result];

        if Assigned(tmp) and (result<FItems.Count) and FItems[result].Visible then // FIX HERE
        begin
          R.TopLeft:=ConvertTo2D(tmp.ArrowTo,tmp.LeftTop);
...