Beschreibung:
Die DLL enthält 3 (eig 4) Controls:
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:
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
Wie angekündigt, hier das Demoprogramm.
Logik
Screenshot
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.
Wenn nichts anderes angegeben ist, gilt folgende Lizenz: Lizenzbedingungen für die Projekte / Spezielle Regeln für Projekte-Threads.
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.
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 ?(
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.