Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Timer1 restarten (https://www.delphipraxis.net/139217-timer1-restarten.html)

Ghostleader 25. Aug 2009 19:17


Timer1 restarten
 
Hey, ich hätte eine Frage:

Wie starten man den Timer neu. Ich möchte nicht das er den Befehl *****1.Visible:= False; nach 5000 ms anfägt zu bearbeiten, sondern das er es nach 1000 ms macht und danach restarten um *****2.Visible:= False; nach denselben 1000 ms zu bearbeiten. Ansonsten ist es so:

Nach 5000/ bzw die 1000 ms die ich haben will,:

*****1.Visible:= False;
*****2.Visible:= False;

werden zur selben Zeit bearbeitet.

Ich möchte:

*****1.Visible:= False;
nach 1000ms

Restart:Timer1

*****2.Visible:= False;
nach weiteren 1000ms

Mfg Ghost

DeddyH 25. Aug 2009 19:23

Re: Timer1 restarten
 
Erstell Dir ein Flag, das Du in jedem Timer-Event auswertest und hochsetzt.
Delphi-Quellcode:
type
  TDeinForm = class(TForm)
  ...
  private
    FFlag: Cardinal;
  ...
  end;
...

procedure TDeinForm.DeinTimerTimer(Sender: TObject);
begin
  case FFlag of
    0: XXX1.Visible := false;
    1: XXX2.Visible := false;
    //usw.
  end;
  inc(FFlag);
end;

Ghostleader 25. Aug 2009 19:30

Re: Timer1 restarten
 
So siehts jetzt aus:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    procedure FormDblClick(Sender: TObject);
private
    FFlag: Cardinal;

end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
    case FFlag of
     0:Image1.Visible:=False;
     1:Image2.Visible:=False;
     2:Image3.Visible:=False;
     3:Image4.Visible:=False;
     4:Image5.Visible:=False;
     5:Image6.Visible:=False;
     6:Image7.Visible:=False;
     7:Image8.Visible:=False;
     8:Image9.Visible:=False;
     9:Image10.Visible:=False;
     10:Image11.Visible:=False;
     14:Image12.Visible:=False;
     15:Image13.Visible:=False;
     16:Image14.Visible:=False;
     17:Image15.Visible:=False;
     18:Image16.Visible:=False;
     19:Image17.Visible:=False;
     20:Image18.Visible:=False;
end;

  end;
  inc(FFlag);
end;
    Image1: TImage;
    Button1: TButton;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    StatusBar1: TStatusBar;
    Panel1: TPanel;
    Image7: TImage;
    Image8: TImage;
    Timer1: TTimer;
    Image9: TImage;
    Image10: TImage;
    Image11: TImage;
    Image12: TImage;
    Image13: TImage;
    Image14: TImage;
    Image15: TImage;
    Image16: TImage;
    Image17: TImage;
    Image18: TImage;

    procedure Button1Click(Sender: TObject);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image2MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image3MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image4MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image5MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image6MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image7MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image8MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Timer1Timer(Sender: TObject);
    procedure Image9MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image10MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image12MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image11MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image13MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image14MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image15MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image16MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image17MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image18MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
Resultat:
Die Methode FormCreate die auf Form1.OnCreate verweist existiert nicht Soll der Verweis entfernt werden?
#
Mfg Ghost

rollstuhlfahrer 25. Aug 2009 19:51

Re: Timer1 restarten
 
ähm, wie wärs denn, wenn du den Code mal nach Definition und Aktionen (Prozeduren/Funktionen) sortierst und das, was nach Defiunition aussieht, oberhalb von "implementation" belässt und alles andere darunter? Dann sollte es vllt. gehen.

Bernhard


PS: Heißt im Klartext

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    procedure FormDblClick(Sender: TObject);
    Image1: TImage;
    Button1: TButton;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    StatusBar1: TStatusBar;
    Panel1: TPanel;
    Image7: TImage;
    Image8: TImage;
    Timer1: TTimer;
    Image9: TImage;
    Image10: TImage;
    Image11: TImage;
    Image12: TImage;
    Image13: TImage;
    Image14: TImage;
    Image15: TImage;
    Image16: TImage;
    Image17: TImage;
    Image18: TImage;

    procedure Button1Click(Sender: TObject);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image2MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image3MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image4MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image5MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image6MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image7MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image8MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Timer1Timer(Sender: TObject);
    procedure Image9MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image10MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image12MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image11MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image13MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image14MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image15MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image16MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image17MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image18MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    FFlag: Cardinal;
  public
    { Public-Deklarationen }
  end;

implementation

procedure TForm1.Timer1Timer(Sender: TObject);
begin
    case FFlag of
     0:Image1.Visible:=False;
     1:Image2.Visible:=False;
     2:Image3.Visible:=False;
     3:Image4.Visible:=False;
     4:Image5.Visible:=False;
     5:Image6.Visible:=False;
     6:Image7.Visible:=False;
     7:Image8.Visible:=False;
     8:Image9.Visible:=False;
     9:Image10.Visible:=False;
     10:Image11.Visible:=False;
     14:Image12.Visible:=False;
     15:Image13.Visible:=False;
     16:Image14.Visible:=False;
     17:Image15.Visible:=False;
     18:Image16.Visible:=False;
     19:Image17.Visible:=False;
     20:Image18.Visible:=False;
  end;
  inc(FFlag);
end;
[edit]Einige Sortierfehler entfernt, nun syntaktisch richtiger[/edit]

Ghostleader 25. Aug 2009 20:15

Re: Timer1 restarten
 
Gut Danke.
Und wie kann ich die Zeit anzeigen lassen? Also sozusagen einen Countdown für Timer1 in einem Panel.

(Timer1 und Panel2.)

mfg Ghost

Blup 26. Aug 2009 08:37

Re: Timer1 restarten
 
Beim Start des Countdowns die Endzeit merken.
Im Timerevent die Differenz zur aktuellen Zeit ermitteln und in eine Zeichenkette umwandeln.
Die Zeichenkette dem Ausgabesteuerelement zuweisen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz