![]() |
Addieren von Edits. Gehts auch kürzer?
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:
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.
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; mfg [edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit] |
Re: Addieren von Edits. Gehts auch kürzer?
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) |
Re: Addieren von Edits. Gehts auch kürzer?
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.
|
Re: Addieren von Edits. Gehts auch kürzer?
ok des hört sich ja schon mal gut an das es viel kürzer auch get :-D. 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 |
Re: Addieren von Edits. Gehts auch kürzer?
Um ein Control anhand des Namens z.B. ('Edit' + IntToStr(Nummer)) zu finden kannst Du Dir ja mal
![]() |
Re: Addieren von Edits. Gehts auch kürzer?
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; |
Re: Addieren von Edits. Gehts auch kürzer?
was ist an dem:
Delphi-Quellcode:
anders als an meinem?
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; |
Re: Addieren von Edits. Gehts auch kürzer?
Eher so:
Delphi-Quellcode:
Und dieses eine Event dann eben allen Edits zuweisen.
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; 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. |
Re: Addieren von Edits. Gehts auch kürzer?
Hallo,
hatten wir den Lösungsansatz dazu nicht schon ![]() Statt
Delphi-Quellcode:
nehmen wir jetzt nur einfach
text := ini.ReadString('Abschnitt',name,text);
Delphi-Quellcode:
zahl := zahl + StrToFloatDef(text,0);
|
Re: Addieren von Edits. Gehts auch kürzer?
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?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:29 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