|
Antwort |
Registriert seit: 5. Mär 2013 502 Beiträge Delphi 7 Enterprise |
#1
Hallo Zusammen Wiedereinmal
Ich habe 49 variablen einen arry of double draus machen ist kein Problem. Nun will ich aber jeder Variablen den 0 zuweisen Habe es schon mit Versucht Gibt aber ne klare Fehlermeldung zurück
Delphi-Quellcode:
var
d: double; Zahl: array[1..49] of double; begin for d:=zahl1 to zahl49 do begin d:=0; end; end; for loop control variable must have ordinal type. wie muss ich an diese Sache rangehen? |
Zitat |
Registriert seit: 17. Sep 2006 Ort: Barchfeld 27.624 Beiträge Delphi 12 Athens |
#2
Hast Du nun 49 Variablen oder eine 49-elementige Array-Variable? Ich steig schon bei den paar Zeilen Code nicht mehr durch, da geht ja alles durcheinander
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein) Dieser Tag ist längst gekommen |
Zitat |
Registriert seit: 5. Mär 2013 502 Beiträge Delphi 7 Enterprise |
#3
Ich zeigt dir mal nen beispielcode aus meinem "Prog"
Aber nicht erschrecken lol
Delphi-Quellcode:
procedure TForm1.LMDSpeedButton2Click(Sender: TObject);
var gesamtzahl,gesamtzahl1,gesamtzahl2,gesamtzahl3,gesamtzahl4, gesamtzahl5,gesamtzahl6,gesamtzahl7,gesamtzahl8, gesamtzahl9,gesamtzahl12,gesamtzahl13,gesamtzahl14,gesamtzahl15, gesamtzahl16,gesamtzahl17,gesamtzahl18,gesamtzahl19,gesamtzahl20, gesamtzahl21,gesamtzahl22,gesamtzahl23,gesamtzahl24, gesamtzahl25,gesamtzahl26,gesamtzahl27,gesamtzahl28, gesamtzahl31,gesamtzahl32,gesamtzahl33,gesamtzahl34, gesamtzahl35,gesamtzahl36,gesamtzahl37,gesamtzahl38,gesamtzahl39, gesamtzahl41,gesamtzahl42,gesamtzahl43,gesamtzahl44, gesamtzahl45,gesamtzahl46,gesamtzahl47,gesamtzahl48,gesamtzahl49: double; i:integer; s : String; e: array of char; begin for i:=1 to eltreestringgrid1.RowCount-1 do begin if eltreestringgrid1.cells[5,i]='2110' then Length(eltreestringgrid1.Cells[2,i]); if eltreestringgrid1.cells[5,i]='2110' then s := eltreestringgrid1.Cells[2,i]; if eltreestringgrid1.cells[5,i]='2110' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='2110' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='2110' then eltreestringgrid1.Cells[2,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='2110' then gesamtzahl:=gesamtzahl + strtofloat(eltreestringgrid1.cells[2,i]); if eltreestringgrid1.cells[5,i]='2110' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else; if eltreestringgrid1.cells[5,i]='3221' then Length(eltreestringgrid1.Cells[2,i]); if eltreestringgrid1.cells[5,i]='3221' then s := eltreestringgrid1.Cells[2,i]; if eltreestringgrid1.cells[5,i]='3221' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='3221' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='3221' then eltreestringgrid1.Cells[2,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='3221' then gesamtzahl1:=gesamtzahl1 + strtofloat(eltreestringgrid1.cells[2,i]); if eltreestringgrid1.cells[5,i]='3221' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else; if eltreestringgrid1.cells[5,i]='2303' then Length(eltreestringgrid1.Cells[2,i]); if eltreestringgrid1.cells[5,i]='2303' then s := eltreestringgrid1.Cells[2,i]; if eltreestringgrid1.cells[5,i]='2303' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='2303' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='2303' then eltreestringgrid1.Cells[2,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='2303' then gesamtzahl2:=gesamtzahl2 + strtofloat(eltreestringgrid1.cells[2,i]); if eltreestringgrid1.cells[5,i]='2303' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else; if eltreestringgrid1.cells[5,i]='2400' then Length(eltreestringgrid1.Cells[2,i]); if eltreestringgrid1.cells[5,i]='2400' then s := eltreestringgrid1.Cells[2,i]; if eltreestringgrid1.cells[5,i]='2400' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='2400' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='2400' then eltreestringgrid1.Cells[2,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='2400' then gesamtzahl3:=gesamtzahl3 + strtofloat(eltreestringgrid1.cells[2,i]); if eltreestringgrid1.cells[5,i]='2400' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else; if eltreestringgrid1.cells[5,i]='2750' then Length(eltreestringgrid1.Cells[3,i]); if eltreestringgrid1.cells[5,i]='2750' then s := eltreestringgrid1.Cells[3,i]; if eltreestringgrid1.cells[5,i]='2750' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='2750' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='2750' then eltreestringgrid1.Cells[3,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='2750' then gesamtzahl6:=gesamtzahl6 + strtofloat(eltreestringgrid1.cells[3,i]); if eltreestringgrid1.cells[5,i]='2750' then eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €' else; if eltreestringgrid1.cells[5,i]='2900' then Length(eltreestringgrid1.Cells[3,i]); if eltreestringgrid1.cells[5,i]='2900' then s := eltreestringgrid1.Cells[3,i]; if eltreestringgrid1.cells[5,i]='2900' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='2900' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='2900' then eltreestringgrid1.Cells[3,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='2900' then gesamtzahl7:=gesamtzahl7 + strtofloat(eltreestringgrid1.cells[3,i]); if eltreestringgrid1.cells[5,i]='2900' then eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €' else; if eltreestringgrid1.cells[5,i]='4110' then Length(eltreestringgrid1.Cells[2,i]); if eltreestringgrid1.cells[5,i]='4110' then s := eltreestringgrid1.Cells[2,i]; if eltreestringgrid1.cells[5,i]='4110' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='4110' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='4110' then eltreestringgrid1.Cells[2,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='4110' then gesamtzahl12:=gesamtzahl12 + strtofloat(eltreestringgrid1.cells[2,i]); if eltreestringgrid1.cells[5,i]='4110' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else; if eltreestringgrid1.cells[5,i]='4150' then Length(eltreestringgrid1.Cells[2,i]); if eltreestringgrid1.cells[5,i]='4150' then s := eltreestringgrid1.Cells[2,i]; if eltreestringgrid1.cells[5,i]='4150' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='4150' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='4150' then eltreestringgrid1.Cells[2,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='4150' then gesamtzahl13:=gesamtzahl13 + strtofloat(eltreestringgrid1.cells[2,i]); if eltreestringgrid1.cells[5,i]='4150' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else; if eltreestringgrid1.cells[5,i]='4230' then Length(eltreestringgrid1.Cells[2,i]); if eltreestringgrid1.cells[5,i]='4230' then s := eltreestringgrid1.Cells[2,i]; if eltreestringgrid1.cells[5,i]='4230' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='4230' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='4230' then eltreestringgrid1.Cells[2,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='4230' then gesamtzahl14:=gesamtzahl14 + strtofloat(eltreestringgrid1.cells[2,i]); if eltreestringgrid1.cells[5,i]='4230' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else; if eltreestringgrid1.cells[5,i]='4900' then Length(eltreestringgrid1.Cells[3,i]); if eltreestringgrid1.cells[5,i]='4900' then s := eltreestringgrid1.Cells[3,i]; if eltreestringgrid1.cells[5,i]='4900' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='4900' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='4900' then eltreestringgrid1.Cells[3,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='4900' then gesamtzahl17:=gesamtzahl17 + strtofloat(eltreestringgrid1.cells[3,i]); if eltreestringgrid1.cells[5,i]='4900' then eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €' else; if eltreestringgrid1.cells[5,i]='5020' then Length(eltreestringgrid1.Cells[2,i]); if eltreestringgrid1.cells[5,i]='5020' then s := eltreestringgrid1.Cells[2,i]; if eltreestringgrid1.cells[5,i]='5020' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='5020' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='5020' then eltreestringgrid1.Cells[2,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='5020' then gesamtzahl21:=gesamtzahl21 + strtofloat(eltreestringgrid1.cells[2,i]); if eltreestringgrid1.cells[5,i]='5020' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else; if eltreestringgrid1.cells[5,i]='5250' then Length(eltreestringgrid1.Cells[2,i]); if eltreestringgrid1.cells[5,i]='5250' then s := eltreestringgrid1.Cells[2,i]; if eltreestringgrid1.cells[5,i]='5250' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='5250' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='5250' then eltreestringgrid1.Cells[2,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='5250' then gesamtzahl22:=gesamtzahl22 + strtofloat(eltreestringgrid1.cells[2,i]); if eltreestringgrid1.cells[5,i]='5250' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else; if eltreestringgrid1.cells[5,i]='5872' then Length(eltreestringgrid1.Cells[3,i]); if eltreestringgrid1.cells[5,i]='5872' then s := eltreestringgrid1.Cells[3,i]; if eltreestringgrid1.cells[5,i]='5872' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='5872' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='5872' then eltreestringgrid1.Cells[3,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='5872' then gesamtzahl24:=gesamtzahl24 + strtofloat(eltreestringgrid1.cells[3,i]); if eltreestringgrid1.cells[5,i]='5872' then eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €' else; if eltreestringgrid1.cells[5,i]='5650' then Length(eltreestringgrid1.Cells[3,i]); if eltreestringgrid1.cells[5,i]='5650' then s := eltreestringgrid1.Cells[3,i]; if eltreestringgrid1.cells[5,i]='5650' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='5650' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='5650' then eltreestringgrid1.Cells[3,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='5650' then gesamtzahl25:=gesamtzahl25 + strtofloat(eltreestringgrid1.cells[3,i]); if eltreestringgrid1.cells[5,i]='5650' then eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €' else; if eltreestringgrid1.cells[5,i]='8028' then Length(eltreestringgrid1.Cells[2,i]); if eltreestringgrid1.cells[5,i]='8028' then s := eltreestringgrid1.Cells[2,i]; if eltreestringgrid1.cells[5,i]='8028' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='8028' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='8028' then eltreestringgrid1.Cells[2,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='8028' then gesamtzahl41:=gesamtzahl41 + strtofloat(eltreestringgrid1.cells[2,i]); if eltreestringgrid1.cells[5,i]='8028' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else; if eltreestringgrid1.cells[5,i]='7100' then Length(eltreestringgrid1.Cells[2,i]); if eltreestringgrid1.cells[5,i]='7100' then s := eltreestringgrid1.Cells[2,i]; if eltreestringgrid1.cells[5,i]='7100' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='7100' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='7100' then eltreestringgrid1.Cells[2,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='7100' then gesamtzahl42:=gesamtzahl42 + strtofloat(eltreestringgrid1.cells[2,i]); if eltreestringgrid1.cells[5,i]='7100' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else; if eltreestringgrid1.cells[5,i]='8150' then Length(eltreestringgrid1.Cells[3,i]); if eltreestringgrid1.cells[5,i]='8150' then s := eltreestringgrid1.Cells[3,i]; if eltreestringgrid1.cells[5,i]='8150' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='8150' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='8150' then eltreestringgrid1.Cells[3,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='8150' then gesamtzahl45:=gesamtzahl45 + strtofloat(eltreestringgrid1.cells[3,i]); if eltreestringgrid1.cells[5,i]='8150' then eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €' else; if eltreestringgrid1.cells[5,i]='7358' then Length(eltreestringgrid1.Cells[3,i]); if eltreestringgrid1.cells[5,i]='7358' then s := eltreestringgrid1.Cells[3,i]; if eltreestringgrid1.cells[5,i]='7358' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='7358' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='7358' then eltreestringgrid1.Cells[3,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='7358' then gesamtzahl46:=gesamtzahl46 + strtofloat(eltreestringgrid1.cells[3,i]); if eltreestringgrid1.cells[5,i]='7358' then eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €' else; end; Form9.Label2110.Caption := 'Mitgliedsbeiträge:'; Form9.Edit1.text := Format('%f €', [Gesamtzahl]); Form9.Label3221.Caption := 'Spenden:'; Form9.Edit2.text := Format('%f €', [Gesamtzahl1]); Form9.Label2303.Caption := 'Zuschüsse:'; Form9.Edit3.text := Format('%f €', [Gesamtzahl2]); Form9.Label2400.Caption := 'sonstige Einnahmen:'; Form9.Edit4.text := Format('%f €', [Gesamtzahl3]); Gesamtzahl4 := Gesamtzahl + Gesamtzahl1 + Gesamtzahl2 + Gesamtzahl3; Form9.LabelGesamt.Caption := 'Summe Einnahmen:'; Form9.Edit5.text := Format('%f €', [Gesamtzahl4]); Gesamtzahl5:=0; Form9.Edit6.text := Format('%f €', [Gesamtzahl5]); Form9.Edit7.text := Format('%f €', [Gesamtzahl6]); Form9.Edit8.text := Format('%f €', [Gesamtzahl7]); Gesamtzahl8 := Gesamtzahl5 + Gesamtzahl6 + Gesamtzahl7; Form9.Edit9.text := Format('%f €', [Gesamtzahl8]); Form9.Edit10.text := Format('%f €', [Gesamtzahl8]); Gesamtzahl9 := Gesamtzahl4-Gesamtzahl8; Form9.Edit21.text:=floattostr(gesamtzahl9); Form9.Edit11.text := Format('%f €', [Gesamtzahl9]); Form9.Edit12.text := Format('%f €', [Gesamtzahl12]); Form9.Edit13.text := Format('%f €', [Gesamtzahl13]); Form9.Edit14.text := Format('%f €', [Gesamtzahl14]); Gesamtzahl15 := Gesamtzahl12 + Gesamtzahl13 + Gesamtzahl14; Form9.Edit15.text := Format('%f €', [Gesamtzahl15]); Gesamtzahl16:=0; Form9.Edit16.text := Format('%f €', [Gesamtzahl16]); Form9.Edit17.text := Format('%f €', [Gesamtzahl17]); Gesamtzahl18 := Gesamtzahl16 + Gesamtzahl17; Form9.Edit18.text := Format('%f €', [Gesamtzahl18]); Gesamtzahl19 := Gesamtzahl18; Form9.Edit19.text := Format('%f €', [Gesamtzahl19]); Gesamtzahl20 := Gesamtzahl15-Gesamtzahl18; Form9.Edit22.text:=floattostr(gesamtzahl20) ; Form9.Edit20.text := Format('%f €', [Gesamtzahl20]); Form10.Edit1.text := Format('%f €', [Gesamtzahl21]); Form10.Edit2.text := Format('%f €', [Gesamtzahl22]); Gesamtzahl23 := Gesamtzahl21 + Gesamtzahl22; Form10.Edit3.text := Format('%f €', [Gesamtzahl23]); Form10.Edit4.text := Format('%f €', [Gesamtzahl24]); Form10.Edit5.text := Format('%f €', [Gesamtzahl25]); Gesamtzahl26 := Gesamtzahl24 + Gesamtzahl25; Form10.Edit6.text := Format('%f €', [Gesamtzahl26]); Form10.edit7.text := Format('%f €', [Gesamtzahl26]); Gesamtzahl27 := Gesamtzahl23 - Gesamtzahl26; Form10.Edit9.text:=floattostr(gesamtzahl27); Form10.edit8.text := Format('%f €', [Gesamtzahl27]); Form11.edit1.text := Format('%f €', [Gesamtzahl31]); Form11.edit2.text := Format('%f €', [Gesamtzahl32]); Form11.edit3.text := Format('%f €', [Gesamtzahl33]); Form11.edit4.text := Format('%f €', [Gesamtzahl34]); Form11.edit5.text := Format('%f €', [Gesamtzahl35]); Form11.edit6.text := Format('%f €', [Gesamtzahl36]); Form11.edit7.text := Format('%f €', [Gesamtzahl37]); Form11.edit8.text := Format('%f €', [Gesamtzahl38]); Form11.Edit10.text:=floattostr(gesamtzahl39); Form11.edit9.text := Format('%f €', [Gesamtzahl39]); Form12.edit1.text := Format('%f €', [Gesamtzahl41]); Form12.edit2.text := Format('%f €', [Gesamtzahl42]); gesamtzahl43 := Gesamtzahl41 + Gesamtzahl42; Form12.edit3.text := Format('%f €', [Gesamtzahl43]); Form12.edit4.text := Format('%f €', [Gesamtzahl44]); Form12.edit5.text := Format('%f €', [Gesamtzahl45]); Form12.edit6.text := Format('%f €', [Gesamtzahl46]); gesamtzahl47 := Gesamtzahl44 + Gesamtzahl45 + Gesamtzahl46; Form12.edit7.text := Format('%f €', [Gesamtzahl47]); Form12.edit8.text := Format('%f €', [Gesamtzahl47]); Gesamtzahl48 := Gesamtzahl43 - Gesamtzahl47; Form12.Edit10.text:=floattostr(gesamtzahl48); Form12.edit9.text := Format('%f €', [Gesamtzahl48]); Form13.Show; end; Nun will ich den gesamtzahl variablen allen den Wert 0 zuweisen damit auch der Compiler nicht mehr meckert wie gesamtzahl1 meight have not been intialized. So und nun meckert über den langen code und wie versaut er ist... lol |
Zitat |
Registriert seit: 17. Sep 2006 Ort: Barchfeld 27.624 Beiträge Delphi 12 Athens |
#4
. Naja, die Idee mit dem Array war ja schon ganz richtig (immerhin etwas).
Delphi-Quellcode:
Oder in einer Schleife einzeln zuweisen:
var
Gesamtzahlen: array[1..49] of double; begin FillChar(Gesamtzahlen, SizeOf(Gesamtzahlen), 0);
Delphi-Quellcode:
Und dann statt auf 49 Einzelvariablen auf den entsprechenden Array-Index zugreifen.
var
Gesamtzahlen: array[1..49] of double; i: integer; begin for i := Low(Gesamtzahlen) to High(Gesamtzahlen) do Gesamtzahlen[i] := 0; Form9.Edit1.text := Format('%f €', [Gesamtzahlen[1]]);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein) Dieser Tag ist längst gekommen |
Zitat |
Registriert seit: 16. Jun 2011 703 Beiträge Delphi 12 Athens |
#5
Kauf dir mal ein gutes Buch über Delphi.
Aber ich will ja nicht so sein:
Delphi-Quellcode:
Außerdem:
var
i: integer; Zahl: array[1..49] of double; begin for i:=1 to 49 do begin zahl[i]:=0; end; end;
Zitat:
Delphi-Quellcode:
if eltreestringgrid1.cells[5,i]='2110' then Length(eltreestringgrid1.Cells[2,i]); if eltreestringgrid1.cells[5,i]='2110' then s := eltreestringgrid1.Cells[2,i]; if eltreestringgrid1.cells[5,i]='2110' then setlength(e,length(s)-2); if eltreestringgrid1.cells[5,i]='2110' then copymemory(e,@s[1],length(e)); if eltreestringgrid1.cells[5,i]='2110' then eltreestringgrid1.Cells[2,i]:=(string(e)); if eltreestringgrid1.cells[5,i]='2110' then gesamtzahl:=gesamtzahl + strtofloat(eltreestringgrid1.cells[2,i]); if eltreestringgrid1.cells[5,i]='2110' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else;
Delphi-Quellcode:
if eltreestringgrid1.cells[5,i]='2110' then begin
Length(eltreestringgrid1.Cells[2,i]); s := eltreestringgrid1.Cells[2,i]; setlength(e,length(s)-2); copymemory(e,@s[1],length(e)); eltreestringgrid1.Cells[2,i]:=(string(e)); gesamtzahl:=gesamtzahl +strtofloat(eltreestringgrid1.cells[2,i]); eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €'; end; |
Zitat |
Registriert seit: 29. Dez 2003 Ort: Erding, Republik Bayern 3.323 Beiträge Delphi XE2 Professional |
#6
Delphi-Quellcode:
var
i: integer; Zahl: array[1..49] of double; begin for i:=1 to 49 do begin zahl[i]:=0; end; end;
Delphi-Quellcode:
var
i: integer; Zahl: array[1..49] of double; begin for i := low(Zahl) to high(Zahl) do begin zahl[i]:=0; end; end;
mfg
Helmi >> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! << |
Zitat |
Registriert seit: 11. Okt 2003 Ort: Elbflorenz 44.071 Beiträge Delphi 12 Athens |
#7
Delphi-Quellcode:
if eltreestringgrid1.cells[5,i]='2110' then begin
Length(eltreestringgrid1.Cells[2,i]); s := eltreestringgrid1.Cells[2,i]; setlength(e,length(s)-2); copymemory(e,@s[1],length(e)); eltreestringgrid1.Cells[2,i]:=(string(e)); gesamtzahl:=gesamtzahl +strtofloat(eltreestringgrid1.cells[2,i]); eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €'; end;
Delphi-Quellcode:
if eltreestringgrid1.cells[5,i]='2110' then begin
Length(eltreestringgrid1.Cells[2,i]); // macht nix, da niemand das Result auswertest s := eltreestringgrid1.Cells[2,i]; setlength(e,length(s)-2); copymemory(e,@s[1],length(e)); // den, der das mal nach Unicode umstellen soll ... :waffe_in_ecke_stell:, damit der sich gleich erschießen kann eltreestringgrid1.Cells[2,i]:=(string(e)); // wozu das Char-Array gesamtzahl:=gesamtzahl +strtofloat(eltreestringgrid1.cells[2,i]); // wenn man hier E nimmt, dann kann ist die nächste Zeile sinnlos eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €'; end;
Delphi-Quellcode:
Und die vielen weiteren IFs machen doch das Selbe? (ist ja nicht so gut erkennbar)
if ElTreeStringGrid1.Cells[5, i] = '2110' then begin
s := ElTreeStringGrid1.Cells[2, i]; SetLength(s, Length(s) - 2); // Copy oder Delete gingen auch Gesamtzahl := Gesamtzahl + StrToFloat(s); ElTreeStringGrid1.Cells[2, i] := s + ' €'; end; Also kann man die zusammenfassen und in eine Schleife oder Funktion verschieben, wo die Konstanten und Komponentennamen entsprechend angepasst werden. Ach ja, eine halbwegs ordentliche Codeformatierung, Groß-/Kleinschreibung und ordentliche Namen für Komponenten machen den Code gleich viel lesbarer. Der Vorschlag von bcvs sollte besser mal beherzigt werden.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat, wird PoSex im Delphi viel seltener praktiziert. Geändert von himitsu ( 9. Dez 2013 um 20:57 Uhr) |
Zitat |
Registriert seit: 5. Mär 2013 502 Beiträge Delphi 7 Enterprise |
#8
So Habe den Code Jetzt wie folgt geändert:
Delphi-Quellcode:
procedure TForm1.LMDSpeedButton2Click(Sender: TObject);
var Gesamtzahl:double; Gesamtzahlen: array[1..48] of double; i:integer; s : String; begin Gesamtzahl:=0; for i := Low(Gesamtzahlen) to High(Gesamtzahlen) do Gesamtzahlen[i] := 0; for i:=1 to eltreestringgrid1.RowCount-1 do begin if eltreestringgrid1.cells[5,i]='2110' then begin s := ElTreeStringGrid1.Cells[2,i]; SetLength(S, Length(s) - 2); Gesamtzahl := Gesamtzahl + StrToFloat(S); ElTreeStringGrid1.Cells[2,i] := S + ' €'; end; if eltreestringgrid1.cells[5,i]='3221' then begin s := eltreestringgrid1.Cells[2,i]; setlength(e,length(s)-2); gesamtzahlen[1]:=gesamtzahlen[1] + strtofloat(eltreestringgrid1.cells[2,i]); eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €'; end; if eltreestringgrid1.cells[5,i]='2303' then begin s := eltreestringgrid1.Cells[2,i]; setlength(e,length(s)-2); gesamtzahlen[2]:=gesamtzahlen[2] + strtofloat(eltreestringgrid1.cells[2,i]); eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €'; end; if eltreestringgrid1.cells[5,i]='2400' then begin s := eltreestringgrid1.Cells[2,i]; setlength(e,length(s)-2); gesamtzahlen[3]:=gesamtzahlen[3] + strtofloat(eltreestringgrid1.cells[2,i]); eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €'; end; if eltreestringgrid1.cells[5,i]='2750' then begin s := eltreestringgrid1.Cells[3,i]; setlength(e,length(s)-2); gesamtzahlen[6]:=gesamtzahlen[6] + strtofloat(eltreestringgrid1.cells[3,i]); eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €'; end; if eltreestringgrid1.cells[5,i]='2900' then begin s := eltreestringgrid1.Cells[3,i]; setlength(e,length(s)-2); gesamtzahlen[7]:=gesamtzahlen[7] + strtofloat(eltreestringgrid1.cells[3,i]); eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €'; end; if eltreestringgrid1.cells[5,i]='4110' then begin s := eltreestringgrid1.Cells[2,i]; setlength(e,length(s)-2); gesamtzahlen[12]:=gesamtzahlen[12] + strtofloat(eltreestringgrid1.cells[2,i]); eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €'; end; if eltreestringgrid1.cells[5,i]='4150' then begin s := eltreestringgrid1.Cells[2,i]; setlength(e,length(s)-2); gesamtzahlen[13]:=gesamtzahlen[13] + strtofloat(eltreestringgrid1.cells[2,i]); eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €'; end; if eltreestringgrid1.cells[5,i]='4230' then begin s := eltreestringgrid1.Cells[2,i]; setlength(e,length(s)-2); gesamtzahlen[14]:=gesamtzahlen[14] + strtofloat(eltreestringgrid1.cells[2,i]); eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €'; end; if eltreestringgrid1.cells[5,i]='4900' then begin s := eltreestringgrid1.Cells[3,i]; setlength(e,length(s)-2); gesamtzahlen[17]:=gesamtzahlen[17] + strtofloat(eltreestringgrid1.cells[3,i]); eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €'; end; if eltreestringgrid1.cells[5,i]='5020' then begin s := eltreestringgrid1.Cells[2,i]; setlength(e,length(s)-2); gesamtzahlen[21]:=gesamtzahlen[21] + strtofloat(eltreestringgrid1.cells[2,i]); eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €'; end; if eltreestringgrid1.cells[5,i]='5250' then begin s := eltreestringgrid1.Cells[2,i]; setlength(e,length(s)-2); gesamtzahlen[22]:=gesamtzahlen[22] + strtofloat(eltreestringgrid1.cells[2,i]); eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €'; end; if eltreestringgrid1.cells[5,i]='5872' then begin s := eltreestringgrid1.Cells[3,i]; setlength(e,length(s)-2); gesamtzahlen[24]:=gesamtzahlen[24] + strtofloat(eltreestringgrid1.cells[3,i]); eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €'; end; if eltreestringgrid1.cells[5,i]='5650' then begin s := eltreestringgrid1.Cells[3,i]; setlength(e,length(s)-2); gesamtzahlen[25]:=gesamtzahlen[25] + strtofloat(eltreestringgrid1.cells[3,i]); eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €'; end; if eltreestringgrid1.cells[5,i]='8028' then begin s := eltreestringgrid1.Cells[2,i]; setlength(e,length(s)-2); gesamtzahlen[41]:=gesamtzahlen[41] + strtofloat(eltreestringgrid1.cells[2,i]); eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €'; end; if eltreestringgrid1.cells[5,i]='7100' then begin s := eltreestringgrid1.Cells[2,i]; setlength(e,length(s)-2); gesamtzahlen[42]:=gesamtzahlen[42] + strtofloat(eltreestringgrid1.cells[2,i]); eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €'; end; if eltreestringgrid1.cells[5,i]='8150' then begin s := eltreestringgrid1.Cells[3,i]; setlength(e,length(s)-2); gesamtzahlen[45]:=gesamtzahlen[45] + strtofloat(eltreestringgrid1.cells[3,i]); eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €'; end; if eltreestringgrid1.cells[5,i]='7358' then begin s := eltreestringgrid1.Cells[3,i]; setlength(e,length(s)-2); gesamtzahlen[46]:=gesamtzahlen[46] + strtofloat(eltreestringgrid1.cells[3,i]); eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €'; end; Form9.Label2110.Caption := 'Mitgliedsbeiträge:'; Form9.Edit1.text := Format('%f €', [Gesamtzahl]); Form9.Label3221.Caption := 'Spenden:'; Form9.Edit2.text := Format('%f €', [Gesamtzahlen[1]]); Form9.Label2303.Caption := 'Zuschüsse:'; Form9.Edit3.text := Format('%f €', [Gesamtzahlen[2]]); Form9.Label2400.Caption := 'sonstige Einnahmen:'; Form9.Edit4.text := Format('%f €', [Gesamtzahlen[3]]); Gesamtzahlen[4] := Gesamtzahl + Gesamtzahlen[1] + Gesamtzahlen[2] + Gesamtzahlen[3]; Form9.LabelGesamt.Caption := 'Summe Einnahmen:'; Form9.Edit5.text := Format('%f €', [Gesamtzahlen[4]]); Gesamtzahlen[5]:=0; Form9.Edit6.text := Format('%f €', [Gesamtzahlen[5]]); Form9.Edit7.text := Format('%f €', [Gesamtzahlen[6]]); Form9.Edit8.text := Format('%f €', [Gesamtzahlen[7]]); Gesamtzahlen[8] := Gesamtzahlen[5] + Gesamtzahlen[6] + Gesamtzahlen[7]; Form9.Edit9.text := Format('%f €', [Gesamtzahlen[8]]); Form9.Edit10.text := Format('%f €', [Gesamtzahlen[8]]); Gesamtzahlen[9] := Gesamtzahlen[4]-Gesamtzahlen[8]; Form9.Edit21.text := floattostr(gesamtzahlen[9]); Form9.Edit11.text := Format('%f €', [Gesamtzahlen[9]]); Form9.Edit12.text := Format('%f €', [Gesamtzahlen[12]]); Form9.Edit13.text := Format('%f €', [Gesamtzahlen[13]]); Form9.Edit14.text := Format('%f €', [Gesamtzahlen[14]]); Gesamtzahlen[15] := Gesamtzahlen[12] + Gesamtzahlen[13] + Gesamtzahlen[14]; Form9.Edit15.text := Format('%f €', [Gesamtzahlen[15]]); Gesamtzahlen[16]:=0; Form9.Edit16.text := Format('%f €', [Gesamtzahlen[16]]); Form9.Edit17.text := Format('%f €', [Gesamtzahlen[17]]); Gesamtzahlen[18] := Gesamtzahlen[16] + Gesamtzahlen[17]; Form9.Edit18.text := Format('%f €', [Gesamtzahlen[18]]); Gesamtzahlen[19] := Gesamtzahlen[18]; Form9.Edit19.text := Format('%f €', [Gesamtzahlen[19]]); Gesamtzahlen[20] := Gesamtzahlen[15]-Gesamtzahlen[18]; Form9.Edit22.text := floattostr(gesamtzahlen[20]) ; Form9.Edit20.text := Format('%f €', [Gesamtzahlen[20]]); Form10.Edit1.text := Format('%f €', [Gesamtzahlen[21]]); Form10.Edit2.text := Format('%f €', [Gesamtzahlen[22]]); Gesamtzahlen[23] := Gesamtzahlen[21] + Gesamtzahlen[22]; Form10.Edit3.text := Format('%f €', [Gesamtzahlen[23]]); Form10.Edit4.text := Format('%f €', [Gesamtzahlen[24]]); Form10.Edit5.text := Format('%f €', [Gesamtzahlen[25]]); Gesamtzahlen[26] := Gesamtzahlen[24] + Gesamtzahlen[25]; Form10.Edit6.text := Format('%f €', [Gesamtzahlen[26]]); Form10.edit7.text := Format('%f €', [Gesamtzahlen[26]]); Gesamtzahlen[27] := Gesamtzahlen[23] - Gesamtzahlen[26]; Form10.Edit9.text := floattostr(gesamtzahlen[27]); Form10.edit8.text := Format('%f €', [Gesamtzahlen[27]]); Form11.edit1.text := Format('%f €', [Gesamtzahlen[31]]); Form11.edit2.text := Format('%f €', [Gesamtzahlen[32]]); Form11.edit3.text := Format('%f €', [Gesamtzahlen[33]]); Form11.edit4.text := Format('%f €', [Gesamtzahlen[34]]); Form11.edit5.text := Format('%f €', [Gesamtzahlen[35]]); Form11.edit6.text := Format('%f €', [Gesamtzahlen[36]]); Form11.edit7.text := Format('%f €', [Gesamtzahlen[37]]); Form11.edit8.text := Format('%f €', [Gesamtzahlen[38]]); Form11.Edit10.text := floattostr(gesamtzahlen[39]); Form11.edit9.text := Format('%f €', [Gesamtzahlen[39]]); Form12.edit1.text := Format('%f €', [Gesamtzahlen[41]]); Form12.edit2.text := Format('%f €', [Gesamtzahlen[42]]); gesamtzahlen[43] := Gesamtzahlen[41] + Gesamtzahlen[42]; Form12.edit3.text := Format('%f €', [Gesamtzahlen[43]]); Form12.edit4.text := Format('%f €', [Gesamtzahlen[44]]); Form12.edit5.text := Format('%f €', [Gesamtzahlen[45]]); Form12.edit6.text := Format('%f €', [Gesamtzahlen[46]]); gesamtzahlen[47] := Gesamtzahlen[44] + Gesamtzahlen[45] + Gesamtzahlen[46]; Form12.edit7.text := Format('%f €', [Gesamtzahlen[47]]); Form12.edit8.text := Format('%f €', [Gesamtzahlen[47]]); Gesamtzahlen[48] := Gesamtzahlen[43] - Gesamtzahlen[47]; Form12.Edit10.text := floattostr(gesamtzahlen[48]); Form12.edit9.text := Format('%f €', [Gesamtzahlen[48]]); Form13.Show; end; end; |
Zitat |
Registriert seit: 5. Mär 2013 502 Beiträge Delphi 7 Enterprise |
#9
Zitat:
Also kann man die zusammenfassen und in eine Schleife oder Funktion verschieben, wo die Konstanten und Komponentennamen entsprechend angepasst werden.
Diese Procedure wird ja nur einmal im jahr ausgeführt. Hier werden die Daten ausen einem Kassenbuch nach Kostenstellen aufgelistet und in die entsprechenden Fenster zur Einnahmen/Ausgaben Überschussrechnung fürs Finanzamt zum Druck vorbereitet. Daher Frag ich mich ob es Sinn macht und wenn ja Warum? |
Zitat |
Registriert seit: 5. Jan 2005 Ort: Stadthagen 9.454 Beiträge Delphi 10 Seattle Enterprise |
#10
Ja wenn die nur einmal im Jahr aufgerufen wird, dann macht das ja nix.
Ist ja nur fürs Finanzamt ... warum sollte man da vernünftig (übersichtlich, KISS, DRY, etc.) programmieren. Würd ja auch gar nicht zum Rest passen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60) |
Zitat |
Ansicht |
Linear-Darstellung |
Zur Hybrid-Darstellung wechseln |
Zur Baum-Darstellung wechseln |
ForumregelnEs 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
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
LinkBack URL |
About LinkBacks |