Thema: Delphi Zeitabfrage im timer

Einzelnen Beitrag anzeigen

stexxy

Registriert seit: 12. Sep 2007
15 Beiträge
 
#1

Zeitabfrage im timer

  Alt 14. Sep 2007, 10:42
HI
ich habe ein fahrstuhl programm hergestellt der von etage zu etage fährt und dann die tür öffnet und stehen bleibt.
ich möchte aber nun das die tür nachdem er 3-5 sec steht wieder zu geht .

habt ihr ein paar ideen wie sich das realisieren lässt?

Delphi-Quellcode:
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.
  Mit Zitat antworten Zitat