HighLowSeries brushes

TeeGrid VCL / FMX for Embarcadero RAD Studio, Delphi, C++ Builder and Lazarus Free Pascal.
Post Reply
Posts: 1
Joined: Mon Jul 15, 2019 12:00 am

HighLowSeries brushes

Post by arekay » Thu Jan 09, 2020 5:10 am

I'm having some issues with changes in behavior of THighLowSeries; I'm not sure when it occurred, but I'm comparing with TeePro914 on C++ Builder 2010. I'm currently using the latest (TeeChart VCL/FMX version 2019 Build 2019.28.191011; C++Builder 10.3 Version 26.0.36039.7899).

In the old version, to change the fill color between the high and low lines, one would set the Series->HighBrush->Color property, and to make it semi-transparent you would set the Series->Transparency property. (One change between then and now is that, if the LeftAxis is inverted, now you need to change the LowBrush color, not the HighBrush, but that's OK).

In the current release, the Series->Transparency property seems to do nothing; instead, you have to change the transparency using the TTeeBrush editor in the Object Inspector. However, when you use that to set the transparency to a non-zero value, the Color value under HighBrush changes by getting values in the high-order byte. Unless your Chart includes a TGDIPlus object, this usually changes the color to some shade of gray or black. Plus, I can't find a direct way to access that Transparency property in my source code.

I've attached an example project (consisting of a 2D Chart with a single HighLowSeries), and to see the issue take the following steps:
1) Change the LowBrush transparency from 0 to 70% in the brush Pattern Editor. This changes the Color property changes from clAqua to $B3FFFF00. When you run it, it looks OK, though.
2) Uncomment the source code line setting the LowBrush color to clAqua. Now the series displays as opaque.
3) Uncomment the source code line setting the chart transparency to 70. No Change.
4) Re-comment those lines, and uncomment the line changing the LowBrush color to 0xB3FFFF00. Now it is back to displaying as semi-transparent.
5) Re-comment that line and then delete the TGDIPlus object. Now the LowBrush turns opaque gray, in both the interface and the running application.
6) Change the LowBrush Color to clAqua in the Pattern Editor. The series turns opaque aqua. Use the LowBrush editor to change the transparency back to 70, and it becomes opaque gray again.

I don't know how much of this behavior is intended or expected, and a result of TeeChart moving to GDI+. I've found a trick to set the transparency in my source code (step 4), which was my main obstacle, but it reads like a hack that may not be stable in the long term.
(57.1 KiB) Downloaded 10 times

Post Reply