![]() |
Edit-Ínhalte kumulieren
Hi LEuts,
ich möchte den Inhalt von Edits (Bsp 1-24) die Fließkommazahlen,wie 2,50 zusammenaddieren. Wie stellt man das an?! |
Wenn du die Editfelder dynamisch erzeugst, kannst du sie in ein Array packen und dann in einer Schleife die Werte addieren:
Delphi-Quellcode:
Falls du sie in der IDE erzeugst und sie Edit1..24 durchnumerierst, kannst du so die Werte addieren:
var
Edits: Array[1..24] of TEdit; a: Integer; wert: Real; begin //[..Editfelder erzeugen..] wert := 0; for a := 1 to Length(Edits) do begin wert := wert + StrtoInt(Edits[a]); end; end;
Delphi-Quellcode:
var
a: Integer; wert: Real; begin wert := 0; for a := 1 to 24 do begin wert := wert + Strtoint(FindComponent('Edit' + InttoStr(a))); end; end; |
@Chewie: Man lese genau: Fließkommazahlen
@Privateer3000: Anstatt StrToInt nimmst Du StrToFloat |
ja, sakura
genau das ist mein Problem. Ich kenn leider noch nicht alle Zahlentypen. Kämpfe mit inkompatiblen Typen. mon siehts so aus:
Code:
keine Chance
procedure TForm1.sumbuttonClick(Sender: TObject);
var i: integer; puff: Real; begin puff:=0; for i:= 1 to 34 do begin puff:=puff+StrToFloat(FindComponent('Edit'+IntToStr(i))); end; end; |
Code:
Das sollte Dir weiterhelfen.
procedure TForm1.sumbuttonClick(Sender: TObject);
var i: integer; puff: Real; begin puff:=0; for i:= 1 to 34 do begin puff:=puff+StrToFloat([color=#f60000]TEdit([/color]FindComponent('Edit'+IntToStr(i))[color=#ff0000]).Text[/color]); end; end; |
Zitat:
|
danke Sakura &Chewie
dein Rotmarkietes war was mir noch zu schaffen machte, der Inhalt der Edit musste ja angesprochen werden... Nur vollstandikeithalber
Code:
müsste doch auch gehen?
puff:=StrToFloat(FindComponent('Edit'+IntToStr(i)).text as TEdit);
|
Nein, aber so
Code:
puff:=StrToFloat([color=#ff0000]([/color]FindComponent('Edit'+IntToStr(i)).text as TEdit[color=#ff0000]).Text[/color]);
|
warum berechnet er 2,50 + 1,30 = 3,7999?
Theoretisch doch garnicht möglich... da gibts doch nichts runden normalerweise... wenn doch die ist die syntax? Und er soll statt 2,5 2,50 anzeigen, also Nachkommastellen |
hat sich erledigt...habe Typ auf curreny gestellt
|
ich nochmal
Code:
irgendwie gehts net...die Umstellung ..Fehler nich wirklich genügend Parameter.Leider ist die OH nicht richtig dokumentiert.
procedure TForm1.sumbuttonClick(Sender: TObject);
var i: integer; puff: Currency; begin puff:=0; for i:= 1 to 34 do begin puff:=puff+StrToFloat(TEdit(FindComponent('Edit'+IntToStr(i))).text); sumedit.text:= [color=#ff0000]FloatToStrF(puff; Format: currency;2;digits:2);[/color]end; end; [edit=Sakura]CODE in PRE Tags geändert[/edit] |
So sollte es bgehen
Delphi-Quellcode:
FloatToStrF(puff, ffCurrency, 1, 2);
|
Danke Kirschblüte...
damit kann ich was anfangen,ne Menge sogar für andere Sachen, wo ich es mir echt schwer gemacht habe :D |
soweit geht alles...
Code:
jetzt soll er vorher prüfen ob der Inhalt nicht '0,00' ist.
var
i: integer; puff: Currency; begin puff:=0; for i:= 1 to 34 do begin puff:=puff+StrToFloat(TEdit(FindComponent('Edit'+IntToStr(i))).text); sumedit.text:=FloatToStrF(puff, ffCurrency, 1, 2); end; end; Denn ich will jetzt einen Durchschnittwert ermittel. Dazu brauch ich ja die Anzahl der Edits deren Wert grösser als 0 ist. Ich habs mit Vergleichoperatoren wie <> 0 probiert. Oder muss ich 0,00 angeben? Ich komm nicht weiter... |
auch wenns euch nervt:
ich habs...bin stolz auf mich
Code:
:bounce2:
procedure TForm1.Timer35Timer(Sender: TObject);
var x: integer; Anzahl: currency; begin Anzahlsicht:=0; puff:=0; for x:= 1 to 34 do begin Anzahl:=StrToFloat(TEdit(FindComponent('Edit'+IntToStr(x))).Text); if Anzahl <> StrToFloat('0,00') then inc(Anzahlsicht); Anzahllabel.Caption:=IntToStr(Anzahlsicht); puff:=puff+StrToFloat(TEdit(FindComponent('Edit'+IntToStr(x))).text); if Anzahlsicht <> 0 then Durch:=puff/Anzahlsicht else Durch:=puff; sumedit.text:=FloatToStrF(Durch, ffCurrency, 3, 2); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 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