![]() |
Listbox Items weiterverarbeiten
Also hallo erstmal
ich hab dieses Schuljahr mit Delphi angefangen hatte aber schon n paar vorkenntnisse^^ so zu meinen Problem Es geht um die Brechnung eines Mittelwertes mit Zahlen (Strings) die in einer listbox stehen bisher bin ich so weit gekommen dass nur zahlen in die listbox eingetragen werden können (is allerdings nicht die feine art) nun möchte ich wenn ich alle werte eingetragen habe und den button zur brechnung des MW drücke dass er alle items aus der liste in real Werte umwandelt und ich damit den mittelwert berechnen kann
Delphi-Quellcode:
Und dann würde mich interessieren wie man TryStrTo... einsetzt - klappt bei mir nicht wegen Überladener Version ^^procedure TForm1.Button1Click(Sender: TObject); //Einfügen einer Zahl in die Listbox über StrToFloat - FloatToStr var c:String; b:Integer; a:real ; begin b:=StrToInt(Edit2.Text); a:=StrToFloat(Edit1.Text); c:=FloatToStr(a); Listbox1.Items.Add(c); b:=b+1; Edit2.Text:= IntToStr(b); end; procedure TForm1.Button2Click(Sender: TObject); //Löschen eines ausgewählten Items begin Listbox1.DeleteSelected; end; procedure TForm1.Button3Click(Sender: TObject); //Schleife zum Löschen der kompletten Liste (evt. gehts auch einfacher) var a,b:Integer; begin a:=0; b:=StrToInt(Edit2.Text); Repeat begin Listbox1.Items.Delete(0); b:=b-1; Edit2.Text:=IntToStr(b); end; Until b=0; end; procedure TForm1.Button4Click(Sender: TObject); //Stelle an der der Mittelwert aus den Items der Listbox berechnet werden soll begin end; ich liebe diese super zu interpretierenden Fehler (soll heißen kann damit nix anfangen) Danke schon ma im Vorraus :coder2: The_Doomed |
Re: Listbox Items weiterverarbeiten
Delphi-Quellcode:
if not TryStrToInt(Edit2.Text, b) then //Kein Integer
|
Re: Listbox Items weiterverarbeiten
achso hätt ich dazusagen sollen
das b und edit 2 is ne Zahl in nem Edit feld welche nur die anzahl der Einträge anzeigt die sich in der box befinden um diese dann mit der schleife zu löschen hat also mit dem problem ni wirklich was zu tun ^^ |
Re: Listbox Items weiterverarbeiten
Mit einer For-Schleife:
Delphi-Quellcode:
kannst du alle Items durchgehen, in einen entsprechenden Datentyp konvertieren und damit weiterrechnen.
for i := 0 to ListBox.Items.Count - 1 do
|
Re: Listbox Items weiterverarbeiten
das hab ich auch schon anderswo gelesen aber ich habs ni verstanden wäre cool wenn man dass ma n bisschen ausführlicher erklären würde ich mach das noch ni so lange :angel2:
|
Re: Listbox Items weiterverarbeiten
ListBox.Items.Count enthält die Anzahl der Einträge der Liste, da der Index bei 0 beginnt muss man dann 1 abziehen.
|
Re: Listbox Items weiterverarbeiten
Delphi-Quellcode:
Getippt und nicht getestet.
procedure TForm1.Button1Click(Sender: TObject);
//Einfügen einer Zahl in die Listbox über StrToFloat - FloatToStr var c:String; b:Integer; a:real ; begin b:=StrToInt(Edit2.Text); a:=StrToFloat(Edit1.Text); c:=FloatToStr(a); Listbox1.Items.Add(c); b:=b+1; Edit2.Text:= IntToStr(b); end; procedure TForm1.Button2Click(Sender: TObject); //Löschen eines ausgewählten Items begin Listbox1.DeleteSelected; end; procedure TForm1.Button3Click(Sender: TObject); //Schleife zum Löschen der kompletten Liste (evt. gehts auch einfacher) begin ListBox1.Items.Clear; end; procedure TForm1.Button4Click(Sender: TObject); //Stelle an der der Mittelwert aus den Items der Listbox berechnet werden soll var i: integer; Summe, Mittel: double; begin Summe := 0; Mittel := 0; for i := 0 to ListBox1.Items.Count - 1 do Summe := Summe + StrToFloat(ListBox1.Items[i]); if ListBox1.Items.Count > 0 then Mittel := Summe / ListBox1.Items.Count; end; |
Re: Listbox Items weiterverarbeiten
und wie lass ich das mittel ausgeben ??
muss ich ja wieder in nen string konvertieren oder ? |
Re: Listbox Items weiterverarbeiten
Zitat:
|
Re: Listbox Items weiterverarbeiten
und das bedeutet
|
Re: Listbox Items weiterverarbeiten
Mit Format kannt du den wert fomatieren
|
Re: Listbox Items weiterverarbeiten
das is mir ja klar aber ich weiß ni wie ich es anwende das lässt sich auch aus der supertollen für laien komplett unverstänlichen hilfe nicht herauslesen
|
Re: Listbox Items weiterverarbeiten
Delphi-Quellcode:
Gibt das Mittel mit 2 Nachkommastellen aus.
ShowMessage(Format('%.2f',[Mittel]));
|
Re: Listbox Items weiterverarbeiten
gut funzt
danke |
Re: Listbox Items weiterverarbeiten
Du kannst dir übrigens zukünftig sehr leicht selbst helfen. Bei den Delphi-Funktionen wie TryStrToInt oder Format findest du die Parameter, die übergeben werden sollen, mit einer kurzen Erklärung in der Delphi-Hilfe (Caret im Editor auf den Funktionsnamen setzen und F1 drücken). Auch am Hint im Editor siehst du, welche Parameter eine Funktion erwartet.
|
Re: Listbox Items weiterverarbeiten
na ja da zeigt es aber immer sachen mit deren namen ich nix anfangen kann weil ich das einfach noch nicht lange genug mache aber ich denk mal das wird schon noch ^^
trotzdem danke |
Re: Listbox Items weiterverarbeiten
Ehm sag mal hast du es jetzt mit der for schleife verstahnden????
Eigentlich ganz einfach: Also Integer Variable machen(also bei procedure schreiben var : I : Integer. Dann sagt du den Berecih bzw. die Anzahl der Wiederholungen der Anweisung z.b.
Delphi-Quellcode:
Aber ich hoffe du verstehst jetzt ein bischen besser wie for-Schleife geht :thumb:
for I := 1 to 3 do //also 3 Mal(bei Indexen ist Count immer 1 höher deshalb -1)
TestForm := TForm.Create(Self); {dann wird das Formular 3 mal erstellt. (bin jetzt grad net daheim am Rechner und es kann sein, dass bei dem beispiel eine Zugriefsverletzung gibt, weil man das gleiche Form nicht 3 mal zeichnen kann.} |
Re: Listbox Items weiterverarbeiten
lol die schleife selbst war gar nicht mein problem wie auch der titel besagt wusste ich nicht
wie ich die items aus der listbox halt weiterverwenden kann ^^ weitere Frage kann man statt double auch einfach real nehmen oder is das von bedeutung (summe, mittel:double) The_Doomed |
Re: Listbox Items weiterverarbeiten
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:58 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 by Thomas Breitkreuz