![]() |
Mit Arrays rechnen
Guten Tag,
folgende Situation: Ich möchte, dass man in ein StringGrid Umsätze von einem ganzen Jahr eingeben kann (Januar, Februar...bis Dezember). Dafür habe ich folgende Zeilen geschrieben:
Delphi-Quellcode:
Nun möchte ich, dass der Jahresumsatz errechnet wird. Klar, ich könnte mir das ganze viel einfacher machen und direkt mit den StringGrid-Zellen rechnen, das möchte ich aber nicht.
procedure TForm1.Button_BerechnenClick(Sender: TObject);
var Umsatz: Array [1..12] of Single; begin for i := 1 to 12 do Umsatz[i] := StrToFloat (StringGrid1.Cells[1,i]); end Wenn ich dann alle Umsätze zugewiesen habe-wie rechne ich dann?
Delphi-Quellcode:
Ich glaube da, würde ich mich dumm und dämlich schreiben, und es soll ja Fälle geben, in denen vielleicht tausende Arrays zusammengerechnet werden, ich habe schon bei
Gesamtumsatz := Umsatz[1] + Umsatz[2]..... + Umsatz[12]
![]() Danke schonmal im Vorraus. mfg. Mysterio08 |
Re: Mit Arrays rechnen
Wie wäre es so? ;-)
Delphi-Quellcode:
// EDIT:
var
MySum: Double; i: Integer; begin MySum := 0; for i := Low(Umsatz) to High(Umsatz) do MySum := MySum + Umsatz[i] Und mit SetLength und dynamischen Arrays wärst du wohl auch besser bedient. |
Re: Mit Arrays rechnen
Nur ich habe mich weder mit dynamischen Arrays beschäftigt, noch mit SetLength. Ich weiß nur, dass man damit Positionen von Strings herausfinden kann, aber das man das auch zum Rechnen nehmen kann, habe ich nicht gewusst.
Könntest du mir das vielleicht mal so posten, würde mich mal interessieren. |
Re: Mit Arrays rechnen
Zitat:
ließ am Besten nochmal in deiner Delphi-Hilfe nach, was das wirklich macht. |
Re: Mit Arrays rechnen
OMG, na klar, du hast Recht. Ich habe SetLength mit Length verwechselt.....
Aber ich habe noch eine andere Möglichkeit - eine wie ich finde eine viel einfachere - gefunden:
Delphi-Quellcode:
Nur eine Sache ist jetzt noch offen: In meinem StringGrid soll der Nutzer die Umsätze direkt eingeben - die Eigenschaft goEditing in den Options habe ich auf True gesetzt. Nur kann der Nutzer nun auch Zahlen in den prozentualen Anteilen "verfälschen", das gefällt mir gar nicht.
for i := 1 to 12 do
Gesamtumsatz := Gesamtumsatz + Umsatz[i] Gibt es die Möglichkeit, nur einzelne Zellen anzusprechen und nicht gleich das ganze StringGrid? |
Re: Mit Arrays rechnen
Einfach die Eingabe überwachen.
|
Re: Mit Arrays rechnen
Zitat:
|
Re: Mit Arrays rechnen
Z.B. im KeyDown- oder KeyPress-Event
|
Re: Mit Arrays rechnen
Zitat:
|
Re: Mit Arrays rechnen
Oder man nimmt gleich math.Sum() :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:21 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