JS+
Усиленный язык сценариев для Windows
с возможностью встраивания
в ваши приложения
О языке JS+ Справочник Скачать JS+ DLL
Контакты
СПРАВОЧНИК ПО ЯЗЫКУ JS+ Содержание

TAreaSeries

- компонент диаграммы TChart
Компонент TChartSeries
Определяет серию диаграммы TChart, отображаемую в виде вертикальных областей, ограниченных сверху линией графика.

Создание объекта

srsObj=new TAreaSeries(chrObj);

Собственные свойства
Свойство Тип Описание
AreaBrush Enum стиль кисти, используемой для заполнения областей (см. ниже)
AreaChartBrush TChartBrush кисть, используемая для заполнения областей
AreaColor TColor цвет, используемый для заполнения областей
AreaLinesPen TChartPen перо, используемое для отрисовки вертикальных линий внутри областей
ClickableLine Boolean принимать щелчки мышью по линиям, соединяющим точки серии
ColorEachLine Boolean отображать линии, соединяющие точки серии, разными цветами (при значении свойства ColorEachPoint=true)
DrawArea Boolean окрашивать области серии
Gradient TChartGradient градиентнапя заливка области
InvertedStairs Boolean инвертировать диаграмму, отображаемую как "лестницу" (при значении свойства Stairs=true)
LineBrush Enum стиль кисти, используемой для заполнения верхней плоскости областей (см. ниже), при отображении диаграммы в трехмерном виде
MultiArea Enum стиль отображения областей с накоплением (см. ниже)
OutLine TChartPen перо, используемое для отображения внешнего контура серии
Pointer TSeriesPointer свойства указателей серии
Shadow TChartShadow тень от элементов серии
Stairs Boolean отображать диаграмму как "лестницу"
Transparency Number прозрачность области, %
Наследуемые от класса TChartSeries
Active Boolean активность серии
Color TColor цвет элементов серии
ColorEachPoint Boolean отображать элементы серии разными цветами
Cursor Enum курсор мыши, отображаемый на элементах серии (см. ниже)
CustomHorizAxis TChartAxis пользовательская горизонтальная ось, привязанная к серии
CustomVertAxis TChartAxis пользовательская вертикальная ось, привязанная к серии
Depth Number размер элементов серии по глубине (при трехмерном отображении диаграммы)
HorizAxis TChartAxis горизонтальноая ось (верхняя или нижняя), по которой будет масштабироваться серия по горизонтали
Marks TSeriesMarks серия маркеров, связанных с точками серии
ParentChart TChart компонент TChart, связанный с серией
PercentFormat String стандартный спецификатор строки форматирования процентных меток
SeriesColor TColor цвет элементов серии
ShowInLegend Boolean отображать серию в легенде
Title String строка заголовка серии
ValueFormat String стандартный спецификатор строки форматирования C++ Builder/Delphi, используемый для вывода маркеров серии и осевых меток
VertAxis TChartAxis вертикальная ось (левая или правая), по которой будет масштабироваться серия по вертикали
XLabel[] String индексированный массив горизонтальных меток (маркеров)
Только чтение
FirstValueIndex Number индекс первой точки в серии, значение X которой находится между максимальным и минимальным значениями по горизонтальной оси, или -1 (если такой точки нет)
GetHorizAxis TChartAxis горизонтальноая ось серии
GetVertAxis TChartAxis вертикальная ось серии
LastValueIndex Number индекс последней точки в серии, значение X которой находится между максимальным и минимальным значениями по горизонтальной оси, или -1 (если такой точки нет)
XValue[] Number индексированный массив горизонтальных значений точек
YValue[] Number индексированный массив вертикальных значений точек
ZOrder Number позиция серии по глубине (при трехмерном отображении диаграммы)

Свойство AreaBrush
Значение Пример изображения
bsBDiagonal
bsClear
bsCross
bsDiagCross
bsFDiagonal
bsHorizontal
bsSolid
bsVertical

Свойство LineBrush
Значение Пример изображения
bsBDiagonal
bsClear
bsCross
bsDiagCross
bsFDiagonal
bsHorizontal
bsSolid
bsVertical

Свойство MultiArea
Значение Описание
maNone без накопления
maStacked площади областей складываются
maStacked100 площади областей складываются в процентах

Свойство Cursor
Значение Стандартное изображение
crAppStart
crArrow
crCross
crDefault
crDrag
crHandPoint
crHelp
crHourGlass
crHSplit
crIBeam
crMultiDrag
crNo
crNoDrop
crNone нет курсора
crSizeAll
crSizeNESW
crSizeNS
crSizeNWSE
crSizeWE
crUpArrow
crVSplit

Стандартные свойства

Собственные методы
Метод Описание
Наследуемые от класса TChartSeries
Add добавляет к серии новую точку с указанным значением по оси Y
AddX добавляет к серии новую точку с указанным значением по оси X
AddY добавляет к серии новую точку с указанным значением по оси Y
AddXY добавляет к серии новую точку с указанными значениями по осям X и Y
BeginUpdate предотвращает многократную перерисовку экрана при добавлении или изменении множества точек серии
Clear удаляет все точки серии
Delete удаляет указанную точку серии
EndUpdate перерисовывает экран при добавлении или изменении множества точек серии
FillSampleValues добавляет в серию указанное количество случайных значений
GetCursorValueIndex возвращает индекс точки серии, ближайшей к экранным координатам мыши
MaxMarkWidth возвращает максимальную ширину маркера
MaxXValue возвращает максимальное значение серии по оси X
MaxYValue возвращает максимальное значение серии по оси Y
MaxZValue возвращает максимальное значение серии по оси Z
MinXValue возвращает минимальное значение серии по оси X
MinYValue возвращает минимальное значение серии по оси Y
MinZValue возвращает минимальное значение серии по оси Z
VisibleCount возвращает количество видимых точек серии

Стандартные методы

Собственные события
Событие Описание
OnClickPointer произошло нажатие кнопки мыши на указателе серии
Наследуемые от класса TChartSeries
AfterDrawValues выполнена отрисовка точек серии
BeforeDrawValues будет выполнена отрисовка точек серии
OnAfterAdd добавлена новая точка серии
OnBeforeAdd будет добавлена новая точка серии
OnClearValues серия очищена и все ее точки удалены
OnClick произошло нажатие кнопки мыши на точке серии
OnDblClick произошло двойное нажатие кнопки мыши на точке серии
OnGetMarkText необходимо установить текст метки
OnMouseEnter указатель мыши вошел снаружи в любую точку серии
OnMouseLeave указатель мыши вышел наружу из всех точек серии

Стандартные события

Пример (JS+)
var tab=20;

// Главная форма
frm=new TForm();
frm.Caption="JS+ - компонент диаграммы TChart TAreaSeries";
frm.Width =900;
frm.Height=675;

var srs_List=new Array(
"TAreaSeries",
"TArrowSeries",
"TBarSeries",
"TBubbleSeries",
"TGanttSeries",
"TFastLineSeries",
"TLineSeries",
"TPointSeries",
"TPieSeries"
);

var data_List=new Array(
"10|болты",
"40|винты",
"20|гайки",
"60|гвозди",
"40|дюбели",
"80|саморезы",
"60|шайбы",
"100|шурупы"
);

// Строка состояния
stb=new TStatusBar(frm);

// Кнопка Сохранить
with (bt1=new TButton(frm)) {
  Caption="Сохранить";
  Top=stb.Top-Height-tab;
  Hint="Сохранить изображение BMP в файл";
  ShowHint=true;
  strTag="SAVE";
  OnClick=btn_Click;
}

// Кнопка Копировать
with (bt2=new TButton(frm)) {
  Caption="Копировать";
  Width=frm.TextWidth(Caption)+tab;
  Height=bt1.Height;
  Top=bt1.Top;
  Hint="Копировать изображение BMP в Буфер обмена";
  ShowHint=true;
  strTag="COPY";
  OnClick=btn_Click;
}

bt1.Width=bt2.Width;
bt1.Left=frm.ClientWidth-bt1.Width-tab;
bt2.Left=bt1.Left-bt2.Width-tab;

// Панель закладок
pgc=new TPageControl(frm);
pgc.SetBounds(tab,tab,frm.ClientWidth-tab*2,bt1.Top-tab*2);
pgc.OnChange=pgc_Change;

// Закладки
for (i=0,ni=srs_List.length;i<ni;i++) {
  srs_id=(srs_str=srs_List[i]).replace("T","").replace("Series","");
  with (tsh=new TTabSheet(pgc)) {
    Caption=srs_id;
    Color=clWhite;
    strTag=srs_str;
  }

  // TChart
  with (chr=new TChart(tsh)) {
    SetBounds(15,15,tsh.ClientWidth-30,tsh.ClientHeight-30);
    MarginTop=MarginBottom=5;
    MarginRight=15;
    tsh.cmpTag=chr;

    // Верхний заголовок
    with (Title) {
      Caption="Серия "+srs_str;
      Font.Style=fsBold;
      VertMargin=20;
      Visible=true;
    }

    // Нижний заголовок
    with (chr.Foot) {
      Caption="Номенклатура";
      Visible=true;
    }
  }

  // Левая ось
  with (chr.LeftAxis) {
    with (Title){
      Caption="Количество, шт.";
      Font.Color=srs_clr=clBlue;
    }
    Visible=true;
  }

  // Нижняя ось
  with (chr.BottomAxis) {
    MinorTickLength=0;
    Visible=true;
  }

  // Серия
  srs=eval("new "+srs_str+"(chr)");
  srs.Color=srs_clr;

  switch (srs_id) {
    case "Area":
    srs.AreaBrush=bsDiagCross;
    // Вертикальные линии
    with (srs.AreaLinesPen) {
      Color=clLtGray;
      Visible=true;
    }
    break;

    case "Arrow":
    srs.ArrowHeight=srs.ArrowWidth=10;
    case "Bar":
    chr.BottomAxis.Labels=false;
    break;

    case "FastLine":
    with (srs.Marks) {
      ShapeStyle=fosEllipse;
      ArrowLength=10;
      Style=smsValue;
      Visible=true;
    }
    srs.OnClick=srs_Click;
    srs.OnDblClick=srs_DblClick;
    break;

    case "Pie":
    srs.DonutPercent=40;
    chr.Foot.Visible=false;
    case "Gantt":
    chr.LeftAxis.Labels=
    chr.BottomAxis.Labels=false;
    break;

    case "Point":
    case "Line" :
    with (srs.Pointer) {
      Style=psCircle;
      Visible=true;
    }
    with (srs.Marks) {
      ArrowLength=15;
      Visible=true;
    }
    srs.OnGetMarkText=srs_GetMarkText;
    srs.OnClickPointer=srs_ClickPointer;
  }

  // Заполнение серии данными
  srs.BeginUpdate();
  for (j=0,k=1,nj=data_List.length;j<nj;k++,j++) {
    pnt_lst=data_List[j].split("|");
    y=parseFloat(pnt_lst[0]);
    switch (srs_id) {
      case "Arrow" : srs.AddArrow (nj/2,45,k,y); break;
      case "Bubble": srs.AddBubble(k,y,9,pnt_lst[1]); break;
      case "Gantt" : srs.AddGantt (k-0.5,k+0.5,y,pnt_lst[1]); break;
            default: srs.AddXY(k,y,pnt_lst[1]);
    }
  }
  srs.EndUpdate();

  // Масштабирование осей
  with (chr.LeftAxis) {
    Automatic=false;
    Minimum=0;
    Maximum=srs.MaxYValue();
  }
  with (chr.BottomAxis) {
    Automatic=false;
    Minimum=0;
    Maximum=srs.MaxXValue()+1;
  }
}

// Начальная серия
pgc.ActivePageIndex=2;// TBarSeries
pgc_Change(pgc);

frm.ShowModal();

// Обработчик события TButton::OnClick
function btn_Click(btn)
{
  var dlg,opr=btn.strTag,chr=pgc.ActivePage.cmpTag;

  switch (opr) {
    case "COPY":
    chr.CopyToClipboardBitmap();
    stb.SimpleText=" Изображение скопировано в Буфер обмена";
    break;
                 
    case "SAVE":
    with (dlg=new TSavePictureDialog(frm)) {
      Title="Сохранение изображения BMP в файл";
      Options+=ofShareAware+ofCreatePrompt+ofOverwritePrompt;
      Filter="BMP-файлы (*.bmp)|*.bmp|Все файлы (*.*)|*.*";
      DefaultExt="bmp";
      InitialDir=JSPlus.TempDir;
      FileName="ChartImg.bmp";
    }

    if (dlg.Execute()) {
      chr.SaveToBitmapFile(dlg.FileName);
      stb.SimpleText=" Сохранен файл: "+dlg.FileName;
    }
    dlg.Delete();
  }
}

// Обработчик события T[Line,Point]Series::OnGetMarkText
function srs_GetMarkText(srs,i,txt)
{
  txt.Value="Метка №"+(i+1);
}

// Обработчик события T[Line,Point]Series::OnClickPointer
function srs_ClickPointer(srs,i,x,y)
{
  stb.SimpleText=" Клик на указателе: №"+(i+1)+" ("+x+":"+y+")";
}

// Обработчик события TFastLineSeries::OnClick
function srs_Click(srs,i,ms_button,shift,x,y)
{
  stb.SimpleText=" Клик на серии: №"+(i+1)+" ("+x+":"+y+")";
}

// Обработчик события TFastLineSeries::OnDblClick
function srs_DblClick(srs,i,m_button,shift,x,y)
{
  stb.SimpleText=" 2-клик на серии: №"+(i+1)+" ("+x+":"+y+")";
}

// Обработчик события TPageControl::OnChange
function pgc_Change(pgc)
{
  var tsh=pgc.Pages[pgc.ActivePageIndex];

  stb.SimpleText=" Выбрана серия "+tsh.strTag;
}
Совместимость
C++ Builder/Delphi
JS+Руководство пользователя
Адрес этой страницы: http://jsplus.ru/MANUAL/JSPlus/Component/TChart/TChartSeries/TAreaSeries.htm
© 2024,