Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Sortieren in Listbox (https://www.delphipraxis.net/47317-sortieren-listbox.html)

Luckie 9. Jun 2005 11:08

Re: Sortieren in Listbox
 
Dann zeig doch mal den kompletten Code. :wall:

Yader22 9. Jun 2005 11:12

Re: Sortieren in Listbox
 
Delphi-Quellcode:
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.
Wie gesagt hab keine Ahnung ob das alles richtig ist hatten wir im zweiten semester und seit dem nicht wieder!!!Danke

[edit=alcaeus]Delphi-Tags eingefuegt. Bitte in Zukunft selbst machen! Mfg, alcaeus[/edit]

TeronG 6. Jul 2005 16:17

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:

shmia 6. Jul 2005 16:39

Re: Sortieren in Listbox
 
Fehler:
Delphi-Quellcode:
   if((Artikelliste[i].Bestand*Artikelliste[i].Preis)
    <((Artikelliste[j].Preis*Artikelliste[j].Preis)))
Du schreibst einmal Bestand*Preis und dann Preis*Preis.


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

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