Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem mit Stringgrid Tabelle (https://www.delphipraxis.net/102906-problem-mit-stringgrid-tabelle.html)

kronos89 6. Nov 2007 19:50


Problem mit Stringgrid Tabelle
 
Also, ich habe eine Stringgridtabelle, in der eine Spalte Zahlen stehen. Die Zahlen sollen addiert werden und die Geamtzahl in einer Zelle ausgegeben werden.
Außerdem soll in der benachbarten Spalte, sozusagen jeweils neben die Zahlen ihr Prozentualer Anteil, zur Gesamten Zahl ausgegeben werden.

z.B.:
1. Spalte.../.....2. Spalte
1......../.......10%
2......../.......20%
4......../.......40%
2......../.......20%
1......../.......10%


Gesamt: 10

mkinzler 6. Nov 2007 19:51

Re: Problem mit Stringgrid Tabelle
 
Und was ist dann unklar? Mit der Eigensdchaft .Cells kannst du auf die Werte zugreifen.

kronos89 6. Nov 2007 20:49

Re: Problem mit Stringgrid Tabelle
 
Das Problem ist, dass ich nicht so mit Delphi bewandert bin. In der Schule bekommen wir solche Aufgaben, ohne viel Erklärung und nu mach mal.
Ich brauch irgentwie eine Schleife für die Addition.
Bei den Prozenten hab ich kein Plan, wie ich das machen soll.

mkinzler 6. Nov 2007 20:54

Re: Problem mit Stringgrid Tabelle
 
Die Anzahl der Zeilen kriegst du über .Rows.Count raus. Und das mit den Prozenten ist ja kein Delphiproblem sondern eine Matheproblem.

grenzgaenger 6. Nov 2007 22:08

Re: Problem mit Stringgrid Tabelle
 
auch mit .rowcount ...

für die schleifen empfiehlt sich dann meist FOR ... :-)

kronos89 7. Nov 2007 11:27

Re: Problem mit Stringgrid Tabelle
 
Wäre schön, wenn ihr mir wenigstens die Schleife mal aufschreibt, mit der man die Zahlen einer Spate addiert, sonst komm ich ja mit den Prozenten auch nicht weiter.

Dachte mir das ungefähr so:

Delphi-Quellcode:
var
 Gesamt:real; a:integer;
begin
 for Stringgrid1.cells[1,a] do
 //Ja, nu weiß ich nicht, wie er zählen soll

 Gesamt:=floattostr(Stringgrid1.cells[1,28]) //Ergebnis eintragen
end;

guidok 7. Nov 2007 11:39

Re: Problem mit Stringgrid Tabelle
 
In der Delphi-Hilfe steht zum Syntax der for-schleife:
Zitat:

for Zähler := Anfangswert to Endwert do Anweisung
In deinem Fall also:
Delphi-Quellcode:
for AktuelleZeile:=ErsteZeileImGrid to LetzteZeileImGrid do
begin
  //Hier kannst du nun rechnen und in
  Grid.Cells[1,AktuelleZeile] //steht der Inhalt der Zelle (als String, wohlgemerkt!)
end;
Und zur Summe:

Du möchtest eine Gesamtsumme errechnen, d.h. am Anfang ist der Wert von Summe gleich 0 und in jedem Schleifendurchlauf addierst du zur aktuellen Summe den Wert der aktuellen Zelle. So einfach ist das.

kronos89 7. Nov 2007 14:27

Re: Problem mit Stringgrid Tabelle
 
Wenn mans ist es einfach. Naja, dass ist doch schon was. Danke! :-D
Wenn einer das andere noch weiß, wär ich dankbar.

stifflersmom 7. Nov 2007 14:33

Re: Problem mit Stringgrid Tabelle
 
Zitat:

Zitat von kronos89
Wenn mans ist es einfach. Naja, dass ist doch schon was. Danke! :-D
Wenn einer das andere noch weiß, wär ich dankbar.

Ich glaube, das wissen hier ganz viele.
Aber, glaubst Du nicht, es wäre besser Du versuchst mit dem Ansatz von guidok Dein Problem selber zu lösen.

Moin

guidok 7. Nov 2007 19:06

Re: Problem mit Stringgrid Tabelle
 
Zitat:

Wenn einer das andere noch weiß, wär ich dankbar.
Zitat:

4......../.......40%

Gesamt: 10
Du weisst nicht, dass 4 bei einer Gesamtsumme von 10 40% entspricht, bzw. wie man das ausrechnet?

Auf welche Schule gehst du eigentlich?

kronos89 8. Nov 2007 14:07

Re: Problem mit Stringgrid Tabelle
 
Klar weiß ich das. Wie ich es auch geschrieben hab, sind das Beispielzahlen.
Ich weiß auch, wie Prozentrechnung geht.
Nu hab ich viele Zahlen in der Tabelle und Gesamtzahl.
Nu müsste ich für jede Zeile das so schreiben:

Delphi-Quellcode:
Stringgrid1.cells[2,1]:=floattostr (Stringgrid1.cells[1,1]/Gesamt*'100')
Und das dann Zeile für Zeile.
Oder weiß einer, wie ich das mit ner For-Schleife hinkriegen?

DeddyH 8. Nov 2007 14:13

Re: Problem mit Stringgrid Tabelle
 
Zitat:

Zitat von kronos89
Oder weiß einer, wie ich das mit ner For-Schleife hinkriegen?

Na, genauso, wie Du auch die Gesamtsumme ermittelst, nur eine Spalte weiter.

Deep-Sea 8. Nov 2007 14:14

Re: Problem mit Stringgrid Tabelle
 
Zitat:

Zitat von kronos89
Oder weiß einer, wie ich das mit ner For-Schleife hinkriegen?

Jetzt mal ohne das ich mir die anderen Posts alle so sehr genau durchgelesen habe, aber was ich an einer For-Schleife jetzt so kompliziert?

HLukas 8. Nov 2007 14:35

Re: Problem mit Stringgrid Tabelle
 
(1) FloadToStr() erwartet einen Gleitkommawert, in den SG-Zellen stehen aber String-Werte,
also muss zum Rechnen in Gleitkommazahl umgewandelt werden.
(2) Als Fachinformatiker sollte man bei Prozentwerten wie in diesem Fall einen Fehlerausgleich einbauen. Das am besten beim grössten Wert weil dort der Fehler am kleinsten ist.


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