Page 1 of 1
TeeScrollPager
Posted: Tue Dec 02, 2014 4:32 pm
by 16469172
Hi
I have just installed the latest September update to TeeChart. I would still like to use the TeeScrollPager Tool but still have numerous problems doing it at design time.
Is there any step by step instructions on how you do this at design time?
Having failed to this at design time, I thought I would try to do it in code, but the example in the "Tee Chart Pro Examples" applications is no help because since it was written the method of doing it has changed far too much. So simply by creating a new project and dropping a chart on it and then copying the code from the example does not work.
Do you have a simple real-world example project that uses the TeeScrollPager tool working from code that does work?
I gave up when I couldn't get this working last time and simply linked too charts together, but one of the reasons I bought the latest version of TeeChart was to use this tool and save me the time and effort.
Bruce.
Re: TeeScrollPager
Posted: Tue Dec 02, 2014 4:38 pm
by 16570767
What "numerous problems" do you have exactly? The only problem I know about is that you cannot place a chart with a TScrollPagerTool on a TFrame at design time, you will have to add the frame (or the tool and the required code to set it up) at runtime.
If you, for example, want to change the view that is zoomed in, you can simply modify the StartValue and EndValue properties of the ColorBandTool-property of your TScrollPagerTool.
Re: TeeScrollPager
Posted: Tue Dec 02, 2014 4:48 pm
by 16469172
Hi
I have just rebooted my PC and the example code that didn't work is now working!
I would still appreciate the steps that you have to go though to do in at design time rather than in code though.
Bruce.
Re: TeeScrollPager
Posted: Tue Dec 02, 2014 5:33 pm
by 16469172
Hi
I keep running into exceptions when I run this simple example after trying to add a TeeScrollPager at design time. I'm obviously missing something here but the chart looks good in the IDE why doesn't it just work at run-time?
- Capture6.png (14.61 KiB) Viewed 12933 times
This is what the form looks like in the IDE.
- Capture7.png (10.72 KiB) Viewed 12937 times
This is the code - most of its commented out because I would like to get it working from the IDE and not code.
Code: Select all
unit Main;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, VCLTee.TeEngine, Vcl.ExtCtrls, VCLTee.TeeProcs, VCLTee.Chart, VCLTee.Series,
VCLTee.TeeScrollPagerTool;
type
TfmMain = class(TForm)
Chart1: TChart;
ChartTool1: TScrollPagerTool;
Series1: TBarSeries;
Series2: TBarSeries;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmMain: TfmMain;
implementation
{$R *.dfm}
uses
vcltee.TeeThemes, Math, vcltee.TeeTools, vcltee.EditChar;
procedure TfmMain.FormCreate(Sender: TObject);
var
i: Integer;
tmpFast : TFastLineSeries;
ScrollPagerTool : TScrollPagerTool;
begin
inherited;
Chart1.Title.Text.Clear;
Chart1.Title.Text.Add('ScrollPager Tool');
Series1.FillSampleValues(300);
{
// Doing it in code Works Fine
tmpFast:=TFastLineSeries.Create(Self);
tmpFast.DrawStyle:=flAll;
tmpFast.FillSampleValues(1000);
Chart1.AddSeries(tmpFast);
ScrollPagerTool := TScrollPagerTool.Create(Self);
ScrollPagerTool.ParentChart:=Chart1;
ScrollPagerTool.SubChartTChart.Frame.Visible:=False;
ScrollPagerTool.ColorBandTool.StartLine.Active:=True;
ScrollPagerTool.ColorBandTool.EndLine.Active:=True;
ScrollPagerTool.AddSeries(Chart1[0]);
// Cosmetics
ApplyChartTheme(TBlackIsBackTheme,Chart1);
ApplyChartTheme(TBlackIsBackTheme,ScrollPagerTool.SubChartTChart);
Chart1.View3D:=False;
ScrollPagerTool.SubChartTChart.View3D:=False;
}
end;
end.
This is the DFM
Code: Select all
object fmMain: TfmMain
Left = 0
Top = 0
Caption = 'fmMain'
ClientHeight = 337
ClientWidth = 635
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Chart1: TChart
Left = 0
Top = 0
Width = 635
Height = 337
AllowPanning = pmHorizontal
Legend.Visible = False
Title.Text.Strings = (
'TChart')
BottomAxis.Automatic = False
BottomAxis.AutomaticMaximum = False
BottomAxis.AutomaticMinimum = False
BottomAxis.Maximum = 202.666666666666700000
BottomAxis.Minimum = 101.333333333333300000
View3D = False
Zoom.Direction = tzdHorizontal
Align = alClient
TabOrder = 0
DefaultCanvas = ''
ColorPaletteIndex = 0
object Series1: TBarSeries
HorizAxis = aBothHorizAxis
Marks.Visible = False
VertAxis = aBothVertAxis
MultiBar = mbNone
XValues.DateTime = True
XValues.Name = 'X'
XValues.Order = loAscending
YValues.Name = 'Bar'
YValues.Order = loNone
end
object ChartTool1: TScrollPagerTool
DivisionRatio = 4.000000000000000000
NoLimitDrag = False
Series = Series1
end
object TSubChartTool
Tag = 1
ShowInEditor = False
Charts = <
item
AllowDrag = True
AllowResize = True
Height = 84
Left = 0
Top = 253
Width = 635
InnerChart = {
545046300B54496E6E6572436861727400044C656674020003546F7003FD0005
5769647468037B020648656967687402540C416C6C6F7750616E6E696E670706
706D4E6F6E650C4D617267696E426F74746F6D02040A4D617267696E4C656674
02030B4D617267696E52696768740203094D617267696E546F70020412546974
6C652E546578742E537472696E677301060B54496E6E65724368617274000656
6965773344080A5A6F6F6D2E416C6C6F77080754616253746F70080D44656661
756C7443616E766173120000000011436F6C6F7250616C65747465496E646578
0200000E54436F6C6F7242616E64546F6F6C0003546167020105436F6C6F7207
05636C52656406437572736F72070B637248616E64506F696E740A4472617742
6568696E640808456E6456616C75650500B0AAAAAAAAAACA06400B4E6F4C696D
697444726167080B50656E2E56697369626C650809526573697A65456E64090B
526573697A655374617274090A537461727456616C75650500A8AAAAAAAAAACA
05400C5472616E73706172656E63790232064178697349440200000E54436F6C
6F724C696E65546F6F6C000B4472616752657061696E74090556616C75650500
A8AAAAAAAAAACA0540064178697349440200000F54416E6E6F746174696F6E54
6F6F6C000F53686170652E416C69676E6D656E740708746143656E7465721453
686170652E536861646F772E56697369626C65081353686170652E5465787441
6C69676E6D656E740708746143656E7465720D54657874416C69676E6D656E74
0708746143656E7465720000000E54436F6C6F724C696E65546F6F6C000B4472
616752657061696E74090556616C75650500B0AAAAAAAAAACA06400641786973
49440200000F54416E6E6F746174696F6E546F6F6C000F53686170652E416C69
676E6D656E740708746143656E7465721453686170652E536861646F772E5669
7369626C65081353686170652E54657874416C69676E6D656E74070874614365
6E7465720D54657874416C69676E6D656E740708746143656E74657200000000
00}
end>
end
end
end
Re: TeeScrollPager
Posted: Wed Dec 03, 2014 9:00 am
by 16570767
This is a known bug (I think) that has been reported in 2013 (
#237) and 2014 (
#758). Also see
this forum thread.
This is what I usually do to help myself:
- Add a lonely TScrollPagerTool that uses NO SERIES
- Adding the TScrollPagerTool also adds a TSubChartTool. Make sure that this chart has no series
- At runtime, call this once:
Code: Select all
scrollPagerTool.AddSeries(yourWantedSeries);
scrollPagerTool.ParentChart := yourOriginalChart;
scrollPagerTool.SetUpScrollPager();
scrollPagerTool.SubChartTChart.Axes.Left.Assign(yourOriginalChart.Axes.Left);
// Some additional stuff you'd normally do at design time
scrollPagerTool.ColorBandTool.Color := clLime;
scrollPagerTool.ColorBandTool.Transparency := 80;
This is what I usually do. I'm really yearning for a fix.
Re: TeeScrollPager
Posted: Wed Dec 03, 2014 1:18 pm
by 16469172
Hi Jens
Thanks for that work round - I'll give it a try.
I did think that the September update would clear up most of these problems - but obviously they forgot about the rest of the iceberg. I think that company's like Steema are spending so much time keeping up with Embarcadero's two releases a year, and making iOS and Android versions of the their products, that they don't have the time for any Delphi fixes.
Bruce.
Re: TeeScrollPager
Posted: Wed Dec 03, 2014 3:47 pm
by yeray
Hello,
xmetman wrote:I keep running into exceptions when I run this simple example after trying to add a TeeScrollPager at design time. I'm obviously missing something here but the chart looks good in the IDE why doesn't it just work at run-time?
Solved this "Argument Out Of Range" exception changing the TScrollPagerTool's DivisionRatio in the dfm from 4.000000000000000000 to 3.000000000000000000.
Then, running your application I get this:
- 2014-12-03_1631.png (17.94 KiB) Viewed 12881 times
I add this code to move the colorband:
Code: Select all
ChartTool1.ColorBandTool.StartValue:=Series1.XValue[50];
ChartTool1.ColorBandTool.EndValue:=Series1.XValue[75];
And it works fine for me here:
- 2014-12-03_1646.png (17.81 KiB) Viewed 12885 times
The ColorBand is undraggable and unresizable, but if you remove the AllowDrag and AllowResize line in your dfm inside the SubChart, then you can drag and resize the colorband on it:
Code: Select all
object TSubChartTool
Tag = 1
ShowInEditor = False
Charts = <
item
AllowDrag = True
AllowResize = True
Re: TeeScrollPager
Posted: Wed Dec 03, 2014 3:53 pm
by yeray
Hi
xmetman wrote:I did think that the September update would clear up most of these problems - but obviously they forgot about the rest of the iceberg. I think that company's like Steema are spending so much time keeping up with Embarcadero's two releases a year, and making iOS and Android versions of the their products, that they don't have the time for any Delphi fixes.
We indeed have a lot of work to support all the changes in the IDEs as they come, but we still continue fixing other issues:
http://tinyurl.com/TeeChartVCLFMX-2014-12-140923
http://tinyurl.com/TeeChartVCLFMX-2014-11-140512