Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Listbox (https://www.delphipraxis.net/72971-listbox.html)

Phoenix 10. Jul 2006 15:05

Re: Listbox
 
Achtung: Pseudocode:
Delphi-Quellcode:
var
  i: integer;
  vergleichswert: integer;
begin
  vergleichswert := 0;

  for i := 0 to liste.Items.Count - 1 do
  begin
    if ( StrToInt(liste.Items[i]) > StrToInt(liste.Items[vergleichswert]) ) then
    begin
      // grösseren Wert gefunden:
      Vergleichswert := i;
    end;
  end;
end;
Am Ende hat i den Index des grössten Elementes in der Liste. Ist aber ungetestet.

Delphi-Freak 10. Jul 2006 15:19

Re: Listbox
 
Wenn ich den Code von Phoenix etwas ausbessern darf:
Delphi-Quellcode:
var
  i: integer;
  vergleichswert: integer;
begin
  vergleichswert := 0;

  for i := 1 to liste.Items.Count - 1 do
  begin
    if ( StrToInt(liste.Items[i]) > StrToInt(liste.Items[vergleichswert]) ) then
    begin
      // grösseren Wert gefunden:
      vergleichswert := i;
    end;
  end;
end;
-> »Am Ende hat vergleichswert den Index des grössten Elementes in der Liste.«

for i := 1 to..., weil StrToInt(liste.Items[0]) > StrToInt(liste.Items[0]) nie stimmen kann -> unnötig bei 0 zu beginnen


LG, ich

sigma 11. Jul 2006 07:56

Re: Listbox
 
also ich hab das jetzt ausprobiert und er zeigt mir immer noch nicht den größten wert an


Delphi-Quellcode:
begin
vergleichswert := 0;
for i := 0 to isbliste.Items.Count - 1 do
  begin
    if ( StrToInt(isbliste.Items[i]) > StrToInt(isbliste.Items[vergleichswert]))
    then
    begin
      Vergleichswert := i;
      edtText.Text := FloatToStr (Vergleichswert);

    end;
  end;
end;
und wenn ich i:=1 setze geht es auch nicht

wenn ich die werte 4,5,6 und 9 habe gibt er mir als größter wert die 3 aus das versteh ich nicht kann mir vielleicht jemand helfen

marabu 11. Jul 2006 09:22

Re: Listbox
 
Hi,

du hast nur den Index ausgegeben und nicht den Wert
Delphi-Quellcode:
begin
  vergleichswert := 0;
  for i := 0 to isbliste.Items.Count - 1 do
  begin
    if ( StrToInt(isbliste.Items[i]) > StrToInt(isbliste.Items[vergleichswert])) then
    begin
      Vergleichswert := i;
      edtText.Text := isbliste.Items[vergleichswert];
    end;
  end;
end;
Grüße vom marabu

xaromz 11. Jul 2006 09:25

Re: Listbox
 
Hallo,

Die Variable "Vergleichswert" beinhaltet nicht die größte Zahl, sondern den Index der größten Zahl. Du bekommst also das Ergebnis mit isbliste.Items[Vergleichswert].

Hier mal das Ganze als Funktion:
Delphi-Quellcode:
function GetMax(LB: TListBox): Integer;
var
  i: Integer;
  Max: Integer;
begin
  if LB.Items.Count = 0 then // Listbox ist leer -> -1
  begin
    Result := -1;
    Exit;
  end;

  Max := 0;
  for i := 1 to LB.Items.Count - 1 do
    if (StrToInt(LB.Items[i]) > StrToInt(LB.Items[Max])) then
      Max := i;
  Result := StrToInt(LB[Max]);
end;
In der ListBox dürfen aber nur Zahlen stehen, sonst gibt's einen Fehler.

Gruß
xaromz

anfänger123 11. Jul 2006 09:49

Re: Listbox
 
so hab es jetzt hin bekommen mit dem maximal und dem minimal wert jetzt versuch ich nur noch den mittel wert und dann hab ich es auch endlich fertig
danke für eure hilfe ohne euch hätte ich es nciht hin bekommen

also an alle die mir geholfen habe danke

Balu der Bär 11. Jul 2006 09:50

Re: Listbox
 
MIttelwert? Wo is das Problem, die rechnest alle Zahlen (Listbox.Items) zusammen und teilst sie dann durch die Anzahl dieser.

anfänger123 11. Jul 2006 09:56

Re: Listbox
 
ja und das muss ich jetzt noch raus finden wie ich das in eine shcleife schreibe

sigma 11. Jul 2006 09:58

Re: Listbox
 
danke für eure hilfe hab jetzt auch endlich den maximalwert

viellen danke für eure schnelle hilfe

Balu der Bär 11. Jul 2006 10:00

Re: Listbox
 
Delphi-Quellcode:
var
 i, value : Integer;

for i := 0 to Listbox1.Items.Count-1 do
 value := value + StrToInt(Listbox1.Items[i])

value := value mod Listbox1.Items.Count-1;
Obwohl, mir fällt grad ein das wäre ja der Durchschnitt und nicht der Mittelwert. :shock:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:32 Uhr.
Seite 3 von 4     123 4      

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