unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    ComboBox1: TComboBox;
    BtEndpreis: TButton;
    RadioGroup1: TRadioGroup;
    Edit2: TEdit;
    Label2: TLabel;
    BtNEu: TButton;
    BtEnde: TButton;
    BtWagen: TButton;
    Memo1: TMemo;
    {Die Komponente "Memo" gibt zeilenweise strings (Text) wieder.
    Man beschreibt sie mit: memo1.lines.add('Hier steht was rein soll');
    Man löscht sie mit: memo1.clear;}
    Edit3: TEdit;
    Label3: TLabel;
    procedure BtEndpreisClick(Sender: TObject);
    procedure BtEndeClick(Sender: TObject);
    procedure BtNEuClick(Sender: TObject);
    procedure BtWagenClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  preis:real; // die Variable "preis" wird als globale Variable definiert, d.h. alle
              //Prozeduren des Programmes können darauf zugreifen.(vgl.unten)
implementation

{$R *.DFM}

procedure TForm1.BtWagenClick(Sender: TObject);
var stpreis,zwpreis:real;
     anzahl:integer;
     art:string;
begin
if combobox1.itemindex=-1 then showmessage('Artikel auswählen!')else
if edit1.text='' then showmessage('Anzahl angeben!')else
 begin
 anzahl:=strtoint(edit1.text);
 case combobox1.itemindex of
 0: begin stpreis:=18.5; art:='HH Horst';end;
 1: begin stpreis:=20;art:='HH Hubert';end;
 2: begin stpreis:=25;art:='DB Sonja';end;
 3: begin stpreis:=24.5;art:='DB Lisa';end;
 4: begin stpreis:=60;art:='HJ Lutz';end;
 5: begin stpreis:=55; art:='HH Matz';end;
 6: begin stpreis:=65;art:='DJ Vivian';end;
 7: begin stpreis:=70;art:='HH Miriam';end;
 end;

zwpreis:=stpreis*anzahl;
preis:=zwpreis+preis; //dadurch wird der Preis immer um die neuen Artikel erhöht
                      //und in der globalen Variable "preis" zwischengespeichert
                      // vgl. oben
memo1.lines.add(inttostr(anzahl)+' X '+ art +' :'+ floattostr(stpreis));
{Die Memo soll also in einer Zeile (man kann strings mit + aneinanderhängen)
die Stückzahl (muss in string umgewandelt werden), den Artikelnamen (Variable "art"
ist bereits ein string) und den Stückpreis anzeigen. Zwischen die Angaben wird das
"X" als Zeichen für "mal" und ein Doppelpunkt zur besseren Lesbarkeit eingefügt.}

edit3.text:=floattostr(preis);
end;
end;

procedure TForm1.BtEndpreisClick(Sender: TObject);
var vers:integer;
     endpreis:real;
begin
if radiogroup1.itemindex=-1 then showmessage('Versandart auswählen!')else
  begin
  case radiogroup1.itemindex of
  0:if preis<100 then vers:=5 else vers:=0;
  1:vers:= 8;
  2:vers:= 10;
  3:vers:=12;
  end;
  endpreis:= preis+vers; {die Prozedur arbeitet mit derselben Variablen "preis"
  wie obige Prozedur; sie wird sozusagen übergeben. Dies geht nur dann, wenn ich
  sie vorher als globale Variable(s.o.) deklariere.}
edit2.text:=floattostr(endpreis);
end;
end;

procedure TForm1.BtNEuClick(Sender: TObject);
begin
preis:=0;
memo1.clear;
edit3.clear;
combobox1.itemindex:=-1;
combobox1.text:='Artikel wählen';
edit1.clear;
edit2.clear;
radiogroup1.itemindex:=-1;
end;

procedure TForm1.BtEndeClick(Sender: TObject);
begin
close;
end;




end.
