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 Programmierhans
Thema: NetworkStream dauerhaft auslesen
Am im Forum: Netzwerktechnologien

Remove innerhalb foreach ist nict erlaubt.

Thema: Control in anderem Prozess analysieren/modifizieren: Control aufgrund des .NET-Variablennamen finden
Am im Forum: Rund um die Programmierung

Textboxen eines anderen Programmes füllen

Thema: NetworkStream dauerhaft auslesen
Am im Forum: Netzwerktechnologien

[FAQ] TcpClient: einfaches Beispiel

Thema: Anzeige restlicher Abfragezeit eines Select Command
Am im Forum: Datentechnologien

Miss jedes mal die Zeit... dann den Durchschnitt + ein paar Prozent ... das ist die erwartete Laufzeit...

Je nachdem wie gross die Unterschiede von Tag zu Tag sind... triffst Du es dann besser oder schlechter.

Thema: C# WPF: .AMV Videogenerierung aus .BMP Bildern
Am im Forum: GUI: WPF und XAML

FFMPEG sollte AMV können.

Google-Suche nach AMV ffmpeg .Net

Thema: Entwurfsmuster für mehrere/viele periodisch zu aktualisierende Anzeigen
Am im Forum: Rund um die Programmierung

Zitat von herbivore
in der Tat wäre eine Steuerung, die auf einem Benachrichtigungsmechanismus basiert, besser alles ein zeitgesteuertes Polling. Diesen Aspekt hatte ich in meiner ersten Antwort übersehen.

@herbivore

Allenfalls je nach Frequenz der Anpassungen wäre auch eine Kombination aus Event und Polling möglich.

--> Event setzt nur ein Flag dass sich irgendwelche Daten verändert haben
--> Timer holt dann die neue Darstellung

Dies hätte den Vorteil, dass häufige Anpassungen nicht zu allzu heftiger Auslastung führt und das Update besser geplant werden kann.

Thema: DataGridView - abgeleitetet Datenklasse wird nicht angezeigt
Am im Forum: GUI: Windows-Forms

@camelord

Schau nochmal im Link welchen herbivore verlinkt hat... Da gibt es ein Update.

Thema: Binden einer Liste aus Interfaces an ein DataGridView mithilfe einer BindingList
Am im Forum: GUI: Windows-Forms

Interfaces liefern immer nur die direkt im Interface definierten Members.

Betrifft sowohl Type.GetProperties als auch TypeDescriptor.GetProperties.

Man kann sich aber eine eigene Implementierung der BindingList schreiben welche dann auch vererbte Interfaces implementiert.

Der folgende Code ist ein Prototype welcher für dieses Beispiel funktioniert... aber nicht zwingend für alle Fälle funktioniert.



    public class BindingListFullInterface<T>:BindingList<T>,ITypedList
    {
        private PropertyDescriptorCollection _PropertyDescriptorCollection = null;
        public BindingListFullInterface()
        {

        }
        public BindingListFullInterface(IList<T> pList):base(pList)
        {

        }

        private void CreatePropertyDescriptorCollection()
        {
            if (typeof(T).IsClass)
            {
                this._PropertyDescriptorCollection=TypeDescriptor.GetProperties(typeof(T));
                return;
            }

            Dictionary<string, PropertyDescriptor> dictPropDesc = new Dictionary<string, PropertyDescriptor>();
            List<Type> allTypes = new List<Type>();
            allTypes.Add(typeof(T));
            allTypes.AddRange(typeof(T).GetInterfaces());

            foreach (Type t in allTypes)
            {
                foreach (PropertyInfo pi in t.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.FlattenHierarchy))
                {
                    dictPropDesc[pi.Name] = (TypeDescriptor.CreateProperty(t, pi.Name, pi.PropertyType));
                }
            }

            PropertyDescriptor[] arr = new PropertyDescriptor[dictPropDesc.Count];
            dictPropDesc.Values.CopyTo(arr, 0);
            this._PropertyDescriptorCollection= new PropertyDescriptorCollection(arr);
        }

        PropertyDescriptorCollection ITypedList.GetItemProperties(PropertyDescriptor[] listAccessors)
        {
            if (listAccessors == null || listAccessors.Length==0)
            {
                if (this._PropertyDescriptorCollection == null)
                {
                    this.CreatePropertyDescriptorCollection();
                }
                return this._PropertyDescriptorCollection;
            }
            return new PropertyDescriptorCollection(new PropertyDescriptor[] { });
        }

        string ITypedList.GetListName(PropertyDescriptor[] listAccessors)
        {
            if (listAccessors == null || listAccessors.Length == 0)
            {
                return typeof(T).Name;
            }
            else
            {
                return string.Empty;
            }
        }
    }


Edit:
-Added ctor's
-Added Caching
-Added missing return in CreatePropertyDescriptorCollection

Thema: [gelöst] Problem mit CurrentUICulture nach Umstellung von XP (32 bit) auf Win7 (64 bit)
Am im Forum: GUI: Windows-Forms

Na dann debug mal... und schau ob Dein Code angesprungen wird... und ob er in den richtigen Case reingeht ...

Thema: DataGridView Zelle Text ändern
Am im Forum: GUI: Windows-Forms

Mach doch auf der DataTable eine Expression-Column

Thema: Diskrepanz Z-Order zwischen Dokumentenstruktur, Designer und Laufzeit
Am im Forum: GUI: Windows-Forms

Ev. mit FlowLayoutPanels arbeiten... oder zwischen den Panels einen Splitter (Enabled=false) einfügen.

Thema: [erledigt] Flat List zu Tree Code - Erklärung benötigt [==> Klassen sind Referenztypen]
Am im Forum: Rund um die Programmierung

Als Anregung:

Rekursiver TreeView Save/Restore aufgrund des FullPaths

Thema: Diskrepanz Z-Order zwischen Dokumentenstruktur, Designer und Laufzeit
Am im Forum: GUI: Windows-Forms

Wie wäre es mit:

Panels sichtbar lassen aber mit Höhe 0 ?

Thema: Authentifizierung bei Programmstart mit Kennwort
Am im Forum: Rund um die Programmierung

Wieso verwendest Du nicht Windows-Authentifizierung ?

Auswählen eines Authentifizierungsmodus

Thema: C#-Anwendung - Bild mit Symbolen markieren und verändern
Am im Forum: Grafik und Sound

-Körpergrafik nicht speichern (die ist unveränderbar)
-Nur speichern welche Grafiken Du an welcher Stelle dazuzeichnen musst.
-Beim Repaint: 1 Körper zeichnen und dann alle zusätzlichen Grafiken

--> Es sieht dann so aus als wäre es eine Grafik... aber effektiv sieht es nur so aus

Thema: MessageBox wird nach dem Schließen gleich wieder angezeigt
Am im Forum: GUI: Windows-Forms

Verwendest Du einen Barcodescanner in Deiner Anwendung ? (Fokus auf dem Button / löst ev. Den Click aus)

Thema: serielle Schnittstelle einlesen - unterschiedliche Anzahl von Zeichen
Am im Forum: Rund um die Programmierung

@MailoKooiker

Poste doch bitte noch den nun angepassten Code... vielleicht wird es dir mal jemand verdanken der das selbe oder ein ähnliches Problem hat

Gruss
Programmierhans

Thema: Space Opera (C#, Unity)
Am im Forum: Projekte

@Bradley

Sieht doch schon mal nett aus... aber du solltest unbedingt auf die Rechtschreibung achten (ich bin da auch kein Hirsch...)... diverse Zeichendreher

z.B:
-menschliche Dummheit statt Menschliche Dummheit
-Metall statt Mentall
-Raketensperrfeuer statt Raktensperrfeuer

Thema: CodeDom Klasse nutzen, ohne Eingabe-Quellcode per StringBuilder zu erstellen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von xorkind
Naja mein Problem ist, das ich nicht ein ganzes Programm, dass evtl. mehrere 100-Zeilen Code umfasst, später die ganze Zeit in den Stringbuilder zu schreiben.

Lol ein paar hundert Zeilen ...Ich arbeite gerade an einer App in welcher 41000 Zeilen Code generiert sind... (und das ist nicht die grösste App).

CodeDom hat den Vorteil, dass Du Code in verschiedenen Sprachen generieren kannst (z.B: C# / VB / C)

Thema: CodeDom Klasse nutzen, ohne Eingabe-Quellcode per StringBuilder zu erstellen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Mit ein wenig Übung schreibt ist es mit der aktuellen Dokumentation ohne weiteres möglich fast alles zu generieren (wobei man nicht alles generieren kann... aber mit Umwegen ist es doch möglich). In meinem Job generiere ich jedenfalls jedenfalls ganze typisierte Proxies.

Thema: Linq: Flache Liste von allen nodes erstellen
Am im Forum: Datentechnologien

Zitat von t2t
Wenn es damit Performance Probleme gibt, hast das Ganze mal gegen einen ganz klassischen rekursiven Ansatz getestet? Ohne großartig auf Linq zu setzen?

z.B: So: Rekursiver TreeView Save/Restore aufgrund des FullPaths

Thema: Eingelesene Daten mit anderem Dezimaltrennzeichen verarbeiten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Such mal nach InvariantCulture

Thema: [gelöst] Daten verdoppeln, verdreifachen etc. in SQL Abfrage
Am im Forum: Datentechnologien

Mein SQL ist zwar schon stark eingerostet... aber wäre das nicht "Select TOP 100 From ....."

Thema: [gelöst] DllImport: Array mit bestimmter Größe in Funktions-Deklaration?
Am im Forum: Rund um die Programmierung

Zitat von Olle
Was meinst du mit den DLL-Aufrufkonventionen?

CallingConvention-Enumeration

Thema: Im Designer lassen sich Grafiken in Picturebox nicht mehr ändern bzw. löschen.
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Mach Projekt zu... lösche OBJ-Verzeichnis

Ev. hifts ja

Thema: DevComponents SuperGrid Control: DropDown Button bei ComBox nicht sichtbar
Am im Forum: GUI: Windows-Forms

Lesen könnte helfen: DataGridViewComboBoxCell.DisplayStyle-Eigenschaft

Thema: Visual Studio GUI: Refresh der Windows Form Anzeige nervt
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von BerndFfm
Kleiner Trost : Vor VS2010 war das noch viel schlimmer.

In VS 2003 (.Net 1.1) musste man sogar die Designer-Fenster explizit vor dem Build schliessen... da der Designer gerne die Fenster zerschossen hat wenn beim Build ein Fehler auftrat.

Thema: Laden von Bildern über das Netzerk dauert zu lange. Async laden?
Am im Forum: GUI: WPF und XAML

Das geht doch kürzer :-)


public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
         {
             string path=null;
             try
             {
                 path = value.ToString();
                 if (!m_ImageChache.ContainsKey(path) && File.Exists(path))
                 {
                     m_ImageChache.Add(path, LoadImage(path));
                 }
             }
             finally
             {
                 return m_ImageChache.ContainsKey(path) ? m_ImageChache[path] : m_ImageChache[NO_IMAGE];
             }
         } 

Nachtrag: Das hat zudem den Vorteil, dass Du bei einem Netzwerkunterbruch schon vorhandene Bilder sehen kannst.. nicht vorhandene werden als NO_IMAGE angezeigt... und sobald das Netz wieder verfügbar ist siehst Du das echte Bild.

Thema: Lebensdauer eines Objekts das nur durch einen Delegaten referenziert wird
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Aber wo ist jetzt Dein Problem ?

Habe ich das richtig verstanden:

1.- Code X erstellt Instanz von A
2.- Code X erstellt Instanz von B
3.- A += Event von B
5.- Code X droppt A

Nun ist A nicht mehr aus X referenziert
Aber A ist aus B referenziert (über den Delegate)

Derjenige welcher ein Event abonniert muss es auch wieder löschen bevor er das Objekt wegschmeisst.

Somit einfach folgendes noch nachlegen

4.- Code X A-= Event von B

Events musst Du immer abhängen (ausser Du lässt beide Seiten gleichzeitig sterben (z.B: Form hat Events eines Controls... wenn Du da das Form wegschmeisst, dann werden auch die Controls weggeschmissen).

Thema: Laden von Bildern über das Netzerk dauert zu lange. Async laden?
Am im Forum: GUI: WPF und XAML

Mach Dir doch noch ein static Dictionary<string, BitmapImage> rein...

Jedes geladene Bild haust Du in das Dict rein... und wenn Du es schon drin hast, dann kannst Du es aus dem Dict holen statt vom Netzwerk.