Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Console32
Thema: RS232: Wird DataRecieved (zuverlässig) gefeuert, wenn das Gerät alle Daten gesendet hat?
Am im Forum: Rund um die Programmierung

ja ich hab mir das Template schonmal angesehen, das template fragt auf einen Environment.NewLine ab.

Bei mir wird die Länge des Telegrams aus bestimmten einstellungen berechnet. Somit müsste ich auf die Länge Prüfen, meine Frage bleibt aber trotzdem:

Kann ich mich darauf verlassen das das Recieve Data Event bei meinem Letzten Byte auch getriggert wird. Ich finde leider gerade den Link nichtmehr bei dem Steht das es passieren kann dass das Event nicht bei jedem Byte getriggert wird

Thema: RS232: Wird DataRecieved (zuverlässig) gefeuert, wenn das Gerät alle Daten gesendet hat?
Am im Forum: Rund um die Programmierung

Hallo Community,

Ich habe folgendes Problem mit einer externen Schnittstelle:
Die externe schnttstelle läuft in einer while(true) schleife mit Sleep,

Ich wollte das ganze nach möglichkeit auf DataRecieved umprogrammieren..
Aber ich habe in der MSDN gelesen das das DataRecieved event nicht bei jedem Byte feuert:

Vorweg die Schnitstelle verwendet Xon/Xoff (keine Ahnung ob das einen Einfluss hat).
Das Problem das ich dabei habe ist das ich auf eine Bestimmte länge warten muss (zB. 243 Bytes) wenn dann das DataRecievedEvent beim 243Byte nicht ausgelöst wird habe ich ein Problem weil dannach der Controller nichts mehr sendet.

Nun ist meine Frage, wird bei dem letzten Byte das Event immer getriggert? oder kann es sein das ich im DataRecieved nichts mache weil 1 Byte fehlt und es dannach nichtmehr getriggert wird?

Wollte nur sichergehen bevor ich etwas Funktionierendes auseinander nehme

Thema: VS 2010 lädt Fonts und Colors nicht richtig
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Nich nicht nur beim +/- sondern auch auf der Linie darunter.

Thema: VS 2010 lädt Fonts und Colors nicht richtig
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Also gut jetzt funktioniert es,

Ich hab keine Ahnung wieso, und kann auch nicht rekonstruieren warum es gerade eben nicht ging (Selbst mit den einstellungen von Gestern funktioniert es heute).

:S

Thema: VS 2010 lädt Fonts und Colors nicht richtig
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Das habe ich:

Wie schon gesagt wenn ich auf "Tool -> Options -> Environment -> Fonts and Colors" gehe und dann "OK" drücke (Ohne irgendwas geändert zu haben)

Sieht es so aus:

Thema: VS 2010 lädt Fonts und Colors nicht richtig
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

hier mein Problem,

Ich verwende einen anderen Hintergrund und eigene Farben für Klassen etc. im CodeEditor, das Problem ist das wenn ich VS Starte die Farben nur teilweise übernommen werden.

wenn man links am CodeDesigner über eine Region oder Ähnliches fährt sieht man meinen Code nicht mehr:

Hab im Anhang einen ausschnit vom Screen.

Das wirklich spannende ist:
Wenn ich jetzt auf "Tool -> Options -> Environment -> Fonts and Colors" gehe und dann "OK" drücke (Ohne irgendwas geändert zu haben)

Funktioniert das ganze so wie gedacht und wenn ich mit der Maus über den Vertikalen Strich fahre (der mir Quasi eine Region anzeigt) wird nurnoch dieser Hinterlegt und der Code bleibt sichtbar

Kennt das Problem jemand?

Thema: Bewegte Objekte auf Transparentem Hintergrund zeichnen
Am im Forum: Grafik und Sound

Zitat
Nein, es reicht in diesem Fall, nur die geänderten Bereiche neu zu zeichnen.

Das muss ich aber selbst implementieren das er nur den Veränderten bereich neu zeichnet. Das könnte ich aber ebenfalls bei meinem Control machen oder nicht?

Wenn ich in meinem UserControl ein Rechteck berechne das mir den gänderten Bereich speichert Löse ich das Invalidate nur noch auf diesen Bereich aus?
Zitat
Wenn man es richtig macht, tritt dieser Fall allerdings erst recht spät ein.
Richtig Buffern oder Richtig im Hintergrund zeichnen ?

Thema: Bewegte Objekte auf Transparentem Hintergrund zeichnen
Am im Forum: Grafik und Sound

Also mir ist klar das es nicht besonders sauber ist immer alles neu zu zeichnen, aber ich verstehe gerade nicht was sich daran ändern würde wenn ich meinen Hintergrund (Eine PiktureBox) und meinen Drehgeber in einem Control zeichnen würde,

sobald sich ein wert ändert muss ich den Bereich des Hintergrunds über den ich Zeichne erstmal neu zeichnen(damit die "veralteten" linien Verschwinden) und dann muss ich wieder meinen gesamten Drehgeber neu Zeichnen ? Oder habe ich was falsch verstanden?

EDIT:
Zum Skallieren etc / man merkt schon das Windows Forms nicht dafür gemacht ist, trotz Zeichnen in einem Buffer fängt das ganze relativ schnell zu flimmern an wenn man viele OnPaint aufrufe hat.

EDIT2:
Ich verwende keinen TickHandler so wie in dem Link oben sonder ich rufe das Invalidate selbst auf wenn sich werte geändert haben (Was durch Hardware auf 1-2 mal die Sekunde limitiert ist)

Thema: Bewegte Objekte auf Transparentem Hintergrund zeichnen
Am im Forum: Grafik und Sound

Zitat von "winSharp93"
So macht man es aber trotzdem nicht.
Wenn ich noch verstehen darf warum, mach ich es gerne anderes. (Performance ist für mich kein Grund)

Thema: Bewegte Objekte auf Transparentem Hintergrund zeichnen
Am im Forum: Grafik und Sound

Ich versteh nicht was du meinst ich seh die PicktureBox / Labels hinter meinem UserControl

Hier hab ichs gefunden:http://www.bobpowell.net/transcontrols.htm

Thema: Bewegte Objekte auf Transparentem Hintergrund zeichnen
Am im Forum: Grafik und Sound

this.Invalidate(new Rectangle(this.rotaryEncoder1.Location, this.rotaryEncoder1.Size), true);

Dadurch wird das DrawBackground aufgerufen und man erhält wieder den Transparenten Hintergrund

Habs zuerst im OnPaint versucht:
this.Parrent.Invalidate(...)
Das endet in Flimmern da der GUI Thread nichts anderes mehr macht als das Control neu zu zeichnen.

mfg

EDIT: war gestern zu schnell wollte noch sagen das auf dem hintergrund zeichnen nicht so flexibel ist wie ein skalierendes UserControl, das ich mir nur aufs Bild ziehen muss.

Thema: Bewegte Objekte auf Transparentem Hintergrund zeichnen
Am im Forum: Grafik und Sound

Hallo Community:

Ich habe in einem Userdefined Control mit Transparentem Hintergrund einen Drehgeber abgebildet,

mit:

        
       protected override void OnPaintBackground(PaintEventArgs e)
        {
            //base.OnPaintBackground(e);
        }

        protected override CreateParams CreateParams
        {
            get
            {
                CreateParams cp = base.CreateParams;
                cp.ExStyle |= 0x20; //WS_EX_TRANSPARENT
                return cp;
            }
        }

Wird das ganze auch wunderbar Transparent und man sieht im Hintergrund das Bauteil auf dem der Drehgeber sitzt, nun mache ich im OnPaint meine Ganzen Zeichnungen. Soweit so gut, solange der Drehgeber steht sieht das wunderbar aus,

Bei bewegung bleiben jedoch die alten linien erhalten.
Mein erster Gedanke war ein graphics.Clear(Color.Transparen) dadurch wird das ganze aber schwarz?!

Weiss jemand wie man ein Transparentes Control "Cleart" ?

mfg

Thema: Position von mehreren Steuerelementen sinnvoll speichern und während der Laufzeit laden.
Am im Forum: GUI: Windows-Forms

weil ich noch nie mit XML als Resource gearbeitet habe / bzw weil das das erste war was google / msdn ausgespuckt hat und ich keine Ahnung von Serialisierung habe.
Bei möglichkeit werde ich mich damit beschäftigen.

zum Dispose:
nein das Form wird nur geschlossen (wird als ShowDialog angezeigt)und somit nicht Disposed.
Nachdem ich im onLoad jetzt this.Visible = true; gesetzt habe funktioniert es.

Thema: Position von mehreren Steuerelementen sinnvoll speichern und während der Laufzeit laden.
Am im Forum: GUI: Windows-Forms

Hallo

Soweit ist das alles kein Problem die Xml Datei wird erzeugt,
jedoch hab ich ein Problem beim setzten der Sichtbarkeit.

Beim Programmstart funktioniert alles wunderbar, wenn ich ein "Positonsset" auswähle bei dem weniger Controls angezeigt werden sieht es genau so aus wie ich es im Vorhinen gespeichert habe.

Ändere ich jetzt jedoch das "Positionsset" zur Laufzeit, sind alle Childcontrolls weg.

Hier die Rekursive Funktion welche die daten aus dem XML File lädt:

 private static void LoadControl(XmlNode root, Control.ControlCollection controls, XmlDocument doc)
        {
            XmlNode xmlNode;
            foreach (Control control in controls)
            {
                xmlNode = null;
                foreach (XmlNode node in root.ChildNodes)
                {
                    if (node.Attributes[0].Value == control.Name)
                    {
                        xmlNode = node;
                        break;
                    }
                }
                if (xmlNode != null)
                {
                    LoadControl(xmlNode, control.Controls, doc);

                    control.Location = new Point(Convert.ToInt32(xmlNode.Attributes[1].Value), Convert.ToInt32(xmlNode.Attributes[2].Value));
                    control.Visible = Convert.ToBoolean(xmlNode.Attributes[3].Value);
                    control.Width = Convert.ToInt32(xmlNode.Attributes[4].Value);
                    control.Height = Convert.ToInt32(xmlNode.Attributes[5].Value);
                }
            }
        }


control.Visible = Convert.ToBoolean(xmlNode.Attributes[3].Value);

In der Zeile bleibt das Visible Attribut auf false (Obwohl es sich um Controls OHNE ChildControls handelt / Und das Convert.ToBoolean true zurückliefert)

leider bin ich nocht nicht fündig geworden warum das Attribute auf false bleibt :S
Weiß jemand was es damit auf sich hat?

Thema: Position von mehreren Steuerelementen sinnvoll speichern und während der Laufzeit laden.
Am im Forum: GUI: Windows-Forms

Zitat von winSharp93
Spontan würde ich alle Controls mit dem Designer so anordnen, wie ich sie haben möchte, dann die Anwendung starten und dann zur Laufzeit die XML-Datei programmatisch erzeugen (dazu alle Controls rekursiv durchgehen).

Das wird es wohl werden.
Dachte das Problem hätte vl schon jemand gehabt.

Thema: Position von mehreren Steuerelementen sinnvoll speichern und während der Laufzeit laden.
Am im Forum: GUI: Windows-Forms

Hallo,

Ob nun ein XML oder die Config,
das problem ist nicht die Realisierung sondern der aufwand. Die Positionsdaten für ~30-200 Controlls * 16 Forms * bis zu 7 unterschiedliche "Positionssets" zu schreiben, ist viel aufwand.

Im Programm sieht es dann so aus das auf einer Steuerung eine Variable entscheidet welches Hintergrundbild geladen wird, zum Bild dazu soll ein "Positionsset" für die Controls geladen werden

Das ganze soll zur Laufzeit NUR Geladen werden, und im vorhinein von mir definiert werden.

Meine Frage war eher ob es andere Möglichkeiten gibt die Positionen aller Controls zu speichern (idealerweiße im Designer), oder möglicherweiße eine Fertiges Modul für die Laufzeit welches ich implementiere damit ich meine Positionsdaten nicht "zu Fuß" schreiben muss.
(bzw damit ich mir die Funktionalität Save / Load PositionSet nicht selbst bauen muss) Ich hatte gehofft das jemand schon mit einem ähnlichen Problem zu tun hatte. ;)

Thema: Position von mehreren Steuerelementen sinnvoll speichern und während der Laufzeit laden.
Am im Forum: GUI: Windows-Forms

Hallo,

ich habe folgendes Problem bei meinem Programm,
und zwar habe ich auf einigen Forms, verschiedene Hintergrundbilder (wird von einer steuerung entschieden)
Je nach Hintergrundbild sollen dann zur laufzeit die Steuerelemente (einmalig) angeordnet werden.

Jetzt habe ich das Problem das ich bis zu ca 7 unterschiedliche Positionen für meine Steuerelemente habe welche irgendwie sinnvoll Organisiert werden müssen.

Ich dachte an ein XML, jedoch wollte ich nachfragen ob es auch andere/elegantere Lösungen gibt oder auch schon fertige Lösungsansätze.

Thema: Beim Beenden eines Threads hängt das GUI
Am im Forum: GUI: Windows-Forms

Hallo Community

Ich habe ein Problem mit dem beenden eines Threads:

Der Thread sieht in etwa so aus:

try
            {
                this.m_Running = true;
                while (this.m_Running)
                {
                    this.GetValues();
                    this.Refresh();

                    System.Threading.Thread.Sleep(100);
                }
            }

und beim Beenden (FormClosing event)

  private void Form_2_FormClosing(object sender, FormClosingEventArgs e)
        {
            End();
        }

        private void End()
        {
            this.m_Running = false;
            Thread.Sleep(300);


            while (this.m_oThread.IsAlive) 
            {
                Thread.Sleep(50);
            }


        }


Das Überschriebene Refresh ändert ein paar Pictureboxen nach den Werten von GetValues und ruft dann über ein Delegate die Basisklasse auf um das Paintereigniss der Oberfläche auszulössen. Da ich andere Werte der Oberfläche über das Paint ereigniss ändere.

Das problem ist das delegate, wenn ich das delegate weglasse funktioniert es einwandfrei.

Mit delegate hängt er in der schleife fest, und der oben genannte Thread macht nichts mehr!


wär schön wenn mir jemand Helfen könnte.
mfg
Console