myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Gemeinschaft » .NET-Komponenten und C#-Snippets » 7-Segmentanzeige und Uhrzeitenanzeige
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

7-Segmentanzeige und Uhrzeitenanzeige

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
_Bugrick_ _Bugrick_ ist männlich
myCSharp.de-Mitglied

Dabei seit: 16.03.2011
Beiträge: 48
Entwicklungsumgebung: Visual Studio 2010/2013


_Bugrick_ ist offline

7-Segmentanzeige und Uhrzeitenanzeige

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Beschreibung:

Die DLL enthält 3 (eig 4) Controls:
- Eine einfache 7-Segmentanzeige, als Wert ist ein einfacher Integer zuweisbar.
- Ein passendes Control, das einen Doppelpunkt und ein Komma bereitstellt
- Ein Uhrzeiten-Panel, dass 6 7-Segmentanzeigen und 2 Doppelpunkte enthält, man kann jedes Segment einzeln ansprechen oder dem Control ein DateTime zuweisen. Außerdem hat es ein MouseClick-ähnliches Event.

Allen Controls ist ein "LedLayout" zuweisbar, außerdem kann man auswählen ob inaktive Segmente angezeigt werden sollen. Jedes Control hat eine nichtveränderbare Größe (vll arbeite lass ich mir da aber noch was einfallen^^).

Die 7-Segmentanzeige arbeitet nach folgender Logik (hatte wohl nen guten Tag, sonst wäre mir sowas nie eingefallen^^):
Siehe Anhang

Hier ein paar Screenshots der Controls:
Siehe Anhang

Viel Spaß damit, Kritik und Verbesserungsvorschläge aller Art sind natürlich erwünscht ;-)

Der Quellcode ist etwas zu umfangreich, um ihn hier zu posten, am besten mal in der Entwicklungsumgebung angucken :-)

Hier nur einmal die Basisklasse:

C#-Code:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace LedControls
{
    public class LedControl : Control
    {
        bool _bPaintDarkControls = false;
        Color _col = new Color();
        Color _colDark = new Color();

        public LedControl()
        {
            this.SetStyle(ControlStyles.DoubleBuffer |
                ControlStyles.UserPaint |
                ControlStyles.AllPaintingInWmPaint |
                ControlStyles.SupportsTransparentBackColor |
                ControlStyles.ResizeRedraw, true);
            this.BackColor = Color.Black;
            this.LedLayout = LedControls.LedLayout.BlueLayout;
        }

        /// <summary>
        /// Gets or sets a value whether the visibility for all segments is enabled.
        /// </summary>
        public bool ShowDisenabledSegments
        {
            get { return _bPaintDarkControls; }
            set
            {
                _bPaintDarkControls = value;
                this.Invalidate();
            }
        }

        /// <summary>
        /// Gets or sets the main color for all enabled segments.
        /// </summary>
        public Color EnabledColor
        {
            get { return _col; }
            set
            {
                _col = value;
                this.Invalidate();
            }
        }

        /// <summary>
        /// Gets or sets the main color of all disenabled segments.
        /// </summary>
        public Color DisenabledColor
        {
            get { return _colDark; }
            set
            {
                _colDark = value;
                this.Invalidate();
            }
        }

        /// <summary>
        /// Gets or sets both colors for all segments.
        /// </summary>
        public Color[] LedLayout
        {
            get { return new Color[2] { _col, _colDark }; }
            set
            {
                _col = value[0];
                _colDark = value[1];
                this.Invalidate();
            }
        }
    }
}

Schlagwörter: LedControl, 7-Segmentanzeige, Siebensegmentanzeige, 7Segmentanzeige

Das Demoprojekt hat wegen 5KB (!) leider nicht mehr in diesen Anhang gepasst und folgt im nächsten Beitrag/Anhang


Dateianhang:
unknown LedControls.rar (36 KB, 803 mal heruntergeladen)
27.04.2011 23:40 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
_Bugrick_ _Bugrick_ ist männlich
myCSharp.de-Mitglied

Dabei seit: 16.03.2011
Beiträge: 48
Entwicklungsumgebung: Visual Studio 2010/2013


_Bugrick_ ist offline

7-Segmentanzeige und Uhrzeitenanzeige

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Wie angekündigt, hier das Demoprogramm.


Dateianhang:
unknown LedDemo.rar (227,05 KB, 795 mal heruntergeladen)
27.04.2011 23:40 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
_Bugrick_ _Bugrick_ ist männlich
myCSharp.de-Mitglied

Dabei seit: 16.03.2011
Beiträge: 48
Entwicklungsumgebung: Visual Studio 2010/2013

Themenstarter Thema begonnen von _Bugrick_

_Bugrick_ ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Logik

_Bugrick_ hat dieses Bild (verkleinerte Version) angehängt:
dy3l08.png
Volle Bildgröße

27.04.2011 23:41 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
_Bugrick_ _Bugrick_ ist männlich
myCSharp.de-Mitglied

Dabei seit: 16.03.2011
Beiträge: 48
Entwicklungsumgebung: Visual Studio 2010/2013

Themenstarter Thema begonnen von _Bugrick_

_Bugrick_ ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Screenshot

_Bugrick_ hat dieses Bild (verkleinerte Version) angehängt:
5cwnxj.png
Volle Bildgröße

27.04.2011 23:41 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegt mehr als ein Monat.
elTorito elTorito ist männlich
myCSharp.de-Mitglied

avatar-3263.gif


Dabei seit: 28.07.2009
Beiträge: 176
Entwicklungsumgebung: VS 2015, SQL 2008 Dynamics NAV
Herkunft: Niederrhein


elTorito ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hi _Bugrick_,

mir gefällt deine LED Anzeige sehr gut, ich würde diese gerne verwenden um eine Anwendung zu entwickeln mit der man "Rennzeiten" erfassen kann. Damit wir bei unseren MTB Fun Rennen  folgende Methode sparen :)

Ich hoffe du hast nichts dagegen. Vielen Dank.


mycsharp.de  Moderationshinweis von herbivore (17.06.2011 09:20):

Wenn nichts anderes angegeben ist, gilt folgende Lizenz:  Lizenzbedingungen für die Projekte / Spezielle Regeln für Projekte-Threads.
 
16.06.2011 16:49 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegen mehr als 2 Jahre.
elTorito elTorito ist männlich
myCSharp.de-Mitglied

avatar-3263.gif


Dabei seit: 28.07.2009
Beiträge: 176
Entwicklungsumgebung: VS 2015, SQL 2008 Dynamics NAV
Herkunft: Niederrhein


elTorito ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Mir gefällt die LED Anzeige noch immer gut...

Ich hab mal ein Windows Phone 7 User Control draus gemacht.
Geht wahrscheinlich schicker, und WP Konformer, aber es funktioniert...

Anstatt die Segmente im Paint zu zeichnen habe ich eine Observable Collection genommen welche beobachtet ob das gebundene Xaml Segment Objekt neu gezeichnet bzw. mit Farbe gefüllt werden muss.

Das Demo zeigt dann wie man mehrere Led Panels an eine ListBox in WP binden und anzeigen kann.

Viel Spaß damit.


Dateianhang:
unknown LedPanel.zip (77,34 KB, 394 mal heruntergeladen)
09.12.2013 09:33 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegt mehr als ein Jahr.
Padman
myCSharp.de-Mitglied

Dabei seit: 02.07.2015
Beiträge: 52
Entwicklungsumgebung: VS 2015, C#
Herkunft: NRW


Padman ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von elTorito:
Das Demo zeigt dann wie man mehrere Led Panels an eine ListBox in WP binden und anzeigen kann.

Auch wenn das Projekt älter ist, ich wollte diese in VS 2015 öffnen, wird laut dessen Info nicht unterstützt verwirrt
03.07.2015 01:18 Beiträge des Benutzers | zu Buddylist hinzufügen
_Bugrick_ _Bugrick_ ist männlich
myCSharp.de-Mitglied

Dabei seit: 16.03.2011
Beiträge: 48
Entwicklungsumgebung: Visual Studio 2010/2013

Themenstarter Thema begonnen von _Bugrick_

_Bugrick_ ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

freue mich sehr über das gute Feedback.

Padman, ich werde versuchen es zeitlich hinzubekommen und bald eine Demo bereitzustellen, die sich mit VS2015 öffnen lässt.
14.07.2015 14:54 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 8 Jahre.
Der letzte Beitrag ist älter als 4 Jahre.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 20.09.2019 05:10