C# Ampel Programmierung

Ich sehe auch nicht, dass man es durch hinzunahme von AND lösen könnte.
meintest du "durch" oder "ohne" ? weil wieso sollte man es mit Zuhilfenahme von "and" nicht lösen können ?
Etwas wie AND kann man ja durch sehr viele Verschachtelte IFs bekommen.
ich wüsste jetzt nicht, wie ich mit "ifs" eine Doppel-Bedingung erzeugen könnte ...

das Problem ist ja wie gesagt das Gelb, eben dass er abfragen muss, ob gleichzeitig gerade noch Rot oder garnichts an ist
 
meintest du "durch" oder "ohne" ? weil wieso sollte man es mit Zuhilfenahme von "and" nicht lösen können ?ich wüsste jetzt nicht, wie ich mit "ifs" eine Doppel-Bedingung erzeugen könnte ...

das Problem ist ja wie gesagt das Gelb, eben dass er abfragen muss, ob gleichzeitig gerade noch Rot oder garnichts an ist


Ich meine durch, wie ich schrieb.
Hier ein kleines Beispiel

C#:
if (pnlRot.BackColor == Color.Gray && pnlGruen.BackColor == Color.Gray)
{
    this.pnlRot.BackColor = Color.Red;
     this.pnlGelb.BackColor = Color.Gray;
}

kann man auch wie folgt realisieren (ohne AND bzw. &&)

C#:
if (pnlRot.BackColor == Color.Gray)
{
     if (pnlGruen.BackColor == Color.Gray)
     {
          this.pnlRot.BackColor = Color.Red;
          this.pnlGelb.BackColor = Color.Gray;
     }
}
 
Und ich behaupt jetzt mal Version Nummer 2 is der Stand den er hat
 
Ich meine durch, wie ich schrieb.
Hier ein kleines Beispiel

C#:
if (pnlRot.BackColor == Color.Gray && pnlGruen.BackColor == Color.Gray)
{
    this.pnlRot.BackColor = Color.Red;
     this.pnlGelb.BackColor = Color.Gray;
}

kann man auch wie folgt realisieren (ohne AND bzw. &&)

C#:
if (pnlRot.BackColor == Color.Gray)
{
     if (pnlGruen.BackColor == Color.Gray)
     {
          this.pnlRot.BackColor = Color.Red;
          this.pnlGelb.BackColor = Color.Gray;
     }
}
ah ok, das war mir gar nicht so richtig bewusst :)

dann sollte es auch ohne "and" gehen ;)
 
Dann darf die Reihenfolge aber nicht
Rot -> Gelb -> Grün > Gelb -> Rot
sein.

Ich gehe mal von Stefros aus, mit
Rot -> Rot + Gelb -> Grün > Gelb -> Rot

C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

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

        private void cmdStart_Click(object sender, EventArgs e)
        {
            if (this.pnlGreen.BackColor == Color.Green)
            {
                this.pnlGelb.BackColor = Color.Yellow;
                this.pnlGreen.BackColor = Color.Gray;
            }
            
            else if (this.pnlGelb.BackColor == Color.Yellow)
            {
                if (this.pnlRot.BackColor == Color.Red)
                {
                    this.pnlGreen.BackColor = Color.Green;
                    this.pnlRot.BackColor = Color.Gray;
                }
                else
                {
                    this.pnlRot.BackColor = Color.Red;
                }
                this.pnlGelb.BackColor = Color.Gray;
            }

            else if (this.pnlRot.BackColor == Color.Red)
            {
                this.pnlGelb.BackColor = Color.Yellow;
            }
        }
    }
}
Dabei ist jedoch die Reihenfolge der Abfragen zu beachten!
 
Jo also jetzt ist es wirklich geschenkt
 
Danke sehr, werde mir mal einen part abschneiden und versuchen, den Rest selbzuerklären, dankööö. !
 
Ich hoffe, dass du damit auch eine Lösung für dein Problem aus dem Eingangsbeitrag hast.
Falls dem nicht so ist, kopiere bitte das gesamte Problem (mit der Ansteuerung des letzten Panels), damit man auch den Fehler sieht und klären kann, woran es liegt.
 
Naja, mein Hauptproblem war ja, dass ich nicht alles farbig bekommen habe, werde morgen schauen, wie ich es schrittweise normal hinbekomme...
 
Back
Top Bottom