Entwickler-Ecke
Sonstiges (Delphi) - Zahlen sortieren
ReddY - Do 02.11.06 17:54
Titel: Zahlen sortieren
Hiho.
Ich wollte ein Programm schreiben, was mir aus 10 Editfeldern zahlen in 10 verschiedene Listboxen sortiert. Problem: Bei der Listbos von 11-20 klappt das nicht. Wieso ? Hab den Code mal unten gepostet. Danke :9
Und: Wie würdet ihr das machen, wenn ihr in den Listboxen die Zahlen der Größe nach nochmal sortieren wolltet ? Hat wer ne Anregeung ? Danke
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41:
| procedure TForm1.Button1Click(Sender: TObject); var z:array[1..10] of integer; var i:integer; begin
listbox1.items.Clear; listbox2.items.Clear; listbox3.items.Clear; listbox4.items.Clear; listbox5.items.Clear; listbox6.items.Clear; listbox7.items.Clear; listbox8.items.Clear; listbox9.items.Clear; listbox10.items.Clear;
z[1]:=strtoint(edit1.text); z[2]:=strtoint(edit2.text); z[3]:=strtoint(edit3.text); z[4]:=strtoint(edit4.text); z[5]:=strtoint(edit5.text); z[6]:=strtoint(edit6.text); z[7]:=strtoint(edit7.text); z[8]:=strtoint(edit8.text); z[9]:=strtoint(edit9.text); z[10]:=strtoint(edit10.text);
for i:= 1 to 10 do if (z[i] >=0) and (z[i] <=10) then begin listBox1.Items.Add(IntToStr(z[i])); end; if (z[i] >10) and (z[i] <=20) then begin listbox2.items.add(inttostr(z[i])); end; end; |
Moderiert von
jasocul: Quote-Tags durch Delphi-Tags ersetzt
mkinzler - Do 02.11.06 18:01
Ich würde das vereinfachen:
Delphi-Quelltext
1:
| Form.FindComponent( 'ListBox'+IntToStr( Z[i] / DIV 10)+1) as TListBox).add( ... |
azubi_20 - Do 02.11.06 18:02
Titel: Re: Zahlen sortieren
ReddY hat folgendes geschrieben: |
Bei der Listbos von 11-20 klappt das nicht.
|
wie äußert sich das ? (absturz, kein Eintrag ... )
was passiert wenn du mit einzelschritt durchgehst ?
ReddY - Do 02.11.06 18:05
na ja ... der trägt einfach nix ein!
azubi_20 - Do 02.11.06 18:07
ok hättest du dein Programm schrittweise mit dem Debugger durchgeführt, hättest du germerkt, dass die betreffende Stelle nicht innerhalb der Schleife liegt und daher nicht erreicht wird.
So müsste das richtig heißen :
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| for i:= 1 to 10 do begin if (z[i] >=0) and (z[i] <=10) then begin listBox1.Items.Add(IntToStr(z[i])); end; if (z[i] >10) and (z[i] <=20) then begin listbox2.items.add(inttostr(z[i])); end; end; end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!