unit Fahrstuhl;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, jpeg, RackCtls, MPlayer;
type
TForm1 =
class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Image1: TImage;
Timer1: TTimer;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Button12: TButton;
Button13: TButton;
Button14: TButton;
Image2: TImage;
Image3: TImage;
Label1: TLabel;
Image4: TImage;
Timer12: TTimer;
Image5: TImage;
btn_open: TButton;
btn_close: TButton;
Button16: TButton;
Button7: TButton;
procedure Timer1Timer(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Timer12Timer(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure btn_closeClick(Sender: TObject);
procedure btn_openClick(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
z: integer;
a: integer;
implementation
{$R *.DFM}
procedure TForm1.Timer1Timer(Sender: TObject);
// Timer für auf bzw ab Bewegung
var
x : integer;
begin
x:=-2;
if image1.top>z
then //muss runterfahren
Image1.top:=Image1.top+x;
//bild fahrstuhl
if image1.top<z
then //muss rauffahren
Image1.top:=Image1.top-x;
if image4.top>z
then //muss runterfahren
Image4.top:=Image1.top+x;
//bild Tür
if image4.top<z
then //muss rauffahren
Image4.top:=Image1.top-x;
if image5.top>z
then //muss runterfahren
Image5.top:=Image1.top+x;
//bild gehäuse
if image5.top<z
then //muss rauffahren
Image5.top:=Image1.top-x;
timer12.enabled:=true;
case Image1.Top
of
120: Label1.Caption := '
4';
0: Label1.Caption := '
5';
//anzeige fahrstuhl der etagen
240: Label1.Caption := '
3';
360: Label1.Caption := '
2';
480: Label1.Caption := '
1';
600: Label1.Caption := '
0';
end;
end;
procedure TForm1.Button14Click(Sender: TObject);
// Programm verlassen
begin
close;
end;
procedure TForm1.Timer12Timer(Sender: TObject);
// Timer zum Türen öffnen bzw schliessen
var
y : integer;
begin
y:=2;
{
case not Image1.Top of
120: timer12.enabled:=false;
0: timer12.enabled:=false;
240: timer12.enabled:=false;
360: timer12.enabled:=false;
480: timer12.enabled:=false;
600: timer12.enabled:=false;
end;
}
if not ( (a=2 )
or (a=1 ) )
then // tür auf oder zu knöpf gedrückt?
begin
if z <> Image4.top
then //ziel nicht erreicht?
begin
if image4.left>=100
then //tür geschlossen?
begin
timer1.enabled:=true;
timer12.enabled:=false;
image4.left:=100;
exit;
end;
Image4.left:=Image4.left+y;
//tür schliessen
end
else
if (z = Image4.top)
then //ziel erreicht
begin
if image4.left<=30
then
begin
timer12.enabled:=false;
timer1.enabled:=false;
image4.left:=30;
exit;
end;
Image4.left:=Image4.left-y;
//tür öffnet
end;
end
else
begin
if a=2
then // tür zu knöpf gedrückt?
begin
if image4.left>=100
then // tür auf geschlossen position?
begin
timer12.enabled:=false;
image4.left:=100;
a:=0;
// zurückgesetzt der globalen variablen a
exit;
end;
Image4.left:=Image4.left+y;
// tür wird geöffnet
end
else if a=1
then // tür auf knopf gedrückt?
begin
if image4.left<=30
then // tür auf offen position?
begin
timer12.enabled:=false;
image4.left:=30;
a:=0;
exit;
end;
Image4.left:=Image4.left-y;
//tür wird geschlossen
end;
end;
end;
procedure TForm1.Button8Click(Sender: TObject);
// Fahrstuhlknopf innen EG
begin
timer12.enabled:=true;
z:=600;
end;
procedure TForm1.Button9Click(Sender: TObject);
// 1.OG
begin
timer12.enabled:=true;
z:=480;
end;
procedure TForm1.Button10Click(Sender: TObject);
// 2.OG
begin
timer12.enabled:=true;
z:=360;
end;
procedure TForm1.Button11Click(Sender: TObject);
// 3.OG
begin
z:=240;
timer12.enabled:=true;
timer1.enabled:=false;
end;
procedure TForm1.Button12Click(Sender: TObject);
// 4.OG
begin
timer12.enabled:=true;
z:=120;
end;
procedure TForm1.Button13Click(Sender: TObject);
// 5.OG
begin
timer12.enabled:=true;
z:=0;
end;
procedure TForm1.Button16Click(Sender: TObject);
// notruf
var
s:
string;
begin
windows.Beep(900,300);
// piepton aus dem speaker 900 macht die höhe und 300 die länge des tones
S:= '
"Ein Mitarbeiter ist unterwegs! bitte bewahren sie ruhe!"';
showmessage (s) ;
end;
procedure TForm1.btn_closeClick(Sender: TObject);
// Tür zu
begin
a:=2;
case Image1.Top
of
120: timer12.enabled:=true;
0: timer12.enabled:=true;
// wenn fahrstuhl nicht auf einer der etagen
240: timer12.enabled:=true;
// dann button deaktiviert
360: timer12.enabled:=true;
480: timer12.enabled:=true;
600: timer12.enabled:=true;
end;
end;
procedure TForm1.btn_openClick(Sender: TObject);
// Tür auf
begin
a:=1;
case Image1.Top
of
120: timer12.enabled:=true;
0: timer12.enabled:=true;
240: timer12.enabled:=true;
// wenn fahrstuhl nicht auf einer der etagen
360: timer12.enabled:=true;
// dann button deaktiviert
480: timer12.enabled:=true;
600: timer12.enabled:=true;
end;
end;
procedure TForm1.Button7Click(Sender: TObject);
// notaus schaltet timer ab
begin
windows.Beep(900,300);
// piepton aus dem speaker 900 macht die höhe und 300 die länge des tones
timer1.enabled:=false;
timer12.enabled:=false;
end;
end.