Autor Beitrag
wittenhagen150775
Hält's aus hier
Beiträge: 3

Win xp
c# Vs Express 2005
BeitragVerfasst: Do 20.03.08 09:34 
Hallo
ich bin neu hier im Forum und möchte gerne einbischen C# lernen . Wenn ich Zeit habe beschäfftige ich mich mit dem Vsc# 2005. Nun habe ich mir einen kleinen Wecker geschrieben , aber komme da nicht weiter. Das Messagebox Fenster geht >1x auf, und ich kann das Prog nur noch mit Strg. Alt Entf beenden was mache ich falsch ??? Ich habe hier nun schon gelesen und gesucht aber finde keine Lösung.Das Prog soll später (wenn ich genug Zeit hatte )über die Serielle Schnittstelle , (Com 1 )eine LED ansteuern . Also wenn der Alarm losgeht , soll Sie leuchten .Bitte Bitte Helft Mir !

der Source :

ausblenden volle Höhe C#-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:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace bester_wecker
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            dateTimePicker1.Value = System.DateTime.Now;
          
        }

        private void button1_Click(object sender, EventArgs e)
        {
            timer2.Enabled = true;
        }

        private void timer2_Tick(object sender, EventArgs e)
        {
            if (DateTime.Now.TimeOfDay.CompareTo(dateTimePicker2.Value.TimeOfDay) >= 0)
            {
                MessageBox.Show("test");
                
                
                
            }

           
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }


Zuletzt bearbeitet von wittenhagen150775 am Do 20.03.08 11:37, insgesamt 1-mal bearbeitet
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Do 20.03.08 10:50 
:welcome:

Bitte kennzeichne Code, das liest sich leichter: Dazu kannst Du Deinen ersten Beitrag editieren (klicke auf den Button), markiere den Textbereich mit Code, klicke auf "Bereiche" und dann auf das Plus-Zeichen neben C#.

Dein Problem liegt wahrscheinlich nur an der Test-Phase. Dein 2. Timer ist so eingestellt, dass er immer die MessageBox öffnet. Wenn er nun auf den Standardwert 100 ms eingestellt, öffnet sich 10x pro Sekunde die MessageBox; so schnell kannst Du sie gar nicht wegdrücken. Vorschlag: Deaktiviere zunächst den Timer:
ausblenden C#-Quelltext
1:
2:
timer2.Enabled = false;
MessageBox.Show("test");


Überleg Dir auch einmal, wozu Du eigentlich zwei Timer brauchst. Du willst mit dem ersten Timer abfragen, ob die Alarm-Zeit erreicht bzw. überschritten ist. Wenn das so ist, willst Du die LED einschalten; dann leuchtet sie doch, wozu soll das alle 100 ms wiederholt werden?

Zusätzlicher Hinweis: Du kannst Zeitangaben direkt vergleichen und brauchst dazu keine Klimmzüge:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
private void timer1_Tick(object sender, EventArgs e)
{
    if (dateTimePicker2.Value <= DateTime.Now)  {
        timer1.Enabled = false;
        //  aktiviere die LED;
    }
}

Gruß Jürgen
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 20.03.08 10:51 
Ist doch logisch, da du den Timer ja noch aktiv läßt.
Oder aber die Weckzeit verändern.
wittenhagen150775 Threadstarter
Hält's aus hier
Beiträge: 3

Win xp
c# Vs Express 2005
BeitragVerfasst: Do 20.03.08 12:04 
Danke hat wunderbar geklappt :-) Ich fühl mich schon richtig wohl hier ;-) .
das mit dem einen Timer verstehe ich noch nicht . Ich brauche doch einen für das Anzeigen der Uhrzeit und einen für die Weckzeit oder??? Und kannst du mir eine kleine Hilfestellung geben beim cod für die Serielle Schnittstelle ? Ich dachte das, ich die Komponente SerialPort auf meine Form ziehe und danach ????? Irgendein Pin vom com Port muss sich ja dann steuern lassen . Habe da was gelesen vom DTR und RTS Enabled=true. Die Ser.Schn.Stelle Belegung und so , finde ich im Netz (Löten kann ich und ein Messgerät habe ich auch :-)) .Ich weiß ist alles für euch "Alte Hasen " Schnee von gestern. Aber Ich freue mich wie ein kleiner Junge über jeden Fortschritt ! :D :lol: Danke an alle hier !!
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Do 20.03.08 14:16 
user profile iconwittenhagen150775 hat folgendes geschrieben:
das mit dem einen Timer verstehe ich noch nicht . Ich brauche doch einen für das Anzeigen der Uhrzeit und einen für die Weckzeit oder???

Ach so, wenn Du die aktuelle Uhrzeit laufend anzeigen willst, dann benötigst Du dafür natürlich einen eigenen Timer (hoffentlich mit möglichst hoher Tick-Rate: wenn nur die Minuten angezeigt werden, dann 60000). So etwas gibt es bei mir nicht, weil die Uhrzeit auf allen Rechnern, die ich kenne, sowieso in der Taskleiste steht.

"Für die Weckzeit" meinst Du hoffentlich "für die Prüfung, ob die Weckzeit erreicht ist". Die Zeit selbst steht ja wohl im DateTimePicker und wird einmalig (nicht laufend) festgelegt.

user profile iconwittenhagen150775 hat folgendes geschrieben:
Und kannst du mir eine kleine Hilfestellung geben beim cod für die Serielle Schnittstelle ? Ich dachte das, ich die Komponente SerialPort auf meine Form ziehe und danach ?????

Keine Ahnung, Hardware ist für mich eine "black box" (naja nicht ganz, aber ich setze sie so voraus). Dazu benötigst Du wohl eine Beschreibung Deiner LED.

Jürgen

PS. Dafür dürfte eine neue Diskussion besser geeignet sein, weil sie dann eine passende Überschrift bekommt und vielleicht besser in ein anderes Unterforum passt.