// Главная форма
frm=new TForm();
frm.Caption="JS+ - компонент диаграммы TChart TChartImage";
frm.Width =900;
frm.Height=675;
// Строка состояния
stb=new TStatusBar(frm);
stb.SimpleText=" Пример компонента TChart";
// Панель
with (pnl=new TPanel(frm)) {
BorderStyle=bsSingle;
SetBounds(10,10,frm.ClientWidth-20,stb.Top-20);
Color=clWhite;
}
// TChart
with (chr=new TChart(pnl)) {
SetBounds(20,20,pnl.ClientWidth-30,pnl.ClientHeight-30);
Color=0xFFFFE9.toTColor();
AllowPanning=pmBoth;// Включить прокрутку
Zoom.Allow=true;// Включить масштабирование
Zoom.Pen.Color=clAqua;// Цвет рамки масштабирования
// Отступы
MarginTop=MarginRight=chr.MarginBottom=(MarginLeft=10)*2;
// Верхний заголовок
with (Title) {
Caption="Динамика рынка";
Font.Style=fsBold;
// Тень от заголовка
with (Font.Shadow) {
Color=clLtGray;
SmoothBlur=HorizSize=VertSize=2;
Visible=true;
}
Visible=true;
}
// Нижний заголовок
with (chr.Foot) {
Caption="Учетный период";
Visible=true;
}
// Рамка вокруг панели компонента
with (Border) {
Color=clGray;
Visible=true;
}
// Тень от панели компонента
with (Shadow) {
Color=clGray;
SmoothBlur=HorizSize=VertSize=5;
Visible=true;
}
}
// Задняя стена
with (chr.BackWall) {
// Изображение на стене
with (Picture) {
Mode=pbmCustom;
Left=20;
LoadFromFile(JSPlus.HelpDir+"IMAGE\\TBitmap\\Image.bmp");
}
Visible=true;
}
// Левая ось
with (chr.LeftAxis) {
Automatic=false;
Maximum=8000;
Grid.Color=clLtGray;
Grid.Visible=true;
with (Title) {
Caption="Средняя цена";
Font.Color=clRed;
}
Visible=true;
}
// Правая ось
with (chr.RightAxis) {
Automatic=false;
Maximum=50000;
Visible=true;
with (Title) {
Caption="Количество предложений";
Font.Color=clBlue;
}
Visible=true;
}
// Нижняя ось
chr.BottomAxis.Visible=true;
// Массив данных
Include(JSPlus.HelpDir+"DATA\\Chart.lst");
// График цены
srs=new TLineSeries(chr);
srs.Color=chr.LeftAxis.Title.Font.Color;
with (pnt=srs.Pointer) {
Style=psCircle;
HorizSize=VertSize=2;
Frame.Visible=false;
Visible=true;
}
srs.BeginUpdate();
for (i=0;i<data_lst.length;i++) {
l=((a=data_lst[i].split("|")).length==3) ? a[2] : "";
srs.AddXY(i,parseFloat(a[0]),l);
}
srs.EndUpdate();
// График количества предложений
srs=new TLineSeries(chr);
srs.Color=chr.RightAxis.Title.Font.Color;
srs.VertAxis=aRightAxis;
srs.Pointer.Assign(pnt);
for (i=0;i<data_lst.length;i++)
srs.AddXY(i,parseFloat(data_lst[i].split("|")[1]));
frm.ShowModal();