![]() |
Im Striggrid zellen und Spalten addieren
Habe ein Stringrid und möchte in jeder reihe col 2 und 3 addieren das ist soweit kein problem wie die unten im code siehst. Das ergebnis soll in der col 4 ausgegeben werden.
Nun soll aber in der 4 col das ergebnis der reihe stehen und mit dem ergebnis der 4. col aus der reihe drüber addiert werden. Ich hoffe du kannst das nachvollziehen?
Delphi-Quellcode:
procedure TForm1.Button18Click(Sender: TObject);
var i: integer; Summe: double; begin Summe := 0; for i := 1 to eltreeStringGrid1.RowCount - 1 do eltreeStringGrid1.Cells[4,i]:=eltreeStringGrid1.Cells[2,i]+eltreeStringGrid1.Cells[3,i]; end; |
AW: Im Striggrid zellen und Spalten addieren
hatt jemand nen Vorschlag???
|
AW: Im Striggrid zellen und Spalten addieren
Delphi-Quellcode:
Das ist keine Addition sondern eine Kontenation, also eine String-Verkettung.
eltreeStringGrid1.Cells[4,i]:=eltreeStringGrid1.Cells[2,i]+eltreeStringGrid1.Cells[3,i];
"3" + "4" ergibt nicht 7 sondern "34". Du musst also erstmal dafür sorgen das da Integer- oder Float-werte addiert werden um in col 4 den richtigen Wert zu haben. Dann solltest du Dir eine Hilfsvariable hernehmen die sich den "letzten" Wert aus Col 4 merkt um dann in der aktuellen Zeile das Addieren zu realisieren. Alternativ könntest du auch zweimal das Grid durchlaufen und im ersten Schritt addierst Du col3+3 und schreibst das in col 4. Im zweiten Schritt nimmst Du die Werte aus col 4 um sie zu addieren. |
AW: Im Striggrid zellen und Spalten addieren
Ich habe es so versucht. klappt ganz gut. hat jemand noch einen Vorschlag ???
Delphi-Quellcode:
var
i: integer; Summe1,Summe2,Ergebnis: double; begin Summe1 := 0; for i := 1 to form1.eltreeStringGrid1.RowCount - 1 do begin Summe1 := strtofloatdef(form1.eltreestringgrid1.cells[2,i],0) + strtofloatdef(form1.eltreestringgrid1.cells[3,i],0); Summe2 := strtofloatdef(form1.eltreestringgrid1.cells[4,i],0) + strtofloatdef(form1.eltreestringgrid1.cells[4,i-1],0); Ergebnis := Summe1 + Summe2; form1.eltreestringgrid1.cells[4,i] := Floattostr(ergebnis); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz