![]() |
Sortieren in Listbox
Hallo,
muss in einer listbox eine sortierte Artikelliste ausgeben,aber es werden nicht alle werte sortiert!!! Was könnte ich als anweisung nehmen???? :gruebel: |
Re: Sortieren in Listbox
was hast du bisher genommen?
|
Re: Sortieren in Listbox
Hallo Yader22,
Zitat:
![]() Greetz alcaeus |
DP-Maintenance
Dieses Thema wurde von "alcaeus" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Ist immer noch eine Frage zu Delphi |
Re: Sortieren in Listbox
Ich habe es über eine if anweisung geschreiben,falls der ein wert größer als ein wert der schon vorher bezogen worde,wird dieser über eine andere Variable ausgetauscht!Gibt es vielleicht eine sort anweisungung welche besser geeignet wäre?
|
Re: Sortieren in Listbox
Warum nicht einfach:
Delphi-Quellcode:
ListBox1.Sorted := True;
|
Re: Sortieren in Listbox
Ja, nun zeigt doch mal Code, ist doch wohl offensichtlich, dass da ein Fehler in deiner Implementation ist.
|
Re: Sortieren in Listbox
Delphi-Quellcode:
[edit=Luckie]Delphi-tags ergänzt. Bitte beim nächsten Mal selber machen. Mfg, Luckie[/edit]
for j:=i+1 to Anzahl do
begin if((Artikelliste[i].Bestand*Artikelliste[i].Preis) <((Artikelliste[j].Preis*Artikelliste[j].Preis))) then begin tauschen:=Artikelliste[i]; Artikelliste[i]:=Artikelliste[j]; Artikelliste[j]:=tauschen; |
Re: Sortieren in Listbox
Ist das net grzndsätzlich nen Bubbler?
Müsste halt noch ne 2. Schleife drüber dann ... weil so wird ja nur einmal drchlaufen - wenn ich nicht grad wieder nen Knick in meiner Optik hab :) |
Re: Sortieren in Listbox
die zweite schleife ist drüber,aber der fehler bleibt bin nicht unbedingt die leuchte beim programmieren sondern brach das wegen meiner belegarbeit
|
Re: Sortieren in Listbox
Dann zeig doch mal den kompletten Code. :wall:
|
Re: Sortieren in Listbox
Delphi-Quellcode:
Wie gesagt hab keine Ahnung ob das alles richtig ist hatten wir im zweiten semester und seit dem nicht wieder!!!Danke
Type
TArtikel=record Artikelnummer: string[8]; Artikelbezeichnung: string[30]; Mengeneinheit: string[2]; Bestand: smallint; Maximalbestand: smallint; minimalbestand: smallint; Hersteller: string[41]; Preis: single; Maximalpreis: single; Minimalpreis: single; Lieferzeit: byte; end; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; ListBox1: TListBox; ListBox2: TListBox; Label1: TLabel; Label2: TLabel; procedure Button1Click(Sender: TObject); procedure Sortieren(Artikelliste: Array of TArtikel;Anzahl: integer); procedure Ausgeben(Artikelliste: Array of TArtikel;Anzahl: integer); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin close; end; procedure TForm1.Button2Click(Sender: TObject); var f: file of Tartikel; i:integer; Artikelliste: array[1..100] of TArtikel; begin AssignFile(f, 'f:\Artikel.dat'); Reset(f); i:=0; while not Eof(f) do begin i:=i+1; Read(f,Artikelliste[i]); end; CloseFile(f); Sortieren(Artikelliste,i); end; procedure TForm1.Sortieren(Artikelliste:Array of TArtikel;Anzahl: integer); var i,j: integer; tauschen: TArtikel; begin for i:=1 to Anzahl-1 do begin for j:=i+1 to Anzahl do begin if((Artikelliste[i].Bestand*Artikelliste[i].Preis) <((Artikelliste[j].Preis*Artikelliste[j].Preis))) then begin tauschen:=Artikelliste[i]; Artikelliste[i]:=Artikelliste[j]; Artikelliste[j]:=tauschen; end; end; end; Ausgeben(Artikelliste,Anzahl); end; procedure TForm1.Ausgeben(Artikelliste:Array of TArtikel;Anzahl: integer); var i:integer; begin for i:=1 to Anzahl do begin Listbox1.Items.Add(Artikelliste[i].Artikelnummer + ' '+Artikelliste[i].Artikelbezeichnung+' ' + FloatToStr(((Artikelliste[i].Bestand * Artikelliste[i].Preis)))); if Artikelliste[i].Artikelnummer[7]='1' Then Listbox2.Items.Add(Artikelliste[i].Artikelnummer + ' '+Artikelliste[i].Artikelbezeichnung+' ' + FloatToStr(((Artikelliste[i].Bestand * Artikelliste[i].Preis)))); end; end; end. [edit=alcaeus]Delphi-Tags eingefuegt. Bitte in Zukunft selbst machen! Mfg, alcaeus[/edit] |
Re: Sortieren in Listbox
Hat sich das schon erledigt???
Ich hab schon mal ein Record sortiert ... such aber jetzt nich extra den Code raus, wenn's nimmer nötig ist. :mrgreen: |
Re: Sortieren in Listbox
Fehler:
Delphi-Quellcode:
Du schreibst einmal Bestand*Preis und dann Preis*Preis.
if((Artikelliste[i].Bestand*Artikelliste[i].Preis)
<((Artikelliste[j].Preis*Artikelliste[j].Preis))) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 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-2025 by Thomas Breitkreuz