Delphi Stringgrid in TChart

PSP_GIGA

Cadet 3rd Year
Dabei seit
Jan. 2011
Beiträge
57
Hey leute ich will werte aus meinem Stringgird in Tchart einfügen

hab es jetzt soweit das er es einträgt aber nur einen wert wenn ich es mit i definiere macht er immer ein fehler


var
X, Y : Variant;

begin
X := (stringgrid1.Cells[3,i]);
Y := (stringgrid1.Cells[5,i]);
Chart1.Series[0].AddXY(X, Y, '', clTeeColor);
end;
 

pcw

Lt. Commander
Dabei seit
Juli 2001
Beiträge
1.676
Du solltest dich glaube ich dringend nochmal mit Zählschleifen und deren Zählvariable auseinandersetzen. Entweder da fehlt einiges an fundamentalem Verständnis oder du kürzt deine Codeschnipsel hier im Forum immer soweit, dass sie weniger Aussagekraft haben, als wenn du sie ganz weglassen würdest.

Ich würde dich bitte, jeweils einmal zu definieren, was genau du erreichen willst und wie dein bisheriger Code (und das Form) aussehen. Dann lässt sich vernünftig Hilfestellung geben, anstatt es dir (ohne jeden Lerneffekt) abschreibefertig hinzuklatschen.
 

PSP_GIGA

Cadet 3rd Year
Ersteller dieses Themas
Dabei seit
Jan. 2011
Beiträge
57
da muss ich dir schon etwas recht geben ;)

ich möcht von spalten aus meinem stringgird die werte im tchart eingeben. es kommen immer neue werten in das stringgrid hinzu, aber die alten bleiben auch drin.

wie ich normale werte die ich über den code definiere anzeigen will versteh ich, aber wie das mit den stringgrid werten läuft leider nicht

hab schon über diverse seiten im internet gesucht aber auch nicht wirklich etwas gefunden

deswegen kann ich auch keinen direkten code euch schicken
 

pcw

Lt. Commander
Dabei seit
Juli 2001
Beiträge
1.676
Naja, du holst den wert aus der StringGrid-Zelle deiner Wahl per
Code:
Variable := StrToFloatDef(StringGrid.Cells[x,y],0.0);
und schreibst dann "Variable" per Code in deine Serie.
Und den ganzen Spaß packst du in ein
Code:
For i := 0 To StringGrid.RowCount -1

Kurzes (unperformantes) Beispiel:
Code:
procedure Row2Chart(StringGrid: TStringGrid; AChart:TChart; RowIndex:Integer);
var
  Serie:TChartSeries;
begin
    if AChart.SeriesCount = 0 then
    begin
      Serie := TLineSeries.Create(AChart);
      Serie.SeriesColor := clRed;
      AChart.AddSeries(Serie);
    end
    else
    begin
      Serie := TChartSeries(AChart.Series[0]);
    end;
    Serie.Add(StrToIntDef(StringGrid.Cells[0,RowIndex],0),IntToStr(RowIndex),Serie.SeriesColor);
end; 


  Chart1.ClearSeries;
  for i := 0 to StringGrid1.RowCount -1 do
  begin
    Row2Chart(StringGrid1,Chart1,i);
  end;
 

PSP_GIGA

Cadet 3rd Year
Ersteller dieses Themas
Dabei seit
Jan. 2011
Beiträge
57
vielen dank für deine mühe :)

ich hab mir es mal etwas genauer angeguckt aber eine sache versteh ich nicht was kann ich unter Row2Chart verstehen?

Code:
Row2Chart(StringGrid1,Chart1,i);
 

pcw

Lt. Commander
Dabei seit
Juli 2001
Beiträge
1.676
Ähm, das ist die genau drüber geschriebene Prozedur, die da aufgerufen wird.
Du solltest aufhören, dir irgendwelche Sachen aus dem Internet zusammenzusuchen und mal ein Tutorial zu den ganzen programmiertechnischen Grundlagen (Kontrollstrukturen, Dateihandling, Prozeduren & Funktionen, Zeiger, Objektorientierte Programmierung) durcharbeiten. Dann sollten sich viele deiner Probleme in Luft auflösen.

Ich denke nämlich, dass du zu deinen Fragen beim "im Internet rumguggen" keine Antworten findest, weil es sich um Basics handelt, ohne die man ein VCL-Programm gar nicht erst in Angriff nehmen sollte.
 
Top