Hi
Warum so kompliziert ?
Zuerst mußt du wissen, wieviele Zeilen dein Stringgrid hat. Geh immer davon aus, das ist veränderbar.
Also deklarierst du eine Variable
Zeilen : Integer;
des weiteren benötigst du eine Variable Summe. Da ich nicht weiß, ob Integer oder Real geh ich von Real aus also
Summe: Real;
Da in einem Stringgrid wie der name schon sagt "Strings" sind und keine Zahlen, auch wenn's so aussieht, mußt du diese Werte Wandeln.
Nun zur Summenrechnung der Zahlen in einer Spalte "x".
Zuerst wollen wir wissen wieviele Zeilen, also
Delphi-Quelltext
1:
| Zeilen:=Stringgrid1.RowCount; |
Nun können wir der Schleifenvariable i den Endwert Zeilen-1 geben, da ja die erste Zeile des Stringgrids bei 0 anfängt. Auch wenn in der 1. Zeile keine Zahl steht, weil da z. B. 'Preis' oder 'Wert' steht, bleibt das -1, nur der Schleifenanfangswert ändert sich.
Doch zuerst setzen wir den Wert der Variablen Summe auf 0
Delphi-Quelltext
1: 2: 3: 4: 5:
| Summe:=0; For i:=1 to Zeilen-1 do begin Summe:=Summe+StrToFloat(StringGrid1.Cells[x,i]); end; |
Jetzt soll das ergebnis unten in einer zusätzlichen Zeile
Delphi-Quelltext
1: 2:
| StringGrid1..RowCount:=StringGrid1..RowCount+1; StringGrid1.Cells[x,Zeilen]:=FloatToStr(Summe); |
Nun kannst du dich fragen, wieso ich einfach Zeilen genommen habe. Nun, wenn Zeilen-1 die oberste Zeile war muß nach hinzufügen einer neuen Zeile der Wert passen.
Ich hoffe das hilft
Gruß oldmax
Zier dich nich so, ich krieg dich schon....