Verhindern Serie verwenden clWhite mit Delphi TChart

stimmen
2

Ich habe einen Bericht, der eine TChart verwendet, die ich beibehalten werde. Einer der TLineSeries, die die Farbe clWhite, die in den Hintergrund (clBtnFace) zu nah wird automatisch zugewiesen hinzugefügt wird.

Wenn ich es ändern, dann wird die nächste Serie, die hinzugefügt wird nimmt clWhite. So kurz, zurückzugehen und es, nachdem alles andere Serie zu ändern erstellt wird, ist es eine Möglichkeit, der TChart zu sagen, dass ich will nicht von meiner Serie clWhite sein?

Wenn eine Reihe mit dem TChart hinzugefügt wird, die TChart es weist eine Farbe. Ich will es nicht clWhite zuweisen.

Veröffentlicht am 14/10/2008 um 23:55
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
6

OK nicht ein leicht aufgeben, ich etwas mehr Such tat. Es ist eine Einheit Variable namens Colorpalette vom Typ TColorArray in der TeeProcs Einheit. Wenn wir finden und ersetzen weiß mit einer anderen Farbe , die es festlegt. Es kann eine Instanz Kopie davon sein. Ich werde schauen halten , da diese bevorzugt würde.

Um wieder die Colorpalette Rückruf nur die Einheit Methode SetDefaultColorPalette in der gleichen Einheit.

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;

BTW, kann ich nicht als Antwort akzeptieren , weil ich die Frage auch gefragt, aber ich es getestet und es funktioniert.

Beantwortet am 15/10/2008 um 01:49
quelle vom benutzer

stimmen
2

In der Nähe , wie ich aus dem TeeCharts Modul sagen kann; Nein , Sie können nicht eine Farbe angeben , dass es nicht , wie es Schiffe sein soll.
Sie können zur Laufzeit alle TLineSeries Einträge dafür , dass programmatisch zu Fuß durch die sie clWhite nicht verwenden. Sagen Sie bitte eine Reihe von akzeptablen Farben clArray haben, können Sie den folgenden Code verwenden , um die Farben jedes der tLineSeries Einträge zur Laufzeit einzustellen.

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;
Beantwortet am 15/10/2008 um 00:41
quelle vom benutzer

stimmen
0

Sie können die Serie Methoden ClearPalette dann AddPalette verwenden, um Ihre eigene Palette zu erstellen.

Beantwortet am 15/10/2008 um 02:10
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more