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

TBarSeries

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

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

srsObj=new TBarSeries(chrObj);

Собственные свойства
Свойство Тип Описание
AutoBarSize Boolean автоматически рассчитывать ширину полосы на основе ее минимального и максимального значений
AutoMarkPosition Boolean автоматически смещать метки серии в случае их перекрытия
BarBrush TChartBrush кисть, используемая для заполнения полосы
BarPen TChartPen перо, используемое для внешней окантовки полосы
BarStyle Enum стиль (форма) полосы (см. ниже)
BarWidthPercent Number ширина полосы в процентах от максимальной (при которой полосы соединяются друг с другом)
BevelSize Number величина эффекта выпуклости для значения свойства BarStyle=bsRectangle
ConePercent Number величина эффекта конуса для значения BarStyle=bsCone, %
CustomBarWidth Number фиксированная ширина полос, px
Dark3D Boolean отображать полосу с более темной верхней и правой стороной (для трехмерного режима отображения диаграммы)
DarkPen Number степень сходства цвета внешней окантовки полосы с цветом ее внутреннего заполнения (значение в диапазоне [0-255])
DepthPercent Number глубина отображения полос при трехмерном режиме отображения диаграммы, %
MultiBar Enum стиль совместного отображения полос при размещении на диаграмме нескольких серий типа TBarSeries (см. ниже)
OffsetPercent Number смещение изображения серии вдоль опорной оси, %
Shadow TChartShadow тень от элементов серии
SideMargins Boolean отделять отступами первую и последнюю полосы от краев диаграммы (по умолчанию отступы равны половине суммы ширины всех полос)
TickLines TChartPen перо, используемое для отрисовки на полосах линий межосевой сетки
Transparency Number прозрачность полосы, %
UseYOrigin Boolean выровнять опорный край полос по значению свойства YOrigin
YOrigin Boolean значение для выравнивания опорного края полос (при значении свойства UseYOrigin=true)
Только чтение
BarWidth Number текущая ширина полос, px
Наследуемые от класса 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 позиция серии по глубине (при трехмерном отображении диаграммы)

Свойство BarStyle
bsArrow стрелка вверх
bsInvArrow стрелка вниз
bsBevel выпуклый прямоугольник
bsCilinder цилиндр
bsCone bsBevel
bsInvCone конус вниз
bsDiamond ромб
bsEllipse эллипс
bsPyramid пирамида
bsInvPyramid пирамида вниз
bsRectangle прямоугольник (значение по умолчанию)
bsRectGradient прямоугольник с вертикальной градиентной заливкой
bsSlantCube наклонный куб

Свойство MultiBar
Значение Описание
mbNone без совмещения
mbSide боковое совмещение
mbStacked совмещение стопкой
mbStacked100 совмещение стопкой в процентах
mbSideAll последовательное совмещение серий
mbSelfStack сложение точек каждой серии друг в друга

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

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

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

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

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

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

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

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