AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Panel per Timer aktivieren

Ein Thema von Lill Jens · begonnen am 6. Nov 2007 · letzter Beitrag vom 6. Nov 2007
Antwort Antwort
Lill Jens

Registriert seit: 12. Dez 2006
Ort: Nbg
121 Beiträge
 
Delphi 2007 Architect
 
#1

Panel per Timer aktivieren

  Alt 6. Nov 2007, 10:42
Moin DP'ler

Ich bräuchte mal wieder euere Hilfe!

Ich hab zwei Panel die nacheinander gestartet werden:

Panel(1) starten - nach 21 Sekunden deaktivieren - Panel (2) starten- nach 10 Sekunden deaktivieren - Panel(1) starten...

das Ganze soll immer so weiter gehen...ich dachte ich realisiere das mit zwei Timern aber wie stell ich das interval?

Delphi-Quellcode:

procedure TForm.Timer1Timer(Sender: TObject);
begin
Timer1.Interval (21000);
Panel1.Visible:= true;
Timer2.Enabled:= true; //Startet dann nach 21 sec Timer2 ?
end;

procedure TForm.Timer2Timer(Sender: TObject);
begin
Timer2.Interval (10000);
Panel2.Visible:= true;
Timer1.Enabled:= true; //Startet dann nach 10 sec Timer1 ?
end;
thx.4.cmts


Lill Jens
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

Re: Panel per Timer aktivieren

  Alt 6. Nov 2007, 11:21
Delphi-Quellcode:
procedure TForm.Timer1Timer(Sender: TObject);
begin
  // im OI eingestellt: Timer1.Interval (21000);
  Panel1.Visible:= true;
  Timer2.Enabled:= true; //umschalten
  Timer1.Enabled:= false;
end;

procedure TForm.Timer2Timer(Sender: TObject);
begin
  // im OI eingestellt: Timer2.Interval (10000);
  Panel2.Visible:= true;
  Timer1.Enabled:= true; //umschalten
  Timer2.Enabled:= false;
end;
Oder hab ich das falsch verstanden?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
oldmax

Registriert seit: 27. Apr 2006
Ort: Gieboldehausen
167 Beiträge
 
#3

Re: Panel per Timer aktivieren

  Alt 6. Nov 2007, 13:12
Hi
Zitat:
das Ganze soll immer so weiter gehen...ich dachte ich realisiere das mit zwei Timern aber wie stell ich das interval?
Einfach mit
Timer1.Interval:=21000; oder wie bereits geschrieben im OI
Gruß oldmax
Noch ist mein Rechner mir zu Diensten.... ansonsten habe ich die Macht ihn zu vernichten !
  Mit Zitat antworten Zitat
Lill Jens

Registriert seit: 12. Dez 2006
Ort: Nbg
121 Beiträge
 
Delphi 2007 Architect
 
#4

Re: Panel per Timer aktivieren

  Alt 6. Nov 2007, 14:02
Mhh des geht noch net so wie ich des will^^

Das Problem ist das auf dem Panel(1) ein Video gezeigt wird. Wenn Panel(2) kommt soll das Video auf stop gehn und erst wieder starten wenn Panel(1) wieder aktive wird.

Delphi-Quellcode:
procedure TForm.Timer1Timer(Sender: TObject);
begin
  MediaPlayer1.Play;
  Panel2.Visible:= false;
  Panel1.Visible:= true;
  MediaPlayer1.Stop;
  Timer2.Enabled:= true;
  Timer1.Enabled:= false;
end;

procedure TForm.Timer2Timer(Sender: TObject);
begin

  Panel2.Visible:= true;
  Panel1.Visible:= false;
  Timer1.Enabled:= true;
  Timer2.Enabled:= false;
end;
Es geht allerdings nicht. das video wird nicht erneut abgespielt.
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
379 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Panel per Timer aktivieren

  Alt 6. Nov 2007, 14:06
Zitat von Lill Jens:
Mhh des geht noch net so wie ich des will^^

Das Problem ist das auf dem Panel(1) ein Video gezeigt wird. Wenn Panel(2) kommt soll das Video auf stop gehn und erst wieder starten wenn Panel(1) wieder aktive wird.

Delphi-Quellcode:
procedure TForm.Timer1Timer(Sender: TObject);
begin
  MediaPlayer1.Play;
  Panel2.Visible:= false;
  Panel1.Visible:= true;
  MediaPlayer1.Stop;
  Timer2.Enabled:= true;
  Timer1.Enabled:= false;
end;
Es geht allerdings nicht. das video wird nicht erneut abgespielt.
Für mich ist dieses
Delphi-Quellcode:
  MediaPlayer1.Play;
...
  MediaPlayer1.Stop;
innerhalb eines Timers sehr verdächtig, sieht aus wie anschalten und sofort wieder ausschalten!

Moin
  Mit Zitat antworten Zitat
Lill Jens

Registriert seit: 12. Dez 2006
Ort: Nbg
121 Beiträge
 
Delphi 2007 Architect
 
#6

Re: Panel per Timer aktivieren

  Alt 6. Nov 2007, 14:17
Zitat:
Für mich ist dieses
Delphi-Quellcode:
  MediaPlayer1.Play;
...
  MediaPlayer1.Stop;
innerhalb eines Timers sehr verdächtig, sieht aus wie anschalten und sofort wieder ausschalten!

Moin
Yeah cool du hast recht. Jetzt zickt der Player nur noch am Anfang rum, wenn ich autoopen auf false setzte.

Thx Stifflersmom
  Mit Zitat antworten Zitat
Real_Thunder

Registriert seit: 25. Apr 2006
197 Beiträge
 
#7

Re: Panel per Timer aktivieren

  Alt 6. Nov 2007, 14:24
Also ich weiß nicht ob ich das richtig verstanden habe.....

Wenn Panel 1 An ist, dann:
panel2 ausmachen, Video abspielen, 21 sek warten,
video stoppen, panel2 anmachen, panel1 ausmachen, 10 sekunden warten,
So habe ich es nun verstanden....

najaa hier mal mein entwurf dazu:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if panel1.Enabled then begin
  mediaplayer1.Play;
  timer1.Interval:=21000;
  panel1.Enabled:=false;
  panel2.Enabled:=true;
end else begin
  mediaplayer1.stop;
  timer1.Interval:=10000;
  panel1.Enabled:=true;
  panel2.Enabled:=false;
end;
* Ungetested *
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#8

Re: Panel per Timer aktivieren

  Alt 6. Nov 2007, 16:08
Warum nicht ohne Timer? Zum Beispiel in nem Button-Click (ungetestet):
Delphi-Quellcode:
type
  TRunState = (rsIdle, rsFirst, rsSecond);
var
  PanelState: Byte;
  RunState: TRunState;
  StartMs,
  CurrentMs,
  TargetMs: Cardinal;
begin
  StartMs := GetTickCount;
  RunState := rsFirst;
  while AbbruchBedingungNichtErfuellt do
    begin
      case RunState of
        rsFirst:
          begin
            StartMs := GetTickCount;
            MediaPlayer1.Play;
            Panel2.Visible:= false;
            Panel1.Visible:= true;
            TargetMs := 21000;
            PanelState := 2;
            RunState := rsIdle;
          end;

        rsSecond:
          begin
            StartMs := GetTickCount;
            MediaPlayer1.Stop;
            Panel2.Visible:= true;
            Panel1.Visible:= false;
            TargetMs := 10000;
            PanelState := 1;
            RunState := rsIdle;
          end;

        rsIdle:
          begin
            CurrentMs := GetTickCount;
            if (CurrentMs - StartMs >= TargetMs) then
              begin
                StartMs := GetTickCount;
                case PanelState of
                  1: RunState := rsFirst;
                  2: RunState := rsSecond;
                end;
              end;
          end;
      end;

      Application.ProcessMessages; // oder ähnliches
    end;
end;
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#9

Re: Panel per Timer aktivieren

  Alt 6. Nov 2007, 23:27
sag mal, weshalb nimmste nicht nur einen timer? das ganze sieht in etwa wie folgt aus
Delphi-Quellcode:
timer.enabled := false; //zuerst abschalten;
  if timer.Interval = 21000 then
  begin
    timer.interval := 10000;
    panel1.visible := false; // aktiv bei 21 sekunden
    panel2.visible := true; //aktiv bei 10 sekunden
  end
  else
  begin
    timer.interval := 21000;
    panel1.visible := true; //aktiv bei 21 sekunden
    panel2.visible := false; //aktiv bei 10 sekunden;
  end;
  //noch machen wozu du sonst noch lust hast
  timer.enabled := true; //zum schluss timer wieder einschalten
end;
das ist der ganze code...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:21 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