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