none
Timer / Interval abfrage RRS feed

  • Frage

  • Hallo!

    ich möchte mit einem klick ein event auslösen. ein timer soll gestartet werden und die momentane systemzeit abfragen. ich habe früher mit borland builder c++ gearbeitet und da gab es direkt für die vcl ein steuerelement. bei Microsoft Visual Studio 2010 Express ist das aber nicht vorhanden..

    wie kann ich da einen timer einbauen? wenn ich ALT + SPACE drücke, erscheint ein popup mit vorschlängen. Angezeigt wird mir aber nur Timeline und Timespan.

     

    weiß jemand vllt rat?

    danke im vorraus!

     

    mfg

    dmw


    zu faul zum lesen, drum keine signatur.^^ http://www.deadmanwalkin.org
    Sonntag, 9. Januar 2011 17:48

Antworten

  • Ah,

    ich verstehe langsam. Schau dir doch hier das Beispiel an, wo ein DispatcherTimer-Objekt verwendet wird, welches einmal pro Sekunde ein Ereignis auslöst. In diese wird zwar ein Counter hochgezählt, jedoch sollte die Anpassung an deine Wünsche ein Klacks sein.

     

    Gruß, Peter


    This posting is provided "AS IS" with no warranties, and confers no rights.
    Dienstag, 11. Januar 2011 17:09
  • Hi,

    es wäre dann ungefähr so:

    private void TestDispatcherTimer(Panel counterPanel) //wäre das in dem fall mein button? Ja - es wäre dein Bitton
    {
     DispatcherTimer timer = new DispatcherTimer();
     timer.Tick +=   //counter
      delegate(object s, EventArgs args) {
    
      DateTime myValue = DateTime.Now;
       textBox1.Text = myValue.Hour.ToString();  //zeigt in textBox1 die stunden von W7System an
       textBox2.Text = myValue.Minute.ToString();  //zeigt in textBox2 die minuten von W7System an
       textBox3.Text = myValue.Second.ToString();  //zeigt in textBox3 die sec von W7System an
    }; timer.Interval = new TimeSpan(0, 0, 1); // one second timer.Start(); }

     Bedenke nun jedoch, dass der Timer nicht gestoppt wird. Das müsstest du noch selbst implementieren. 


    This posting is provided "AS IS" with no warranties, and confers no rights.
    Mittwoch, 12. Januar 2011 05:33
  • Hi,

    was hast du genau vor?
    Um die Systemzeit abzufragen benötigst du alleine keinen Timer. Dies geht bereits mit der Abfrage von DateTime.Now.

    Gruß, Peter


    This posting is provided "AS IS" with no warranties, and confers no rights.
    Montag, 10. Januar 2011 06:06

Alle Antworten

  • Hi,

    was hast du genau vor?
    Um die Systemzeit abzufragen benötigst du alleine keinen Timer. Dies geht bereits mit der Abfrage von DateTime.Now.

    Gruß, Peter


    This posting is provided "AS IS" with no warranties, and confers no rights.
    Montag, 10. Januar 2011 06:06
  • das habe ich soweit auch gelöst. ich drücke/klicke auf den button und in 3 TextBoxen wird  die stunde, minute und sekunde angezeigt, aber nur für den moment wenn ich klicke. klicke ich 5 sekunden nochmal, wird die aktuelle zeit angezeigt und bleibt stehen. die zeit soll aber kontinuierlich angezeigt werden ;)
    zu faul zum lesen, drum keine signatur.^^ http://www.deadmanwalkin.org
    Dienstag, 11. Januar 2011 17:00
  • Ah,

    ich verstehe langsam. Schau dir doch hier das Beispiel an, wo ein DispatcherTimer-Objekt verwendet wird, welches einmal pro Sekunde ein Ereignis auslöst. In diese wird zwar ein Counter hochgezählt, jedoch sollte die Anpassung an deine Wünsche ein Klacks sein.

     

    Gruß, Peter


    This posting is provided "AS IS" with no warranties, and confers no rights.
    Dienstag, 11. Januar 2011 17:09
  •  

    TEST

    private void TestDispatcherTimer(Panel counterPanel) //wäre das in dem fall mein button?
    {
      DispatcherTimer timer = new DispatcherTimer();
      int counter = 0;
    
      counterPanel.MouseLeftButtonDown += 
        delegate(object s, MouseButtonEventArgs args) {
          if (timer.IsEnabled) timer.Stop(); else timer.Start();   //timer muss standart enabled sein?
        };
    
      timer.Tick +=     //counter
        delegate(object s, EventArgs args) {
          counterPanel.Children.Clear();
          counterPanel.Children.Add( new TextBlock { 
            Text = counter++.ToString() });    
    }; timer.Interval = new TimeSpan(0, 0, 1); // one second timer.Start(); }

    kurze frage dazu, weil es leider nicht kommentiert ist.

     

    TestDispatcherTimer(Panel counterPanel)  //TDTimer wäre ja eine klasse, aber muss ich (Panel counterPanel) 
    übernehmen und warum?

    und wie kann ich am besten meinen code

    DateTime myValue = DateTime.Now;
          textBox1.Text = myValue.Hour.ToString();    //zeigt in textBox1 die stunden von W7System an
          textBox2.Text = myValue.Minute.ToString();   //zeigt in textBox2 die minuten von W7System an
          textBox3.Text = myValue.Second.ToString();   //zeigt in textBox3 die sec von W7System an

    da unterbringen?

     

    mfg


    zu faul zum lesen, drum keine signatur.^^ http://www.deadmanwalkin.org
    Dienstag, 11. Januar 2011 21:19
  • Hi,

    es wäre dann ungefähr so:

    private void TestDispatcherTimer(Panel counterPanel) //wäre das in dem fall mein button? Ja - es wäre dein Bitton
    {
     DispatcherTimer timer = new DispatcherTimer();
     timer.Tick +=   //counter
      delegate(object s, EventArgs args) {
    
      DateTime myValue = DateTime.Now;
       textBox1.Text = myValue.Hour.ToString();  //zeigt in textBox1 die stunden von W7System an
       textBox2.Text = myValue.Minute.ToString();  //zeigt in textBox2 die minuten von W7System an
       textBox3.Text = myValue.Second.ToString();  //zeigt in textBox3 die sec von W7System an
    }; timer.Interval = new TimeSpan(0, 0, 1); // one second timer.Start(); }

     Bedenke nun jedoch, dass der Timer nicht gestoppt wird. Das müsstest du noch selbst implementieren. 


    This posting is provided "AS IS" with no warranties, and confers no rights.
    Mittwoch, 12. Januar 2011 05:33