Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Edit-Ínhalte kumulieren (https://www.delphipraxis.net/1887-edit-%EDnhalte-kumulieren.html)

Privateer3000 29. Dez 2002 13:49


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?!

Chewie 29. Dez 2002 14:02

Wenn du die Editfelder dynamisch erzeugst, kannst du sie in ein Array packen und dann in einer Schleife die Werte addieren:

Delphi-Quellcode:
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;
Falls du sie in der IDE erzeugst und sie Edit1..24 durchnumerierst, kannst du so die Werte addieren:
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;

sakura 29. Dez 2002 14:12

@Chewie: Man lese genau: Fließkommazahlen

@Privateer3000: Anstatt StrToInt nimmst Du StrToFloat

Privateer3000 29. Dez 2002 14:18

ja, sakura
genau das ist mein Problem.
Ich kenn leider noch nicht alle Zahlentypen.
Kämpfe mit inkompatiblen Typen.

mon siehts so aus:
Code:
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;
keine Chance

sakura 29. Dez 2002 14:22

Code:
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;
Das sollte Dir weiterhelfen.

Chewie 29. Dez 2002 14:23

Zitat:

Zitat von sakura
@Chewie: Man lese genau: Fließkommazahlen

Ups, ich hab wohl in letzter Zeit zu oft StrtoInt benutzt :oops:

Privateer3000 29. Dez 2002 14:30

danke Sakura &Chewie
dein Rotmarkietes war was mir noch zu schaffen machte,
der Inhalt der Edit musste ja angesprochen werden...
Nur vollstandikeithalber
Code:
puff:=StrToFloat(FindComponent('Edit'+IntToStr(i)).text as TEdit);
müsste doch auch gehen?

sakura 29. Dez 2002 14:35

Nein, aber so
Code:
puff:=StrToFloat([color=#ff0000]([/color]FindComponent('Edit'+IntToStr(i)).text as TEdit[color=#ff0000]).Text[/color]);

Privateer3000 29. Dez 2002 14:37

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

Privateer3000 29. Dez 2002 14:37

hat sich erledigt...habe Typ auf curreny gestellt


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:32 Uhr.
Seite 1 von 2  1 2      

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