Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#1

TMS TAdvChartView, aktuellen Balken (TChartPoint) einfärben

  Alt 17. Jun 2010, 13:19
Hallo #,

also das einfachste geht mit dem Teil nicht ;(

Per Klick auf einen Balken (Bar) will ich, dass dieser eingefärbt wird.

Der folgende Code setzt zumindestens schon mal den Marker (an jeder Ecke des Bars ein häßlicher Kreis),
das wäre die Zeile mit dem SelectedIndex

Delphi-Quellcode:
procedure TForm1.ChartMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  ChartSeriePoint: TChartSeriePoint;
  ChartPoint: TChartPoint;
begin
  ChartSeriePoint:= Chart.XYToSeriePoint(X, Y, 0);

  if ChartSeriePoint.Serie<0 then Exit;
  if ChartSeriePoint.Point<0 then Exit;

  Chart.BeginUpdate;
  try
    ChartPoint:= Chart.Panes[0].Series[ChartSeriePoint.Serie].Points[ChartSeriePoint.Point];

    Chart.Panes[0].Series[ChartSeriePoint.Serie].SelectedMarkColor:= clBlue;


    ChartPoint.Color:= BARCOLORGELB;
    ChartPoint.ColorTo:= BARCOLORGELB;


    Chart.Panes[0].Series[ChartSeriePoint.Serie].SelectedIndex:= ChartSeriePoint.Point;
  finally
    Chart.EndUpdate;
  end;
end;
Ich will aber die Farbe ändern, und das geht nicht ?

Arbeitet hier überhaupt jemand mit TMS-Charts ? ;(



Selbstanwort:
statt
Delphi-Quellcode:
ChartPoint:= Chart.Panes[0].Series[ChartSeriePoint.Serie].Points[ChartSeriePoint.Point];
ChartPoint.Color:= XXX
muss man direkt
Chart.Panes[0].Series[ChartSeriePoint.Serie].Points[ChartSeriePoint.Point].Color:= clXXX; schreiben.

Grund:
Bei Points handelt es sich um ein Array aus Record, nicht Klassen.

Das ChartPoint:= Chart. kopiert den Record in meinen eigenen lokalen,
der originale wird nicht angerührt.




Frage an Daniel:
Beim "Bearbeiten" fehlt u.a. der Delphi-Button ( / Button ?



Heiko
Heiko

Geändert von hoika (17. Jun 2010 um 14:07 Uhr)
  Mit Zitat antworten Zitat