Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Addieren von Cells? (https://www.delphipraxis.net/20469-addieren-von-cells.html)

Tiny 18. Apr 2004 16:11


Addieren von Cells?
 
Hi!
Ich hab da ein Problem! Und zwar möchte ich mehrere Cells von einem Stringgrid addieren und die dann in einer anderen Cell ausgeben.

Aber wie kann ich die addieren? Kann mir wer helfen?

Danke schonmal!

Gruß Tiny

kiar 18. Apr 2004 16:27

Re: Addieren von Cells?
 
willst du die strings addieren oder die Inhalte der Zellen?

raik

Tiny 18. Apr 2004 16:30

Re: Addieren von Cells?
 
Die Inhalte der Zellen! (es sind zahlen)

kiar 18. Apr 2004 16:33

Re: Addieren von Cells?
 
erstmal musst du diese umwandeln
Delphi-Quellcode:
var
   x: double;
   i: Integer;

begin
   x:= floatTostr(Stringgrid1.cells[1,1]; // wandelt in eine double
   i:= Inttostr(Stringgrid1.cells[1,1];   // wandelt in einen Integer
end;

Tiny 18. Apr 2004 16:39

Re: Addieren von Cells?
 
hab ich und dann?

dummer_info_schüler 18. Apr 2004 16:43

Re: Addieren von Cells?
 
wie wär´s denn damit?
(wenn es n Spalten untereinander sein sollen)


Delphi-Quellcode:
var x, summe, i, n:integer; // musst du entsprechend ändern, wenn real

begin
  n:=strtoint(inputbox('Spaltenanzahl','Wieviele Spalten sollen  gezählt werden?',''));
  for i:=1 to n do begin
    x:=strtoint(stringgrid1.cells[1,n]);
    summe:=summe + x;
  end;
  stringgrid1.cells[2,1]:=inttostr(summe);
end;
hast du sowas gesucht?

Tiny 18. Apr 2004 16:59

Re: Addieren von Cells?
 
ja, sowas hab ich gesucht, aber es funktioniert irgendwie nicht! kann sein, dass ich es falsch umgesetzt habe?!

Also so sieht das ganze aus. Das davor ist zum Eintragen der erreichten Punkte in die Zellen und diese sollen dann noch addiert werden, sie stehen untereinander.
Delphi-Quellcode:
procedure TForm9.FormShow(Sender: TObject);
var x,y: integer;
    sz,sp,ss,ha: integer;
    summe, i, n:integer;

begin
     datenladen;
     x:= 0;
     y:=0;
     sz:=0;
     sp:=0;


     stringgrid1.Cells[0,0]:= 'Spielername';

     for sz:=1 to 18 do
     begin
          stringgrid1.Cells[x+sz,0]:= inttostr(sz)+'. Spieltag';
     end;
     for sp:= 1 to 12 do
        stringgrid1.Cells[0,y+sp]:= mannschaft[4].mitglieder[sp];

     for sz := 1 to 18 do
     begin
        for ss := 1 to 5 do
        begin
          for ha := 1 to 2 do
          begin
            for sp := 1 to 12 do
            begin
            if spieltag[sz].mannschaft[ss,ha] = 4 then
            begin
                if spieltag[sz].punkte[ss,ha,sp] <> 0 then

                  stringgrid1.Cells[x+sz,sp]:= IntToStr(spieltag[sz].punkte[ss,ha,sp])

                  else
                        begin
                                if spieltag[sz].punkte[ss,ha,sp] = 0 then
                                        stringgrid1.Cells[x+sz,sp]:= ' ';
                        end;
                end;
            end;
          end;
        end;
     end;


 for sz := 1 to 18 do
 begin
  for sp:= 1 to 12 do
  begin
   i:= Inttostr(Stringgrid1.cells[x+sz,sp];   { wandelt in einen Integer}

   n:=strtoint(inputbox('x+sz','12',' '));
   for i:=1 to sp do begin
    x:=strtoint(stringgrid1.cells[x+sz,sp]);
    summe:=summe + x;
  end;
  stringgrid1.cells[x+sz,14]:=inttostr(summe);
 end;
 end;
 end;


end.


Kannst du mir sagen, was falsch ist?

[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]

dummer_info_schüler 18. Apr 2004 17:29

Re: Addieren von Cells?
 
Also wo ist denn das Problem? fängt es schon an zu compilieren oder stehen unten noch Fehlermeldungen?
In der Zeile hier z.B.

Zitat:

Zitat von Tiny
i:= Inttostr(Stringgrid1.cells[x+sz,sp]; { wandelt in einen Integer}

hast du ´ne Klammer zu vergessen. Außerdem hast du einige stellen, wo du z.B. schreibst

stringgrid1.cells[x+sz,0]:=...;

Wofür??? Du hast vorher festgelegt, das x gleich 0 ist, da kannst du dir das sparen.

Und könntest du mal erklären, was ss, ha & Co. zu bedeuten haben?
Auch das mit dem n verstehe ich nicht... das war bei mir ursprünglich dazu da, dass das Programm weiß, wieviele Spalten addiert werden sollten, aber du wusstest das ja schon (sp Spalten) und hast das n dann auch nie wieder benutzt...

vielleicht hilft es ja mehr, wenn wir ein bisschen mehr wissen...
Kann dir momentan leider nicht mehr helfen, da mein Delphi gerade nicht so will, wie ich es will... :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:23 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