Einzelnen Beitrag anzeigen

Yader22

Registriert seit: 8. Jun 2005
5 Beiträge
 
Delphi 5 Professional
 
#12

Re: Sortieren in Listbox

  Alt 9. Jun 2005, 11:12
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]='1Then
      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]
  Mit Zitat antworten Zitat