Page 1 of 1

circular gauge issues/questions with 8.02

Posted: Fri Jun 20, 2008 3:48 pm
by 10549266
Hi,

evaluating circular gauges, I found the following issues

1. drawing of more than one gauge in a chart

- gauges are stacked, but all their centers are painted in the middle of the chart page.

- it would be much better if gauges were distributed on the page like pie series. The way it is now (all stacked) limits the number of gauges unnecessarily plus it looks funny when circular controls are stacked in one column and there is heaps of space on the rest of the page. Is there any way to change that through code (apart from patching the sources)?

2. chart editor

- chart editor gives AV and other error messages on a number of actions, just play around

- chart editor removes labels, ticks and color lines when switching to the series tab of a circular gauge

3. tee8new.exe

- in the subtree 'new series' clicking 'circular gauge' gives 'error reading Series1.Center.Gradient.EndColor: Invalid property value

I read that there are some known issues with circular gauges and D5, but what I listed goes beyond that. Please when you ship new controls make sure to do at least basic tests.

Is 8.03 available for testing somewhere?

best regards,
Volker

Posted: Tue Jun 24, 2008 9:07 pm
by 9047589
Hi, Vr - it seems you use Delphi 5 or any other earlier Delphi version. Is it so? If you loaded http://www.steema.com/files/vcl/public/ ... ee8New.zip, you may not find this problem. In my D5 projects I had to edit some bpl files to avoid such kind of problems when new component properties were used or properties were initiated with default values.

Posted: Wed Jun 25, 2008 10:22 am
by yeray
Hi Volker,

If tested the issues you mention...

1.1. You are right. I've added it to the bug list to be fixed in future releases.

1.2. You can do the same as in the demo at All features/Chart styles/Standard/Pie/Multiple Charts. But note that the centers won't be drawn at their correct positions as in 1.1:

Code: Select all

procedure TForm1.Series1BeforeDrawValues(Sender: TObject);
begin
  Chart1.ChartRect := Rect(10,10,Chart1.Width div 2, Chart1.Height div 2);
end;

procedure TForm1.Series2BeforeDrawValues(Sender: TObject);
begin
  Chart1.ChartRect := Rect(Chart1.Width div 2, 10, Chart1.Width, Chart1.Height div 2);
end;

procedure TForm1.Series3BeforeDrawValues(Sender: TObject);
begin
  Chart1.ChartRect := Rect(10,Chart1.Height div 2,Chart1.Width div 2, Chart1.Height);
end;

procedure TForm1.Series4BeforeDrawValues(Sender: TObject);
begin
  Chart1.ChartRect := Rect(Chart1.Width div 2, Chart1.Height div 2, Chart1.Width, Chart1.Height);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Chart1.ApplyZOrder := False;
end;
2. I haven't been able to reproduce these problems. Could you tell us more accurately the steps to reproduce them?

3. As Alexander said, commenting the line that causes the error and recompiling the form, probably you'll solve it.

Finally, we've just sent you a mail with the link to download the v8.03 release candidate.

circular gauge

Posted: Fri May 29, 2009 11:24 am
by 10547537
Hi Narcis,
It's me again
I start to use circular gauge is wind speed and wind direction indicator.
I have written my own "gauge"like this :
Image

Now I want to use TCircularGauge with settings :

with Series1 do begin
Minimum := 0;
Maximum := 360;
RotationAngle := 180;
TotalAngle := 360;
RotateLabels := TRUE;
end;
It works OK but I have some problems :

1.How to make label (0) not to overwrite label (360) ?
Wind direction 0 and 360 is in the same place (N)

2. When I set RotateLabels := FALSE (with this settings) it looks bad (0 is above 360). Maybe I do something wrong ?
Janusz

Posted: Fri May 29, 2009 11:48 am
by yeray
Hi Janusz_Cichocki,

Yes, this series type should prevent axis labels overlapping when the angle is 360 or next to 360. I've added this to the wish list to be implemented in future releases (TV52014201) but in the meanwhile you could use GetAxisLabel event to hide the label 360:

Code: Select all

procedure TForm1.Chart1GetAxisLabel(Sender: TChartAxis;
  Series: TChartSeries; ValueIndex: Integer; var LabelText: String);
begin
  if LabelText = '360' then LabelText := '';
end;