Delphi 7 создает пирамиды / цилиндры tChart Bar во время выполнения - PullRequest
0 голосов
/ 22 декабря 2018

Я знаю - Delphi 7 является доисторическим, и tChart не самый лучший.Но я должен их использовать, поэтому ...

Я могу изменить тип ряда во время выполнения с помощью

var cs: tChartSeries;
begin
  cs := chart.Series[0];
  ChangeSeriesType(cs, TBarSeries);
end;

И я обнаружил большинство из них: tLineSeries, tBarSeries, tAreaSeries, tPointSeries, ...

К сожалению, я не могу найти, как установить значение Бар / Пирамиды и Бар / Цилиндры.Если я пытаюсь создать их во время выполнения, я вижу, что мастер называет их «Стиль», но если я пытаюсь

chart.series[0].Style := …

, это свойство (типа tChartSeriesStyles) относится к разным вещам.Просто для будущих ссылок и потому, что было трудно найти:

TChartSeriesStyle = set of ( tssIsTemplate, 
                             tssDenyChangeType, 
                             tssDenyDelete, 
                             tssDenyClone, 
                             tssIsPersistent, 
                             tssHideDataSource ); 

Итак, вопрос: как я могу изменить во время выполнения серии Delphi 7 tChart на «пирамиду» и «цилиндр»?

Спасибо

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Вам нужно «привести» эту серию к tBarSeries, а затем вы можете изменить значение.Пример:

(c.series[0] as tBarSeries).BarStyle := bsPyramid;
(c.series[1] as tBarSeries).BarStyle := bsCilinder;

Поскольку похоже, что это нигде не задокументировано, просто введите «bs» и нажмите CTRL-SPACE, чтобы увидеть все возможные значения.

0 голосов
/ 24 декабря 2018

В Delphi 10.3 настройка гистограммы в стиле пирамиды вручную в IDE и просмотр DFM в виде текста приводит к следующему разделу:

  object Chart1: TChart
    Left = 224
    Top = 136
    Width = 400
    Height = 250
    Title.Text.Strings = (
      'TChart')
    TabOrder = 0
    DefaultCanvas = 'TGDIPlusCanvas'
    ColorPaletteIndex = 13
    object Series2: TBarSeries
      BarStyle = bsPyramid
      XValues.Name = 'X'
      XValues.Order = loAscending
      YValues.Name = 'Bar'
      YValues.Order = loNone
    end
  end

Можно попробовать сделать то же самое в Delphi 7 и посмотреть, какие свойства получаютсяустановите в какие значения.

В Delphi 10.3 в коде это заканчивается следующим образом (при условии, что Series2 - TBarSeries):

  Series2.BarStyle := bsPyramid;
...