Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Im Striggrid zellen und Spalten addieren (https://www.delphipraxis.net/173606-im-striggrid-zellen-und-spalten-addieren.html)

Natcree 6. Mär 2013 17:41

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;

Natcree 6. Mär 2013 18:52

AW: Im Striggrid zellen und Spalten addieren
 
hatt jemand nen Vorschlag???

DonManfred 7. Mär 2013 06:41

AW: Im Striggrid zellen und Spalten addieren
 
Delphi-Quellcode:
eltreeStringGrid1.Cells[4,i]:=eltreeStringGrid1.Cells[2,i]+eltreeStringGrid1.Cells[3,i];
Das ist keine Addition sondern eine Kontenation, also eine String-Verkettung.

"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.

Natcree 7. Mär 2013 06:54

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 07:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz