Gradients not showing if endcolor is set
Gradients not showing if endcolor is set
I have a small problem with gradients not showing if the endcolor is set
Please see the sample code below
MyChart.View3D := True;
MyChart.Gradient.Direction := gdDiagonaldown;
MyChart.Gradient.StartColor := ClGreen;
MyChart.Gradient.EndColor := ClBlue;
MyChart.Gradient.Visible := True;
MyChart.Walls.Back.Gradient.StartColor := ClBlack;
MyChart.Walls.Back.Gradient.EndColor := ClGreen;
MyChart.Walls.Back.Transparent := False;
MyChart.Walls.Back.Gradient.Visible := True;
MyChart.Walls.Back.Visible := True;
MyChart.Shadow.Color := ClRed;
MyChart.Shadow.HorizSize := 10;
MyChart.Shadow.VertSize := 10;
MyChart.Border.Visible := True;
Commenting out the endcolor lines on both panel and wall does then allow some kind of gradient
Is this a bug?
(Latest TeeChart and Delphi 10.3.2)
Please see the sample code below
MyChart.View3D := True;
MyChart.Gradient.Direction := gdDiagonaldown;
MyChart.Gradient.StartColor := ClGreen;
MyChart.Gradient.EndColor := ClBlue;
MyChart.Gradient.Visible := True;
MyChart.Walls.Back.Gradient.StartColor := ClBlack;
MyChart.Walls.Back.Gradient.EndColor := ClGreen;
MyChart.Walls.Back.Transparent := False;
MyChart.Walls.Back.Gradient.Visible := True;
MyChart.Walls.Back.Visible := True;
MyChart.Shadow.Color := ClRed;
MyChart.Shadow.HorizSize := 10;
MyChart.Shadow.VertSize := 10;
MyChart.Border.Visible := True;
Commenting out the endcolor lines on both panel and wall does then allow some kind of gradient
Is this a bug?
(Latest TeeChart and Delphi 10.3.2)
Re: Gradients not showing if endcolor is set
Greetings,
Your code with a new TeeChart on a new form, brings up a Chart that appears ok as per the code itself.
I'm using TeeChart Pro; I'll setup a machine with access to Standard but I wouldn't expect a difference.
Regards,
Marc
Your code with a new TeeChart on a new form, brings up a Chart that appears ok as per the code itself.
I'm using TeeChart Pro; I'll setup a machine with access to Standard but I wouldn't expect a difference.
Regards,
Marc
Re: Gradients not showing if endcolor is set
Hi Marc,
Many thanks for your time with this problem and its good to know that my code works on another system.
As it appears to be a problem with my installation (Either XE 10.3.2 or TeeChart Pro) could you point me in the direction of the files that would affect the endcolor and the boarder / Series Line Color settings please (if any)?
Just tested under XE10.2 and the same thing happens, very odd!
I will look into my XE 10.3.2 installation today.
Thanks again
Nigel (Cyprus)
Many thanks for your time with this problem and its good to know that my code works on another system.
As it appears to be a problem with my installation (Either XE 10.3.2 or TeeChart Pro) could you point me in the direction of the files that would affect the endcolor and the boarder / Series Line Color settings please (if any)?
Just tested under XE10.2 and the same thing happens, very odd!
I will look into my XE 10.3.2 installation today.
Thanks again
Nigel (Cyprus)
Re: Gradients not showing if endcolor is set
Hi again,
Been through the installation of TeeChart 5 times after fully removing all old files.
Reinstalled XE10.3.2
The design time window works fine to set gradients and borders and fastline pen width etc.
The run time setting of these options in code does not work at all
Any ideas out there?
Thanks
Nigel (Cyprus)
Been through the installation of TeeChart 5 times after fully removing all old files.
Reinstalled XE10.3.2
The design time window works fine to set gradients and borders and fastline pen width etc.
The run time setting of these options in code does not work at all
Any ideas out there?
Thanks
Nigel (Cyprus)
Re: Gradients not showing if endcolor is set
Hello Nigel,
Do you mean that the same code you posted up initially still doesn't work for you? Default Chart name is 'Chart1', if you start a new project from scratch and drop a chart on it, this (your code) should work ok:
I needed to add a uses: VCLTee.TeCanvas
I assume your FastLine Series has added with name "Series1". This code should work ok:
If your basic project doesn't work, please could you send it to us (attach it to your post) and we'll check it here for any possible problem-cause.
With thanks.
Regards,
Marc
Do you mean that the same code you posted up initially still doesn't work for you? Default Chart name is 'Chart1', if you start a new project from scratch and drop a chart on it, this (your code) should work ok:
Code: Select all
procedure TForm14.FormCreate(Sender: TObject);
begin
Chart1.View3D := True;
Chart1.Gradient.Direction := gdDiagonaldown;
Chart1.Gradient.StartColor := ClGreen;
Chart1.Gradient.EndColor := ClBlue;
Chart1.Gradient.Visible := True;
Chart1.Walls.Back.Gradient.StartColor := ClBlack;
Chart1.Walls.Back.Gradient.EndColor := ClGreen;
Chart1.Walls.Back.Transparent := False;
Chart1.Walls.Back.Gradient.Visible := True;
Chart1.Walls.Back.Visible := True;
Chart1.Shadow.Color := ClRed;
Chart1.Shadow.HorizSize := 10;
Chart1.Shadow.VertSize := 10;
Chart1.Border.Visible := True;
end;
I assume your FastLine Series has added with name "Series1". This code should work ok:
Code: Select all
Series1.Pen.Width := 5;
Series1.FillSampleValues();
With thanks.
Regards,
Marc
Re: Gradients not showing if endcolor is set
Hi Marc,
Yes any code i use does not work at runtime, I can set the gradient / backcolor etc at design time but no code that I try will work at run time.
Today I have installed.......
Windows on a clean machine (v8.1)
Rio 10.3.2
TeeChart Standard
Still no luck.
It appears that any calls I make to set colors / gradients / pen colors etc has no effect at runtime, its all very odd.
(I can email you the main executable if you wish but it wont let me load it on here Too Big as a Zip), but i have attached an image from the IDE with the project built and after I clicked the button.
The code I am using is here..........
(I renamed my chart to "Chart1" just in case it made any difference!)
procedure TForm6.Button1Click(Sender: TObject);
begin
Chart1.View3D := True;
Chart1.Gradient.StartColor := ClGreen;
Chart1.Gradient.EndColor := ClBlue;
Chart1.Gradient.Visible := True;
Chart1.Walls.Back.Gradient.StartColor := ClBlack;
Chart1.Walls.Back.Gradient.EndColor := ClGreen;
Chart1.Walls.Back.Transparent := False;
Chart1.Walls.Back.Gradient.Visible := True;
Chart1.Walls.Back.Visible := True;
Chart1.Shadow.Color := ClRed;
Chart1.Shadow.HorizSize := 10;
Chart1.Shadow.VertSize := 10;
Chart1.Border.Visible := True;
end;
Yes any code i use does not work at runtime, I can set the gradient / backcolor etc at design time but no code that I try will work at run time.
Today I have installed.......
Windows on a clean machine (v8.1)
Rio 10.3.2
TeeChart Standard
Still no luck.
It appears that any calls I make to set colors / gradients / pen colors etc has no effect at runtime, its all very odd.
(I can email you the main executable if you wish but it wont let me load it on here Too Big as a Zip), but i have attached an image from the IDE with the project built and after I clicked the button.
The code I am using is here..........
(I renamed my chart to "Chart1" just in case it made any difference!)
procedure TForm6.Button1Click(Sender: TObject);
begin
Chart1.View3D := True;
Chart1.Gradient.StartColor := ClGreen;
Chart1.Gradient.EndColor := ClBlue;
Chart1.Gradient.Visible := True;
Chart1.Walls.Back.Gradient.StartColor := ClBlack;
Chart1.Walls.Back.Gradient.EndColor := ClGreen;
Chart1.Walls.Back.Transparent := False;
Chart1.Walls.Back.Gradient.Visible := True;
Chart1.Walls.Back.Visible := True;
Chart1.Shadow.Color := ClRed;
Chart1.Shadow.HorizSize := 10;
Chart1.Shadow.VertSize := 10;
Chart1.Border.Visible := True;
end;
- Attachments
-
- Project.png (178.55 KiB) Viewed 28042 times
Re: Gradients not showing if endcolor is set
Hello Nigel,
Re.
http://steema.net/uploads/
The project itself would be interesting; to check whether any paths/parameters cause a block if compiled here.
With thanks.
Marc
Re.
Yes, to upload the exe you could use this link.I can email you the main executable if you wish but it wont let me load it on here, but i have attached an image from the IDE with the project built and after I clicked the button.
http://steema.net/uploads/
The project itself would be interesting; to check whether any paths/parameters cause a block if compiled here.
With thanks.
Marc
Steema Support
Re: Gradients not showing if endcolor is set
..as a followup, I notice compiler messages in your project
This is a VCL project, correct? I can't say I have an explanation for the message but it raises a question mark.
Someone on this thread came across the message in a VCL project too and there is a suggestion as to the cause.
Look for "I get the same warning error for my VCL program" in
https://forums.embarcadero.com/thread.j ... dID=256302
The issue may not be related but it is a possibility.
Regards,
Marc
Code: Select all
c:\program files (x86)\embarcadero\studio\20.0\lib\Win32\release\Controls.res resource kept; file c:\program files (x86)\embarcadero\studio\20.0\lib\Win32\release\FMX.Controls.Win.res resource discarded.
Someone on this thread came across the message in a VCL project too and there is a suggestion as to the cause.
Look for "I get the same warning error for my VCL program" in
https://forums.embarcadero.com/thread.j ... dID=256302
The issue may not be related but it is a possibility.
Regards,
Marc
Steema Support
Re: Gradients not showing if endcolor is set
Hi Marc,
I have fixed the discarded error and still the same.
I have uploaded the zipped version on the exe and a file called "code.txt" that is all the code from the test project
I hope this helps as I am confused
Best Regards
Nigel (Cyprus)
I have fixed the discarded error and still the same.
I have uploaded the zipped version on the exe and a file called "code.txt" that is all the code from the test project
I hope this helps as I am confused
Best Regards
Nigel (Cyprus)
Re: Gradients not showing if endcolor is set
Hello Nigel,
Ah, this is an FMX project. I'd assumed we we were looking at VCL.
Chart FMX colours and gradients have more variables.
This should work ok:
Regards,
Marc
Ah, this is an FMX project. I'd assumed we we were looking at VCL.
The VCL.Graphics, VCLTee.TeCanvas are superfluous.uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMXTee.Chart,
FMX.Controls3D, FMXTee.Chart3D, FMXTee.Series, FMXTee.Canvas, FMXTee.Procs,
FMX.StdCtrls, FMX.Controls.Presentation, FMXTee.Engine, VCL.Graphics, VCLTee.TeCanvas;
Chart FMX colours and gradients have more variables.
This should work ok:
Code: Select all
procedure TForm1.FormCreate(Sender: TObject);
var i : Integer;
begin
Chart1.View3D := False;
Chart1.Walls.Back.Gradient.StartColor := TAlphaColorRec.Red;
Chart1.Walls.Back.Gradient.EndColor := TColorRec.Green;
//optional ... set transparency
for i := 0 to Chart1.Walls.Back.Gradient.Colors.Count -1 do
Chart1.Walls.Back.Gradient.Colors[i].Transparency := 50;
Chart1.Walls.Back.Transparent := False;
Chart1.Walls.Back.Gradient.Visible := True;
Chart1.Walls.Back.Visible := True;
end;
Marc
Re: Gradients not showing if endcolor is set
Hi Marc,
Still no luck
This acts just the same as before.
This is the exact code from my project now, there are no errors but also no changes to the chart when I click the button.
Any other thoughts?
unit Unit8;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMXTee.Chart,
FMX.Controls3D, FMXTee.Chart3D, FMXTee.Series, FMXTee.Canvas, FMXTee.Procs,
FMX.StdCtrls, FMX.Controls.Presentation, FMXTee.Engine, VCL.Graphics, VCLTee.TeCanvas;
type
TForm8 = class(TForm)
Panel1: TPanel;
Button1: TButton;
Chart1: TChart;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form8: TForm8;
implementation
{$R *.fmx}
procedure TForm8.Button1Click(Sender: TObject);
Var
I : Integer;
begin
Chart1.View3D := False;
Chart1.Walls.Back.Gradient.StartColor := TAlphaColorRec.Red;
Chart1.Walls.Back.Gradient.EndColor := TColorRec.Green;
//optional ... set transparency
for i := 0 to Chart1.Walls.Back.Gradient.Colors.Count -1 do
Chart1.Walls.Back.Gradient.Colors.Transparency := 50;
Chart1.Walls.Back.Transparent := False;
Chart1.Walls.Back.Gradient.Visible := True;
Chart1.Walls.Back.Visible := True;
end;
end.
Still no luck
This acts just the same as before.
This is the exact code from my project now, there are no errors but also no changes to the chart when I click the button.
Any other thoughts?
unit Unit8;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMXTee.Chart,
FMX.Controls3D, FMXTee.Chart3D, FMXTee.Series, FMXTee.Canvas, FMXTee.Procs,
FMX.StdCtrls, FMX.Controls.Presentation, FMXTee.Engine, VCL.Graphics, VCLTee.TeCanvas;
type
TForm8 = class(TForm)
Panel1: TPanel;
Button1: TButton;
Chart1: TChart;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form8: TForm8;
implementation
{$R *.fmx}
procedure TForm8.Button1Click(Sender: TObject);
Var
I : Integer;
begin
Chart1.View3D := False;
Chart1.Walls.Back.Gradient.StartColor := TAlphaColorRec.Red;
Chart1.Walls.Back.Gradient.EndColor := TColorRec.Green;
//optional ... set transparency
for i := 0 to Chart1.Walls.Back.Gradient.Colors.Count -1 do
Chart1.Walls.Back.Gradient.Colors.Transparency := 50;
Chart1.Walls.Back.Transparent := False;
Chart1.Walls.Back.Gradient.Visible := True;
Chart1.Walls.Back.Visible := True;
end;
end.
Re: Gradients not showing if endcolor is set
Hi Marc,
I have just run a VCL only project and the button click works for the win32 forms, I can set gradients etc okay.
Run a FMX project with the same calls and the same problem exists:-(
Not sure where to go from here
Nigel (Cyprus)
I have just run a VCL only project and the button click works for the win32 forms, I can set gradients etc okay.
Run a FMX project with the same calls and the same problem exists:-(
Not sure where to go from here
Nigel (Cyprus)
Re: Gradients not showing if endcolor is set
Hi,
Got it working !!!!!!
Not too sure why yet, but made some changes to the Uses and FMX stuff and it now works
Many thanks you for all your time with this problem.
I hope not to come back to you
Nigel
(Cyprus)
Got it working !!!!!!
Not too sure why yet, but made some changes to the Uses and FMX stuff and it now works
Many thanks you for all your time with this problem.
I hope not to come back to you
Nigel
(Cyprus)
Re: Gradients not showing if endcolor is set
Ok, good to hear it's resolved.
Regards,
Marc
Regards,
Marc
Steema Support