Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Listbox Items weiterverarbeiten (https://www.delphipraxis.net/106494-listbox-items-weiterverarbeiten.html)

The_Doomed 11. Jan 2008 18:40


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:
 
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;
Und dann würde mich interessieren wie man TryStrTo... einsetzt - klappt bei mir nicht wegen Überladener Version ^^
ich liebe diese super zu interpretierenden Fehler (soll heißen kann damit nix anfangen)

Danke schon ma im Vorraus :coder2:

The_Doomed

mkinzler 11. Jan 2008 18:42

Re: Listbox Items weiterverarbeiten
 
Delphi-Quellcode:
if not TryStrToInt(Edit2.Text, b) then //Kein Integer

The_Doomed 11. Jan 2008 18:44

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 ^^

Matze 11. Jan 2008 18:45

Re: Listbox Items weiterverarbeiten
 
Mit einer For-Schleife:

Delphi-Quellcode:
for i := 0 to ListBox.Items.Count - 1 do
kannst du alle Items durchgehen, in einen entsprechenden Datentyp konvertieren und damit weiterrechnen.

The_Doomed 11. Jan 2008 18:48

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:

mkinzler 11. Jan 2008 18:50

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.

DeddyH 11. Jan 2008 18:50

Re: Listbox Items weiterverarbeiten
 
Delphi-Quellcode:
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;
Getippt und nicht getestet.

The_Doomed 11. Jan 2008 19:01

Re: Listbox Items weiterverarbeiten
 
und wie lass ich das mittel ausgeben ??
muss ich ja wieder in nen string konvertieren oder ?

mkinzler 11. Jan 2008 19:02

Re: Listbox Items weiterverarbeiten
 
Zitat:

und wie lass ich das mittel ausgeben ??
muss ich ja wieder in nen string konvertieren oder ?
Ja. Z.B. mit Format

The_Doomed 11. Jan 2008 19:04

Re: Listbox Items weiterverarbeiten
 
und das bedeutet


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:12 Uhr.
Seite 1 von 2  1 2      

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