AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Addieren von Edits. Gehts auch kürzer?
Thema durchsuchen
Ansicht
Themen-Optionen

Addieren von Edits. Gehts auch kürzer?

Ein Thema von Ouou · begonnen am 18. Mär 2009 · letzter Beitrag vom 18. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
Ouou

Registriert seit: 16. Mär 2009
108 Beiträge
 
Delphi 2007 Architect
 
#1

Addieren von Edits. Gehts auch kürzer?

  Alt 18. Mär 2009, 15:14
Hallo,

ich hätte da mal eine frage und zwar rechne ich in 12 editfeldern und die summe wird dann in einem anderen editfeld angezeigt.

Hier mal der Quellcode wie ich es gemacht habe...

Delphi-Quellcode:
procedure TKostenaufstellung.Edit1Exit(Sender: TObject);

var
  Zahl1: Real;
  Ergebnis: Real;
begin
Zahl1 := StrToFloatDef(Edit1.Text,0);
Ergebnis := Zahl1;
DbEdit13.Text := FloatToStrF (Ergebnis, ffFixed,8,2);
end;


procedure TKostenaufstellung.Edit2Exit(Sender: TObject);

var
  Zahl1, Zahl2: Real;
  Ergebnis: Real;
begin
Zahl1 := StrToFloatDef (Edit1.Text,0);
Zahl2 := StrToFloatDef (Edit2.Text,0);
Ergebnis := Zahl1 + Zahl2;
DbEdit13.Text := FloatToStrF (Ergebnis, ffFixed,8,2);
end;

procedure TKostenaufstellung.Edit3Exit(Sender: TObject);

var
  Zahl1, Zahl2, Zahl3: Real;
  Ergebnis: Real;
begin
Zahl1 := StrToFloatDef(Edit1.Text,0);
Zahl2 := StrToFloatDef(Edit2.Text,0);
Zahl3 := StrToFloatDef(Edit3.Text,0);
Ergebnis := Zahl1 + Zahl2 + Zahl3;
DbEdit13.Text := FloatToStrF (Ergebnis, ffFixed,8,2);
end;

procedure TKostenaufstellung.Edit4Exit(Sender: TObject);

var
  Zahl1, Zahl2, Zahl3, Zahl4: Real;
  Ergebnis: Real;
begin
Zahl1 := StrToFloatDef(Edit1.Text,0);
Zahl2 := StrToFloatDef(Edit2.Text,0);
Zahl3 := StrToFloatDef(Edit3.Text,0);
Zahl4 := StrToFloatDef(Edit4.Text,0);
Ergebnis := Zahl1 + Zahl2 + Zahl3 + Zahl4;
DbEdit13.Text := FloatToStrF (Ergebnis, ffFixed,8,2);
end;

procedure TKostenaufstellung.Edit5Exit(Sender: TObject);

var
  Zahl1, Zahl2, Zahl3, Zahl4, Zahl5: Real;
  Ergebnis: Real;
begin
Zahl1 := StrToFloatDef(Edit1.Text,0);
Zahl2 := StrToFloatDef(Edit2.Text,0);
Zahl3 := StrToFloatDef(Edit3.Text,0);
Zahl4 := StrToFloatDef(Edit4.Text,0);
Zahl5 := StrToFloatDef(Edit5.Text,0);
Ergebnis := Zahl1 + Zahl2 + Zahl3 + Zahl4 + Zahl5;
DbEdit13.Text := FloatToStrF (Ergebnis, ffFixed,8,2);
end;

procedure TKostenaufstellung.Edit6Exit(Sender: TObject);

var
  Zahl1, Zahl2, Zahl3, Zahl4, Zahl5, Zahl6: Real;
  Ergebnis: Real;
begin
Zahl1 := StrToFloatDef(Edit1.Text,0);
Zahl2 := StrToFloatDef(Edit2.Text,0);
Zahl3 := StrToFloatDef(Edit3.Text,0);
Zahl4 := StrToFloatDef(Edit4.Text,0);
Zahl5 := StrToFloatDef(Edit5.Text,0);
Zahl6 := StrToFloatDef(Edit6.Text,0);
Ergebnis := Zahl1 + Zahl2 + Zahl3 + Zahl4 + Zahl5 + Zahl6;
DbEdit13.Text := FloatToStrF (Ergebnis, ffFixed,8,2);
end;

procedure TKostenaufstellung.Edit7Exit(Sender: TObject);

var
  Zahl1, Zahl2, Zahl3, Zahl4, Zahl5, Zahl6, Zahl7: Real;
  Ergebnis: Real;
begin
Zahl1 := StrToFloatDef (Edit1.Text,0);
Zahl2 := StrToFloatDef (Edit2.Text,0);
Zahl3 := StrToFloatDef (Edit3.Text,0);
Zahl4 := StrToFloatDef (Edit4.Text,0);
Zahl5 := StrToFloatDef (Edit5.Text,0);
Zahl6 := StrToFloatDef (Edit6.Text,0);
Zahl7 := StrToFloatDef (Edit7.Text,0);
Ergebnis := Zahl1 + Zahl2 + Zahl3 + Zahl4 + Zahl5 + Zahl6 + Zahl7;
DbEdit13.Text := FloatToStrF (Ergebnis, ffFixed,8,2);
end;

procedure TKostenaufstellung.Edit8Exit(Sender: TObject);

var
  Zahl1, Zahl2, Zahl3, Zahl4, Zahl5, Zahl6, Zahl7, Zahl8: Real;
  Ergebnis: Real;
begin
Zahl1 := StrToFloatDef(Edit1.Text,0);
Zahl2 := StrToFloatDef(Edit2.Text,0);
Zahl3 := StrToFloatDef(Edit3.Text,0);
Zahl4 := StrToFloatDef(Edit4.Text,0);
Zahl5 := StrToFloatDef(Edit5.Text,0);
Zahl6 := StrToFloatDef(Edit6.Text,0);
Zahl7 := StrToFloatDef(Edit7.Text,0);
Zahl8 := StrToFloatDef(Edit8.Text,0);
Ergebnis := Zahl1 + Zahl2 + Zahl3 + Zahl4 + Zahl5 + Zahl6 + Zahl7 + Zahl8;
DbEdit13.Text := FloatToStrF (Ergebnis, ffFixed,8,2);
end;

procedure TKostenaufstellung.Edit9Exit(Sender: TObject);

var
  Zahl1, Zahl2, Zahl3, Zahl4, Zahl5, Zahl6, Zahl7, Zahl8, Zahl9: Real;
  Ergebnis: Real;
begin
Zahl1 := StrToFloatDef(Edit1.Text,0);
Zahl2 := StrToFloatDef(Edit2.Text,0);
Zahl3 := StrToFloatDef(Edit3.Text,0);
Zahl4 := StrToFloatDef(Edit4.Text,0);
Zahl5 := StrToFloatDef(Edit5.Text,0);
Zahl6 := StrToFloatDef(Edit6.Text,0);
Zahl7 := StrToFloatDef(Edit7.Text,0);
Zahl8 := StrToFloatDef(Edit8.Text,0);
Zahl9 := StrToFloatDef(Edit9.Text,0);
Ergebnis := Zahl1 + Zahl2 + Zahl3 + Zahl4 + Zahl5 + Zahl6 + Zahl7 + Zahl8 + Zahl9;
DbEdit13.Text := FloatToStrF (Ergebnis, ffFixed,8,2);
end;

procedure TKostenaufstellung.Edit10Exit(Sender: TObject);

var
  Zahl1, Zahl2, Zahl3, Zahl4, Zahl5, Zahl6, Zahl7, Zahl8, Zahl9, Zahl10: Real;
  Ergebnis: Real;
begin
Zahl1 := StrToFloatDef(Edit1.Text,0);
Zahl2 := StrToFloatDef(Edit2.Text,0);
Zahl3 := StrToFloatDef(Edit3.Text,0);
Zahl4 := StrToFloatDef(Edit4.Text,0);
Zahl5 := StrToFloatDef(Edit5.Text,0);
Zahl6 := StrToFloatDef(Edit6.Text,0);
Zahl7 := StrToFloatDef(Edit7.Text,0);
Zahl8 := StrToFloatDef(Edit8.Text,0);
Zahl9 := StrToFloatDef(Edit9.Text,0);
Zahl10 := StrToFloatDef(Edit10.Text,0);
Ergebnis := Zahl1 + Zahl2 + Zahl3 + Zahl4 + Zahl5 + Zahl6 + Zahl7 + Zahl8 + Zahl9 + Zahl10;
DbEdit13.Text := FloatToStrF (Ergebnis, ffFixed,8,2);
end;

procedure TKostenaufstellung.Edit11Exit(Sender: TObject);

var
  Zahl1, Zahl2, Zahl3, Zahl4, Zahl5, Zahl6, Zahl7, Zahl8, Zahl9, Zahl10, Zahl11: Real;
  Ergebnis: Real;
begin
Zahl1 := StrToFloatDef(Edit1.Text,0);
Zahl2 := StrToFloatDef(Edit2.Text,0);
Zahl3 := StrToFloatDef(Edit3.Text,0);
Zahl4 := StrToFloatDef(Edit4.Text,0);
Zahl5 := StrToFloatDef (Edit5.Text,0);
Zahl6 := StrToFloatDef(Edit6.Text,0);
Zahl7 := StrToFloatDef(Edit7.Text,0);
Zahl8 := StrToFloatDef(Edit8.Text,0);
Zahl9 := StrToFloatDef(Edit9.Text,0);
Zahl10 := StrToFloatDef(Edit10.Text,0);
Zahl11 := StrToFloatDef(Edit11.Text,0);
Ergebnis := Zahl1 + Zahl2 + Zahl3 + Zahl4 + Zahl5 + Zahl6 + Zahl7 + Zahl8 + Zahl9 + Zahl10+ Zahl11;
DbEdit13.Text := FloatToStrF (Ergebnis, ffFixed,8,2);
end;

procedure TKostenaufstellung.Edit12Exit(Sender: TObject);

var
  Zahl1, Zahl2, Zahl3, Zahl4, Zahl5, Zahl6, Zahl7, Zahl8, Zahl9, Zahl10, Zahl11, Zahl12: Real;
  Ergebnis: Real;
begin
Zahl1 := StrToFloatDef(Edit1.Text,0);
Zahl2 := StrToFloatDef(Edit2.Text,0);
Zahl3 := StrToFloatDef(Edit3.Text,0);
Zahl4 := StrToFloatDef(Edit4.Text,0);
Zahl5 := StrToFloatDef(Edit5.Text,0);
Zahl6 := StrToFloatDef(Edit6.Text,0);
Zahl7 := StrToFloatDef(Edit7.Text,0);
Zahl8 := StrToFloatDef(Edit8.Text,0);
Zahl9 := StrToFloatDef(Edit9.Text,0);
Zahl10 := StrToFloatDef(Edit10.Text,0);
Zahl11 := StrToFloatDef(Edit11.Text,0);
Zahl12 := StrToFloatDef(Edit12.Text,0);
Ergebnis := Zahl1 + Zahl2 + Zahl3 + Zahl4 + Zahl5 + Zahl6 + Zahl7 + Zahl8 + Zahl9 + Zahl10+ Zahl11 + Zahl12;
DbEdit13.Text := FloatToStrF (Ergebnis, ffFixed,8,2);
end;
Nun hätt ich da die Frage ob des ganze man nicht einfach kürzer programmieren kann, weil ich einige felder mehr habe wo ich das berechnen muss und soviel schreibarbeit möchte ich ungern aufbringen.

mfg

[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Addieren von Edits. Gehts auch kürzer?

  Alt 18. Mär 2009, 15:16
Natürlich geht das deutlich kürzer

Du kannst ein Event auch mehreren Edits zuweisen.

Dazu einfach einmal das Event programmieren, und danach alle anderen Edits markieren, bei denen das gleiche pasieren soll und das Event aus der Combobox auswählen (Also statt Doppelklick in den leeren Bereich einen einfachen Klick und dann nauf den Pfeil runter)
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Addieren von Edits. Gehts auch kürzer?

  Alt 18. Mär 2009, 15:18
Du solltest bedenken, dass jemand auch zuerst das Edit 4 befüllt und somit Edit 1-3 noch leer ist. Also könntest du eine allgemeine Funktion schreiben, bei verlassen irgeneines Edit Feldes werden alle Felder addiert.
  Mit Zitat antworten Zitat
Ouou

Registriert seit: 16. Mär 2009
108 Beiträge
 
Delphi 2007 Architect
 
#4

Re: Addieren von Edits. Gehts auch kürzer?

  Alt 18. Mär 2009, 15:22
ok des hört sich ja schon mal gut an das es viel kürzer auch get . könnt ihr mir da eventuell nen anstoß geben, wie man so ein event schreibt? habe so etwas noch nie gemacht. oder gibts nen tuturial dafür?

mfg
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#5

Re: Addieren von Edits. Gehts auch kürzer?

  Alt 18. Mär 2009, 15:24
Um ein Control anhand des Namens z.B. ('Edit' + IntToStr(Nummer)) zu finden kannst Du Dir ja mal Delphi-Referenz durchsuchenFindControl (auch hier in der DP mehrfachst gezeigt) angucken. Das dürfte ein passendes Stichwort sein.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Addieren von Edits. Gehts auch kürzer?

  Alt 18. Mär 2009, 15:25
Delphi-Quellcode:
procedure TKostenaufstellung.EditExit(Sender: TObject);

var
  Zahl1, Zahl2, Zahl3, ...: Real;
  Ergebnis: Real;
begin
  Zahl1 := StrToFloatDef(Edit1.Text,0);
  Zahl2 := StrToFloatDef(Edit2.Text,0);
  Zahl3 := StrToFloatDef(Edit3.Text,0);
...
  Ergebnis := Zahl1+Zahl2+Zahl3+...;
  DbEdit13.Text := FloatToStrF (Ergebnis, ffFixed,8,2);
end;
Markus Kinzler
  Mit Zitat antworten Zitat
Ouou

Registriert seit: 16. Mär 2009
108 Beiträge
 
Delphi 2007 Architect
 
#7

Re: Addieren von Edits. Gehts auch kürzer?

  Alt 18. Mär 2009, 15:30
was ist an dem:

Delphi-Quellcode:
procedure TKostenaufstellung.EditExit(Sender: TObject);

var
  Zahl1, Zahl2, Zahl3, ...: Real;
  Ergebnis: Real;
begin
  Zahl1 := StrToFloatDef(Edit1.Text,0);
  Zahl2 := StrToFloatDef(Edit2.Text,0);
  Zahl3 := StrToFloatDef(Edit3.Text,0);
...
  Ergebnis := Zahl1+Zahl2+Zahl3+...;
  DbEdit13.Text := FloatToStrF (Ergebnis, ffFixed,8,2);
end;
anders als an meinem?
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#8

Re: Addieren von Edits. Gehts auch kürzer?

  Alt 18. Mär 2009, 15:32
Eher so:

Delphi-Quellcode:
procedure TKostenaufstellung.EditExit(Sender: TObject);
var
  ergebnis: Real;
  i: integer;
begin
  ergebnis := 0;

  for i := 1 to 13 do
  begin
    ergebnis := ergebnis + StrToFloatDef(TEdit(FindControl('Edit' + IntToStr(i))).Text, 0);
  end;

  DbEdit13.Text := FloatToStrF(ergebnis, ffFixed, 8, 2);
end;
Und dieses eine Event dann eben allen Edits zuweisen.

Edit nachtrag:
Er meint, dass Du nur ein Event benutzt anstelle von 13 einzelnen Methoden.
Und klicke bitte noch ganz schnell bei Deinem letzten beitrag rechts oben auf 'EDIT' und lege noch [ Delphi ]...[/ Delphi ] Tags um den Code in Deinem Beitrag, damit wir Mods das nicht immer machen müssen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#9

Re: Addieren von Edits. Gehts auch kürzer?

  Alt 18. Mär 2009, 15:34
Hallo,

hatten wir den Lösungsansatz dazu nicht schon hier?
Statttext := ini.ReadString('Abschnitt',name,text); nehmen wir jetzt nur einfachzahl := zahl + StrToFloatDef(text,0);
  Mit Zitat antworten Zitat
Ouou

Registriert seit: 16. Mär 2009
108 Beiträge
 
Delphi 2007 Architect
 
#10

Re: Addieren von Edits. Gehts auch kürzer?

  Alt 18. Mär 2009, 15:44
ok des ist natürlich einleuchtend des so zu schreiben. ne kleine frage noch, wie mach ich des das in der procedure EditExit kein undefinierter bezeichner ist?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 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