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

TArrowSeries

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

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

srsObj=new TArrowSeries(chrObj);

Собственные свойства
Свойство Тип Описание
ArrowHeight Number высота головы стрелки, px
ArrowPercent Number ширина плоскости стержня стрелки в процентах от ширины головы (при отображении диаграммы в трехмерном виде)
ArrowWidth Number ширина головы стрелки, px
Shadow TChartShadow тень от элементов серии
Наследуемые от класса 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 позиция серии по глубине (при трехмерном отображении диаграммы)

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

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

Собственные методы
Метод Описание
AddArrow добавляет к серии новую стрелку
Наследуемые от класса 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 возвращает количество видимых точек серии

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

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

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

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

// Главная форма
frm=new TForm();
frm.Caption="JS+ - компонент диаграммы TChart TArrowSeries";
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/TArrowSeries.htm
© 2024,