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: Mehrere Enumerables ohne großen Buffer zusammenfassen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

(ich habe nicht alles im Detail durchgelesen).

Aber wie wäre es mit einem ganz anderen Ansatz.

Mit einem ContinueWith.

https://msdn.microsoft.com/de-de/library/dd537612(v=vs.110).aspx

Die Objekte würden sich dann selber für den nächsten Prozesschritt anmelden sobald sie verfügbar sind.

Thema: "Objektverweis wurde nicht auf eine Objektinstanz festgeleg" beim Kopieren in Form mit Basisklasse
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Mach den Designer mal im Debugger auf.. damit Du eine Ahnung hast wieso es knallt...

Hier hatte ich das mal beschrieben: UserControl kann im Designer nicht hinzugefügt werden

Thema: "Objektverweis wurde nicht auf eine Objektinstanz festgeleg" beim Kopieren in Form mit Basisklasse
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Du könntest das Zielform im Code so ändern dass es von Form erbt... dann scheint das kopieren ja zu funktionieren.

Nach dem kopieren änderst Du die Form wieder so ab, dass die wieder von Deiner Baseclass erbt.

Thema: Generische ExtensionMethode zum prüfen ob sich Wert innerhalb/ausserhalb/auf der Grenze befindet
Am im Forum: .NET-Komponenten und C#-Snippets

Hallo herbivore

Danke für den Hinweis.
Habe ich sofort angepasst.

Gruss
Programmierhans

Thema: Generische ExtensionMethode zum prüfen ob sich Wert innerhalb/ausserhalb/auf der Grenze befindet
Am im Forum: .NET-Komponenten und C#-Snippets

RangeCheck-Extension für IComparable:

Eine kurze generische ExtensionMethode um zu prüfen ob sich ein Wert innerhalb / ausserhalb oder auf der Grenze befindet.



    public static class Extensions
    {
        public static RangeCheck IsInRange<T>(this T pValue, T pBorder1, T pBorder2) where T: IComparable
        {
            return (RangeCheck)(Math.Sign(pBorder1.CompareTo(pBorder2)) == 0 ? 
                Math.Abs(Math.Sign(pValue.CompareTo(pBorder1))) + 1 : 
                Math.Abs(Math.Sign(pValue.CompareTo(pBorder1)) + Math.Sign(pValue.CompareTo(pBorder2))));
        }
    }



    public enum RangeCheck
    {
        Inside = 0,
        Border = 1,
        Outside = 2
    }


TestCode:

        private void Test()
        {

            int border1 = 3;
            int border2 = 7;

            System.Diagnostics.Debug.WriteLine("RealBorder (3-7)");

            for (int value = 1; value < 10; value++)
            {
                System.Diagnostics.Debug.WriteLine("{0}={1}", value, value.IsInRange(border1, border2));
            }


            border1 = 5;
            border2 = 5;

            System.Diagnostics.Debug.WriteLine("EqualBorder (5)");

            for (int value = 1; value < 10; value++)
            {
                System.Diagnostics.Debug.WriteLine("{0}={1}", value, value.IsInRange(border1, border2));
            }
        }
    }



Ausgabe:

RealBorder 3-7
1=Outside
2=Outside
3=Border
4=Inside
5=Inside
6=Inside
7=Border
8=Outside
9=Outside

EqualBorder (5)
1=Outside
2=Outside
3=Outside
4=Outside
5=Border
6=Outside
7=Outside
8=Outside
9=Outside


Edit: herbivore hat natürlich Recht... (Math.Sign eingebaut)


Range Check IComparable Extension

Thema: Interface optionale Implementierung
Am im Forum: Grundlagen von C#

Zitat von Taipi88
Hi,


Bei deinen Einschränkungen fällt mir dann somit auch nur eines ein:
Implementiere die Schnittstelle vollständig - und wenn es gar nicht anders möglich ist wirfst du bei Aufruf der Methode eine "NotSupportedException".

--> NotImplementedException :-) Ansonsten sehe ich das auch so wie Du.

Thema: InvokeRequired funktioniert nicht
Am im Forum: GUI: Windows-Forms

Tritt das noch auf wenn This.Invokerequired um && this.Handle != Intptr.Zero ergänzt ?

Thema: Datagridview: Bei Auswahl einer Zeile/Celle, anderes DGV mit Detail-Infos dazu füllen
Am im Forum: GUI: Windows-Forms

Herzlich willkommen.

Bitte als erstes dies hier beachten:

[Hinweis] Wie poste ich richtig?

Dann stellst Du konkrete Fragen.

Gruss
Programmierhans

Thema: Properties werden nicht durch die IDE in die .Designer.cs serialisert
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Sebastian

Das mit dem Google für faule ist jeweils eher als Hilfe gedacht (ist doch bequem wenn man die Suche nicht selber tippen muss)... War sicher nicht böse gemeint.

Das mit dem ReferenceConverter... wie schon geschrieben schau mal welcher TypeConverter auf dem IComponent ist... und dann dessen Base... und schon haste den gefunden :-)

Sich in das Designerverhalten eigener Controls einzuarbeiten ist hart ... aber mit der Zeit verstehst Du da auch immer mehr...

Viel Spass beim experimentieren
Gruss
Programmierhans

Thema: Properties werden nicht durch die IDE in die .Designer.cs serialisert
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Meiner Meinung nach fährst Du aber besser wenn Du die inneren Klassen von Component ableiten lässt (Dann brauchst Du auch den ReferenceConverter nicht... und kriegst gratis den Designer-Support)

Also in etwa so:




    public class MyClassA : System.Windows.Forms.Panel
    {
        private IContainer components;
        private MyClassB _Property1 = new MyClassB();
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public MyClassB Property1 { get{return this._Property1;} private set{this._Property1=value;} }

        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            this.components.Add(_Property1);
        }
    }

    
    public class MyClassB:Component
    {

        private IContainer components;
        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            this.components.Add(_Property1);
        }

        private string _Name = "myClassB";
        public string Name { get{return this._Name;} set{this._Name=value;} }


        private MyClassC _Property1 = new MyClassC();
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public MyClassC Property1 { get{return this._Property1;} private set{this._Property1=value;} }

        private BindingList<MyClassC> _Test=new BindingList<MyClassC>();
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public BindingList<MyClassC> Test { get{return this._Test;} private set{this._Test=value;} }
    }

    public class MyClassC:Component 
    {
        private string _Name = "myClassC";
        public string Name { get { return this._Name; } set { this._Name = value; } }
    } 


Schau Dir mal auf dem Interface IComponent vorhandenen Attribute an...

Thema: Properties werden nicht durch die IDE in die .Designer.cs serialisert
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)



    public class MyClassA : System.Windows.Forms.Panel
    {
        private MyClassB _Property1 = new MyClassB();
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public MyClassB Property1 { get{return this._Property1;} private set{this._Property1=value;} }
    }

    [TypeConverter(typeof(ReferenceConverter))]
    public class MyClassB
    {
        private string _Name = "myClassB";
        public string Name { get{return this._Name;} set{this._Name=value;} }

        private MyClassC _Property1 = new MyClassC();
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public MyClassC Property1 { get{return this._Property1;} private set{this._Property1=value;} }

        private BindingList<MyClassC> _Test=new BindingList<MyClassC>();
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public BindingList<MyClassC> Test { get{return this._Test;} private set{this._Test=value;} }
    }

    public class MyClassC
    {
        private string _Name = "myClassC";
        public string Name { get { return this._Name; } set { this._Name = value; } }
    } 

Und im Form ergibt das dann:



            this.myClassA1 = new Test.MyClassA();
            this.SuspendLayout();
            // 
            // myClassA1
            // 
            this.myClassA1.Location = new System.Drawing.Point(79, 76);
            this.myClassA1.Name = "myClassA1";
            this.myClassA1.Property1.Name = "myClassB";
            this.myClassA1.Property1.Property1.Name = "myClassC";
            this.myClassA1.Size = new System.Drawing.Size(330, 152);
            this.myClassA1.TabIndex = 0;
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(529, 297);
            this.Controls.Add(this.myClassA1);
            this.Name = "Form1";
            this.Text = "Form1";
            this.ResumeLayout(false);



Gruss
Programmierhans

Thema: CSV-Datei einlesen und verarbeiten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Oder mit minimem Aufwand

DataSet / DataTable mit dem Designer erstellen... DataSet hat WriteXml/ReadXml-Methoden um File zu lesen/schreiben.

Thema: [gelöst] AutoIT Script wird nicht ausgeführt
Am im Forum: Rund um die Programmierung

Nur als blöde Frage damit gefragt ist...

Process.Start liefert doch schon den Process zurück... wieso nimmst Du nicht direkt den return der Methode statt nachher nochmal über die Processes zu loopen.

Thema: Properties werden nicht durch die IDE in die .Designer.cs serialisert
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Wirf mal Google an mit "Typeconverter instancedescriptor"

Google-Suche nach typeconverter instancedescriptor

Das hilft Dir im Designer-Generated-Code die SubObjekte (inkl. Aufruf eines parametrisierten Konstruktors) zu erstellen.

Gruss
Programmierhans

Thema: Import dauert von Mal zu Mal deutlich länger
Am im Forum: Datentechnologien

Werden dabei auch Indizierte Felder geändert ? (ein Update von Indizierten Feldern ist teuerer als ein Insert).

Thema: 2 Jahre C# Erfahrung - Was als nächstes lernen?
Am im Forum: Smalltalk

Events und delegates wirst Du 100% brauchen (sind Grundlagen)...

Thema: iOS-Apps, besser in XCode oder in Xamarin?
Am im Forum: Rund um die Programmierung

Ich verwende Xamarin (nur für eine App welche auf unterschiedlichen Plattformenen rennen muss)...

UI-unabhängiges ist aufgrund der Mono-Libs fast zu 100% kompatibel mit Win-Version... UI sind alles die ios-spezifischen Baisisklassen.

Entwicklung mit Visual-Studio... kompiliert wird remote mit einem Build-Mac.

Ist sehr teuer... aber funzt (mal von gewissen Update-Problemen von Zeit zu Zeit) relativ gut.

Thema: Datengebundenen Tableadapter mit Task (neu)laden
Am im Forum: GUI: Windows-Forms

DataBinding gehört in den UI-Thread

Thema: [gelöst] Verwendete Version einer DLL zur Laufzeit wechseln
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Die Versions-Dll NICHT im Bin ablegen sondern in einem Unterverzeichnis dessen....

Häng dich in AppDomain.CurrentDomain.AssemblyResolve - Event

Dann kannst Du entweder das eine oder das andere dll zurückliefern.

Aber Achtung: Einmal geladen ist geladen ! das kriegst Du nicht mehr raus.

Thema: Öffnen eines nicht modelen Fensters von einem modalen Fentser aus: Letzteres schließt sich gleich
Am im Forum: GUI: Windows-Forms

Modale Forms müssen explizit disposed werden (oder per using).
Nicht modale Forms disposen sich selber wenn diese geschlossen werden.

Thema: NotSupportedException beim Speichern [bzw. im Zusammengang mit Dateipfaden]
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zusätzlich zu dem was vbprogger geschrieben hat....

Das findest Du sehr einfach raus beim Debugging...

z.B: setzt Du sFile zusammen aus sPath und labName... dies bevor Du sPath gesetzt hast... das kann ja nicht funktionieren...

Directory.Exists wenn am Pfad die Backslashes dran hängen... auch das ist nicht unbedingt schlau...

Thema: Button farbe ändern, wenn Daten für Button vorhanden sind...
Am im Forum: GUI: Windows-Forms

[FAQ] Variablennamen zur Laufzeit zusammensetzen / Dynamisches Erzeugen von Controls (wirst Du brauchen um Deiner nächsten Frage vorzugreifen (wie finde ich meine Controls aufgrund des Namens))

Thema: WPF Anwendung stürzt auf TerminalServer ab
Am im Forum: Rund um die Programmierung

Verwendest Du beim Start der Anwendung Code um festzustellen ob die Anwendung schon läuft ... um diese laufende Instanz dann zu aktivieren ?

Dann könnte es sein, dass die neu gestartete Anwendung merkt, dass sie schon läuft (aber im Context eines anderen Users) und kackt dann ab wenn diese versucht die schon laufende Instanz in den Vordergrund zu holen.

Zugegeben ist einfach ein Schuss in's Blaue... aber könnte ja sein :-)

Thema: Drucker- und Dateiauswahl sowie CMD Umsetzung
Am im Forum: GUI: Windows-Forms

Wenn schon frickeln... Dann in etwa so

(Gar nicht so einfach zu editieren auf einem Pad)


using System;
using System.Diagnostics;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    

    public partial class Form1 : Form
    {
        
       

        public Form1()
        {
            InitializeComponent();
        }

        public string Output 
       {
          get
          {
             return String.Format("/K \"C:\\DATA\\Intermec\\VW\\printraw.exe C:\\DATA\\Intermec\\VW\\{0} {1}\"", Configfile.Text, Printername.Text);
          }
       }


     

        //Sendbutton
        private void button1_Click(object sender, EventArgs e)
        {
            
           System.Diagnostics.Process.Start("CMD.exe", this.Output);
           
        }

       
    }
}

Thema: Drucker- und Dateiauswahl sowie CMD Umsetzung
Am im Forum: GUI: Windows-Forms

@SteelLynx1978

Na wenn Du keine erprobte Lösung willst, dann viel Spass beim frickeln.

Dieses Basisverfahren funktioniert bei Pago / Zebra / Intermec und sicher auch bei anderen Makrodruckern im Hostmodus.

Nb: ihr seid nicht die einzigen die aus SAP auf solche Druckertypen drucken.

Gruss
Programmierhans

Thema: Drucker- und Dateiauswahl sowie CMD Umsetzung
Am im Forum: GUI: Windows-Forms

Wenn es keinen Grund gibt dass man printraw verwenden muss... dann findest Du x-Beispiele im Internet wie das DIREKT geht (File einlesen und an einen Drucker pushen).

z.B: KB322091: Wie Sie unformatierte Daten an einen Drucker senden, indem Sie mithilfe von Visual C# .NET

Googeln nach "c# print raw"

Thema: [erledigt] Durchschnittsgeschwindigkeit berechnen (unbestimmte Anzahl von Werten)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Könntest Du das nicht ohne Array mit einem Counter und einem Decimal abfackeln.

Beispiel:

10+20+30+40+50=150 / 5 Messwerte = 30

Berechnung:

10 Count 1 = 10
20 Schnitt=Schnitt +((20-10)/Count) Count 2 = 15
30 Schnitt=Schnitt +((30-15)/Count) Count 3 = 20
40 Schnitt=Schnitt +((40-20)/Count) Count 4 = 25
50 Schnitt=Schnitt +((50-25)/Count) Count 5 = 30


Also immer Schnitt = Schnitt + ((NeuerWert-Schnitt)/NewCount))

Je mehr Messwerte Du hast, desto kleiner wird die Beeinflussung durch die Abweichung des neuen Messwertes zum Schnitt.

Thema: XAML Problem mit Darstellung
Am im Forum: GUI: WPF und XAML

'/'

Thema: XAML Problem mit Darstellung
Am im Forum: GUI: WPF und XAML

http://msdn.microsoft.com/de-de/library/8kb3ddd4(v=vs.110).aspx

/=Datumstrennzeichen... und das ist in DE nunmal der Punkt.

Wer lesen kann ist klar im Vorteil:

Um das Datumstrennzeichen für ein bestimmtes Datum und eine Uhrzeit-Zeichenfolge zu ändern, geben Sie das Trennzeichen in einem Zeichenfolgenliteral-Trennzeichen an. Die benutzerdefinierte Formatzeichenfolge mm'/'dd'/'yyyy erzeugt beispielsweise eine Ergebniszeichenfolge, in der "/" immer als Datumstrennzeichen verwendet wird. Um das Trennzeichen für Datumsangaben für alle Termine für eine Kultur zu ändern, entweder ändern Sie den Wert der DateTimeFormatInfo.DateSeparator-Eigenschaft für die aktuelle Kultur, oder instanziieren Sie ein DateTimeFormatInfo-Objekt, weisen Sie das Zeichen der DateSeparator-Eigenschaft zu, und rufen Sie eine Überladung der Formatierungsmethode auf, die einen IFormatProvider-Parameter enthält.

Thema: Bilder verkleinert drucken, ohne dass Auflösung (Pixelinformation) verlorengeht
Am im Forum: Grafik und Sound

Stell dir ein Bild als Schachbrett vor. Es hat eine gewisse Anzahl Felder.
Ein kleineres Bild derselben Grösse hat gleich grosse Felder (aber logischerweise weniger).
Durch die Erhöhung der Resolution im kleinen Bild erhöhst Du die Anzahl der Felder (diese werden dadurch kleiner).

Dann ist es plötzlich ganz logisch.

Umgekehrt wird beim vergrössern eines Bildes nur Speicher verschwendet wenn man nicht gleichzeitig die Auflösung reduziert (ohne Reduzierung der Auflösung hast Du dann mehr Felder... Also 1 Ausgangsfeld wird auf mehrere Zielfelder projiziert).

Alles klar ? Ist so ähnlich wie die Körnigkeit in der Analogphotographie.

Das waren noch Zeiten als ich noch selber aus Schwarzweiss Negativen Abzüge erstellt habe :-)

Gruss Programmierhans