Moin!
Ich versuche im TChart dynamisch erstellten Series, die entsprechenden dynamisch erstellten Achsen zuzuordnen. Siehe dazu Code:
Delphi-Quellcode:
PROCEDURE tform1.fillseries;
VAR
I, J: integer;
BEGIN
FOR j := 0 TO countcols - 1 DO BEGIN
myfastlineseries := TFastlineSeries.Create(self);
setlength(Myseries, length(myseries) + 1);
myfastlineseries.ParentChart := Chart1;
MySeries[length(MySeries) - 1] := myfastlineseries;
myaxis := Tchartaxis.Create(Chart1);
setlength(myaxises, length(myaxises) + 1);
myaxises[length(myaxises) - 1] := myaxis;
END;
FOR j := 1 TO countcols - 1 DO BEGIN
WITH myseries[j - 1] DO BEGIN
FOR i := 1 TO countlines - 1 DO
IF mystringlists[j].Strings[i] = '' THEN
addXY(strtoint(mystringlists[0].Strings[i]),
0, mystringlists[0].strings[i])
ELSE BEGIN
addXY(strtoint(mystringlists[0].Strings[i]),
ConvertStr(mystringlists[j].strings[i]),
mystringlists[0].strings[i]);
END;
WITH myaxises[j - 1] DO BEGIN
title.Caption := mystringlists[j].strings[0];
title.Font.style := [fsbold];
title.angle := 90;
END;
CustomVertAxis := myaxises[j - 1];
VertAxis := aCustomVertAxis;
customvertaxis.Visible := false;
Title := mystringlists[j].strings[0];
active := true;
visible := true;
combobox1.Items.Add(mystringlists[j].strings[0]);
END;
END;
currentaxes := 0;
Chart1.LeftAxis := myseries[currentaxes].CustomVertAxis;
combobox1.ItemIndex := currentaxes;
Colorbox1.SelectedColor := myseries[0].Color;
END;
Der Code wiard auch so ausgeführt: Aber die zu der Series zugewiesene Achse ist die, die eigentlich zu der im Array davorliegenden Series gehört.
Soll heißen: zu myseries[1] gehört myaxes[0] und nicht wie geplant myaxes[1].
Irgendwo in meinem Code ist ein Denkfehler, aber ich finden ihn partout nicht. Wäre super, wenn ihr euch das mal anschauen könntet und einen kleinen Tipp geben könntet.
Overburn