Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - eine Art Timer gesucht


Fredy - Mi 07.01.09 03:33
Titel: eine Art Timer gesucht
Hallo ihr Delphieaner ;)

ich hab mal eine Frage, die ich über die SuFu diesmal nicht gefunden habe (bis jetzt fand ich alles)
und deswegen selbst aktiv werde ;)
Gibt es eine Art Timer, mit dem man ein bestimmtes Label, nach einer gewissen Zeit einblendet ?
Und das gleiche das er mir nach einer gewissen Zeit das Projekt schliest über den close Befehl.

Vielen herzlichen Dank

Mfg. Fredy


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Mi 07.01.2009 um 23:54


jaenicke - Mi 07.01.09 03:39

Hallo und :welcome: hier im Forum!

Ja, gibt es, TTimer heißt die Komponente, zu finden unter "System" in der Komponentenpalette.


Fredy - Mi 07.01.09 14:40

die Suchfunktion hat mir dann die Antwort schlagartig nach dem Begriff TTimer angezeigt =)

Danke jaenicke

Close


Marco117 - Mi 07.01.09 20:33

Hi Leute ich bin neu in diesem Forum und ich habe mal eine Frage an euch ich hoffe ihr könnt mir helfen ob wohl ich mir da eigendlich sicher bin :wink: ich habe mir eine Form in Delphi 7 gestaltet un habe dort 5 Labels draufgeklatscht un nun wollte ich diese nacheinander sekunde für sekunde anzeigen lasen also (visible := true) :wink:
das wollte ich mal mit "EINER" Timerkomponente versuchen vorher habe ich für jedes Label eine genommen :P.
Ich muss dazu sagen das ich noch ein ziemlicher Anfänger bin :).
Ich habe den Timer-interval auf 5000 gesetzt und dann volgenden text geschrieben:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Interval := 5000;
If Timer1.Interval = 1000 then
Begin
Label1.Visible := True;
If Timer1.Interval = 2000 then
Begin
Label2.Visible := True;
If Timer1.Interval = 3000 then
Begin
Label3.Visible := True;
If Timer1.Interval = 4000 then
begin
Label4.Visible := True;
If Timer1.Interval = 5000 then
Begin
Button1.Visible := True;
Button2.Visible := True;
end;
end;
end;
end;
end;
end;

end.

und nix Passiert :cry:.
Achso und der Compiler macht auch keine Fachsen.
Bitte sagt mir was ich falsch mache.
Ich danke jetzt schon für antworten.

mfg Marco

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


FinnO - Mi 07.01.09 20:38

Du musst nicht abfragen:


Delphi-Quelltext
1:
if Timer1.Interval = 1000                    


sondern den(das) interval auf 1000 Sekunden stellen und mitzählen, wieoft der Timer durchgelaufen ist.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
Procedure [...]
begin
  case timer1.tag of
    0 : Machewas;
    1 : Machewasanderes;
  end;
  Timer1.Tag := Timer1.Tag + 1;
end;
end.


Marco117 - Mi 07.01.09 20:46

Danke für deine Antwort du hast mir sehr weitergeholfen :D

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Hi ich bins Nochmal ich habe es so gemacht wie du es gesagt hasst FinnO un es hatt funktioniert aber ich habe vorher nie mit der Eigenschaft "Tag" gearbeitet un in der Delphie Hilfe finde ich auch nich wirklich was darüber wenn du mir villeicht ein Paar Worte dazu sagen könntest :).
Währe super danke schonmal
mfg Marco


jaenicke - Mi 07.01.09 21:09

Tag ist ein Integerwert, den die Komponenten in Delphi alle haben. Diesen kannst du frei verwenden, es ist einfach ein Wert, den du einer bestimmten Komponente frei zuordnen kannst. Delphi selbst benutzt diesen Wert nicht.

Du musst nur darauf achten, dass du die Tag-Eigenschaft einer bestimmten Komponente nicht aus Versehen für verschiedene Zwecke benutzt. ;-)

// EDIT:
Beispiel: Du möchtest ein Ziffernfeld einbauen. Jetzt möchtest du natürlich nicht für jede Taste das selbe nochmal schreiben. Also weist du Tag im Objektinspektor bei jedem Button den Wert, den der Button repräsentiert. 0 bis 9 also.
In OnClick fragst du diesen Wert dann ab:

Delphi-Quelltext
1:
2:
if Sender is TButton then
  ShowMessage(IntToStr(TButton(Sender).Tag));
Und schon hast du nur noch eine OnClick-Ereignisbehandlungsprozedur für alle Buttons. ;-)


Marco117 - Mi 07.01.09 21:51

Danke für deine Antwort
die Bringt mich weiter :D

mfg Marco