Непрозрачная марка TeeChart для прозрачной серии - возможно ли это? - PullRequest
0 голосов
/ 05 октября 2018

Delphi 10.1 Pro, VCL со встроенным TeeChart.

У меня 75% прозрачный AreaSeries, и я хотел бы, чтобы его Marks было непрозрачным , илиШрифт должен быть непрозрачным .

Я безуспешно пробовал следующее:

Marks[0].Transparent := false; // <- DOESN'T HELP
Marks[0].Transparency:= 0;     // <- DOESN'T HELP

tAreaSeries и его метки создаются следующим образом:

procedure TForm2.AddAreaSeries(aMin, aMax, aSeriesTransparency: integer);
begin
  with Chart1.AddSeries(tAreaSeries) as tAreaSeries do
    begin
      AddXY(aMin, 10); // Two point AreaSeries
      AddXY(aMax, 10);
      SeriesColor  := clGreen;
      Transparency := aSeriesTransparency; // <- Series Transparency

      Marks[0].Color       := clRed;
      Marks[0].Transparent := false; // <- DOESN'T HELP
      Marks[0].Transparency:= 0;     // <- DOESN'T HELP

      Marks[0].Visible     := true;
      Marks[1].Visible     := true;
      Marks.Visible        := true; // Global Visibility for all Markers
    end;
end;

Для демонстрации я дважды назвал вышеупомянутое, одно непрозрачное (0%), а другое с прозрачностью 75%:

procedure TForm2.FormCreate(Sender: TObject);
begin
  Chart1.View3D := false;
  Chart1.Axes.Bottom.SetMinMax(0,10);

  // Adding two AreaSeries
  AddAreaSeries(1, 4, 0);  // Non transparent AreaSeries
  AddAreaSeries(6, 9, 75); // 75% transparent AreaSeries
end;

Вот снимок экрана с комментариями к нему: enter image description here

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 05 октября 2018

У меток для серии есть логическая опция UseSeriesTransparency, которую вам просто нужно установить в false, чтобы установить прозрачность, независимую от серии.

  Series2.Marks.UseSeriesTransparency := false; 

В пользовательском интерфейсе опция является флажком.

enter image description here

...