سؤال

لدي تقرير يستخدم TChart أنني المحافظة.واحدة من TLineSeries أن يحصل وأضاف يحصل تلقائيا تعيين لون clWhite ، والتي هي قريبة جدا من الخلفية (clBtnFace).

إذا كنت تغييره ، ثم السلسلة المقبلة أن يحصل وأضاف يأخذ clWhite.قصيرة جدا من العودة و تغييره بعد كل سلسلة أخرى يتم إنشاؤها ، هناك بعض الطريق أخبر TChart أنني لا أريد أي من سلسلة بلدي أن يكون clWhite?

عندما سلسلة يضاف إلى TChart على TChart يسند اللون.أريد أن تعيين clWhite.

هل كانت مفيدة؟

المحلول

حسنا لا تستسلم بسهولة, قمت بالمزيد من البحث.هناك وحدة متغير يسمى ColorPalette من نوع TColorArray في TeeProcs الوحدة.إذا وجدت واستبدالها الأبيض مع لون مختلف يصلح له.قد يكون هناك مثيل نسخة منه.سأواصل البحث لأن ذلك سيكون المفضل.

أن تعود ColorPalette فقط اتصل وحدة الأسلوب SetDefaultColorPalette في نفس الوحدة.

SetDefaultColorPalette; // Make sure we start with the default
ColorPalette[4] := $007FFF; // Change White to Orange
try
  // add series to the chart
finally
  SetDefaultColorPalette;  // Set it back to Default
end;

راجع للشغل, لا أستطيع تقبل الإجابة لأن أنا سألت السؤال أيضا ولكن أنا اختبرت ذلك.

نصائح أخرى

وبالقرب من ما استطيع ان اقول من وحدة TeeCharts. لا لا يمكنك تحديد اللون الذي لا ينبغي أن يكون كما السفن.
يمكنك المشي برمجيا من خلال جميع مداخل TLineSeries التأكد في وقت التشغيل أنها لا تستخدم clWhite. نقول لديك مجموعة واسعة من الألوان مقبولة clArray، يمكنك استخدام التعليمات البرمجية التالية لضبط الألوان من كل من الإدخالات tLineSeries في وقت التشغيل.

procedure TForm1.setColors(aChart: TChart; aColorArray: array of TColor);
var
  chi : Integer;
  coi : Integer;
begin
  coi := low(aColorArray);
  for chi := 0 to aChart.SeriesList.Count - 1 do begin
    aChart.SeriesList[chi].Color := aColorArray[coi];
    inc(coi);
    if coi > high(aColorArray) then
      coi := low(aColorArray);
  end;
end;

procedure TForm1.FormShow(Sender: TObject);
var
  ca : array of TColor;
begin
  setLength(ca, 3);
  ca[0] := clRed;
  ca[1] := clBlue;
  ca[2] := clGreen;
  setColors(Chart1, ca);
end;

ويمكنك استخدام الأساليب سلسلة ClearPalette ثم AddPalette لخلق لوحة مخصصة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top