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 TripleX
Thema: SharpDevelop soll korrekten Code beim Hinzufügen von Controls in eigene Collection generieren
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Schau dir ebenfalls mal die ObservableCollection<T>-Klasse an

Thema: Umzug des Forums auf einen neuen Server
Am im Forum: Ankündigungen

Viel Erfolg und ich hoffe, dass myCSharp.de schnell wieder erreichbar ist ... toi toi toi ;)

Thema: Smalltalk? Cleverbot!
Am im Forum: Smalltalk

Zitat von zero_x
Mich würde es interessieren, wie so etwas programmiert worden ist.

Hier findet man ein paar Informationen: http://www.jabberwacky.com/j2about

Thema: Diagramme mit WPF
Am im Forum: GUI: WPF und XAML

ich glaube er meint letzteres, was eigentlich auf ersteres hinausläuft *g

Thema: VS 2010: Automatische Properties in VB.Net, abschaltbar?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von FZelle
Tja, dann hast Du jetzt mit VB.NET das selbe Problem, das C# Entwickler seit 2008 haben.

Du kannst dir da nur behelfen indem du ein eigenes Snippet schreibst.

Hm, wenn ich in C# ein privates Feld implementieren und in VS2010 dann auf das Namen des Feldes rechtsklicke, Refactor / Encapsulate Field auswähle kann ich daraus eine Property generieren. Schneller gehts aber mit dem Snippet "propfull" ;)

Thema: Xml-Softwaredokumentation mit Visual Studio erstellen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

wie gfoidl schon sagte, kannst du Sandcastle verwenden um aus der xml-Datei eine CHM-Hilfe oder eine HTML-Hilfe zu erstellen. Da dass aber relativ kompliziert ist, empfiehlt sich die OpenSource Software "Sandcastle Help File Builder" zu verwenden.

MfG TrripleX

Thema: liste/array mit beliebigen werten als indices ?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Mittels einer Dictionary würdest du die gewünschte Funktionalität bekommen:

            Dictionary<string, int> dict = new Dictionary<string, int>();
            dict["eins"] = 1;
            dict["zwei"] = 2;
            dict["drei"] = 3;

            Console.WriteLine(dict["eins"]);
            Console.WriteLine(dict["zwei"]);
            Console.WriteLine(dict["drei"]);

€dit: Blacal war schneller ... sry :(

Thema: XAML: Langer String aufsplitten auf mehrere Zeilen
Am im Forum: GUI: WPF und XAML

danke für deinen Beitrag CSL.

Zitat von CSL
<TextBlock>
Dies ist ein langer String, welcher aufgesplittet
ist auf mehreren Zeilen
</TextBlock>
Das funktioniert schon mal (hätte ich auch selber drauf kommen können -.- ) Nur funktioniert da dass de CR mittels &#xa; nicht?
Zitat von CSL
Solange du nicht xml:Whitespace auf Preserve stellst siehst du es zur laufzeit auch nicht.
du meinst sicher xml:space (hab es gerade ausprobiert und whitespace gabs da net)


MfG TripleX

Thema: XAML: Langer String aufsplitten auf mehrere Zeilen
Am im Forum: GUI: WPF und XAML

Irgendwie dachte mir schon dass es nicht möglich ist, aber danke für den Hinweis mit WordWrap ;)

Thema: XAML: Langer String aufsplitten auf mehrere Zeilen
Am im Forum: GUI: WPF und XAML

Hallo Gemeinde,

ich wollte fragen ob (und wie) es möglich ist einen langen String in Xaml aufzusplitten auf mehreren Zeilen.

In C# kann man ja z.B. folgendes machen:

string long_string = "Dies ist ein langer String, welcher aufgesplittet" +
                     " ist auf mehreren Zeilen";

genau dass möchte ich auch in XAML erreichen, wenn es möglich ist:
<TextBlock Text="Dies ist ein langer String, welcher aufgesplittet werden soll auf mehreren Zeilen" /> 

MfG TripleX

btw, ich hab gesucht aber nichts gefunden ...

Thema: VS 2008: Kann keine geschweifte und eckige Klammer eingeben
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Wahrscheinlich hast du irgendeine Tastenkombination gedrückt welche dein Layout geändert hat. Ist mir früher auch ab und zu passiert, aber seitdem ich alle anderen Layouts gelöscht habe und nur noch Deutsch in der Liste steht, passiert mir dass nicht mehr.

MfG TripleX

Thema: Panel beim Betreten vergrößern (auch wenn die Maus über eine Kindelement steht)
Am im Forum: GUI: Windows-Forms

Weiss nicht ob es bessere Möglichkeiten gibt, aber so in etwa würde ich dass machen: Im MouseLeave-Event überprüft man, ob sich die Maus noch innerhalb des Controls befindet. Was du benötigen könntest wäre Top, Left, Height und Width des Controls. Außerdem die aktuelle Mausposition. Damit müsste sich ja feststellen können, ob sich die Maus noch innerhalb des Controls befindet. Wenn du dann sicher bist dass die Maus nicht innerhalb des Controls ist, führst du entsprechend deinen code aus.

Thema: Studie: .NET-Entwickler sind am zufriedensten mit ihrem Framework
Am im Forum: Szenenews

Ich bin auch sehr zufrieden mit dem .NET Framework, sonst würde ich ja auch nicht damit arbeiten. Im Desktop Bereich würde ich auch nicht mehr mit einem anderen Framework bzw. einer anderen Sprache als C# arbeiten wollen .

Manche Sachen nerven mich zwar ein wenig, z.B. wünsche ich mir eine bessere Unterstützung von AOP - aber man kann halt nicht alles haben.

Und die Kommentare bei Heise lese ich mir auch nur noch selten durch - die schlagen sich doch eh bei jedem Thema nur die Köpfe ein - das tue ich mir nicht an. Aber der Hauptgrund warum ich die Kommentare bei Heise nicht lese ist eig. das Kommentarsystem welches einfach zum kotzen ist (aber das ist ein anderes Thema ... )

Thema: VS kompiliert und gibt auskommentierten Code aus?!
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

kann es sein dass du irgendwo einen Compilerfehler hast und du (früher?) die Meldung wo besagt "There were build errors. Would you like to continue and run the last successful build?" mit Yes und "Do not show this dialog again" beantwortet hast?

Thema: Wie eine Matrix definieren?
Am im Forum: GUI: WPF und XAML

das liegt daran dass ich das ganze unter .NET4 ausprobiert habe und dort ist das DataGrid direkt mit integriert, deswegen klappt das auch so wie ich es gemacht habe.
Bei dir kennt er aber den Typ "DataGridColumnHeader" nicht, wie es dir die Fehlermeldung ja auch schon mitteilt.

Versuche mal folgendes: <Style TargetType="{x:Type my:DataGridColumnHeader}">

Thema: Software mit Registrierungsschlüssel schützen
Am im Forum: Rund um die Programmierung

Zitat von Jelly
Du solltest nicht davon ausgehen, dass gleich jeder, der deine Software nutzt, gleich den illegalen Weg sucht, und eine gehackte Version verwendet.
[...]
Jede Software kann geknackt werden, es muss nur interessant genug sein, für einen Hacker.
Zitat von Jelly
[...] und dessen Quellcode für Hacker wohl noch nicht einmal von grossem Interesse [...]
*räusper* cracker *räusper*

Thema: Wie eine Matrix definieren?
Am im Forum: GUI: WPF und XAML

Zitat von Byteteufel
Ich dachte da an ein Datagrid, dort ist der Header aber nicht senkrecht, sondern waagerecht. Somit wird die Tabelle zu groß.

Du kannst den Header allerdings senkrecht machen in WPF:
        <DataGrid AutoGenerateColumns="False">
            <DataGrid.ColumnHeaderStyle>
                <Style TargetType="{x:Type DataGridColumnHeader}">
                    <Setter Property="LayoutTransform">
                        <Setter.Value>
                            <RotateTransform Angle="90" />
                        </Setter.Value>
                    </Setter>
                </Style>
            </DataGrid.ColumnHeaderStyle>
            <DataGrid.Columns>
                <DataGridTextColumn Header="Header" />
                <DataGridTextColumn Header="Header" />
                <DataGridTextColumn Header="Header" />
            </DataGrid.Columns>
        </DataGrid>

Thema: MaskedTextBox für IP Eingabe zwischen den "Oktetten" springen lassen
Am im Forum: GUI: Windows-Forms

Das Verhalten rührt daher, dass du den Index falsch berechnest und du e.Handled nicht auf "true" setzt.
Du machst jetzt gerade folgendes: Du holst dir den Index des nächsten "," zeichens und springst zu dem Index. Der Cursor ist dann genau ein Zeichen vor dem ",". Da du nun e.Handled nicht auf true setzt, geht der Cursor nochmal eins weiter und du denkst du hast alles richtig gemacht ;) Dem ist aber nicht so, wie du beim setzen des Cursors an die Position 0 feststellst.

Also addiere eins zum index hinzu und setzte e.Handled auf true:

            if (e.KeyCode == Keys.Right)
            {
                maskedTextBox1.SelectionStart = maskedTextBox1.Text.IndexOf(',', maskedTextBox1.SelectionStart)+1;
                e.Handled = true;
            }

Thema: Kombination von optionalen Parametern und params ...[] unmöglich?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von herbivore

weil das ein reines Compiler-Feature ist. Die Runtime und erst recht das Framework haben damit gar nichts zu tun.

Und deswegen sollte man auch auf die Verwendung von optionalen Paramter verzichten wenn man kein .NET 4 projekt bastelt - denn wenn jemand anders dieses Projekt kompilieren möchte und nicht mit VS2010 sondern nur mit VS2008 arbeitet, wird es zu Problemen kommen? (man sollte die optionalen Parameter ja eh mit Vorsicht genießen, wie oben schon beschrieben)

Thema: Kombination von optionalen Parametern und params ...[] unmöglich?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hätte mal eine Frage bez. optionale parameter, ist zwar leider Offtopic aber ich wollte kein neues Thema erstellen.

Und zwar entwickle ich gerade mit VS2010 ein .NET 3.5 Projekt und habe dort eine Methoden mit optionale Parameter bestückt. Optionale Parameter gibt es ja erst seit .NET4, warum kann ich diese aber unter .NET 3.5 bereits verwenden ohne dass der Compiler meckert?


Und jetzt will ich auch noch was zum Thema beizutragen. Und zwar habe ich das Problem mal angeschaut und folgendes funktioniert:

 public Test()
        {
            MethodeXY(Zusaetzliches:new string[] { "Test1", "Test1" });
        }

        public void MethodeXY(bool JaNein = true, params string[] Zusaetzliches)  {
            if (JaNein)
            {
                foreach (string item in Zusaetzliches)
                {
                    Console.WriteLine(item);
                }
            }
        }

Also verwenden kann man das auch mit optionale Parameter, man muss halt die Parameter in ein array packen.

Thema: Eine Property an eine Wert (welches in einem Style mittels Setter gesetzt ist) binden in Xaml
Am im Forum: GUI: WPF und XAML

@D-eath,

also so wirklich bringt mir das auch nicht weiter. Ich könnte ElementName verwenden, wenn ich bereits ein Element hätte welchen diesen Style verwendet - dass habe ich aber nicht, denn diese werden erst später dynamisch erzeugt.


Also ich hab mir mal über den Wizard beim DataBinding folgendes zusammengeklickt:

            <TextBlock Text="{Binding Source={StaticResource BubbleStyle}, Path=TargetType.Height}" />
Aber dass funktioniert nicht, denn es wird kein Text angezeigt. Dieses TargetType.Height kommt mir sowieso ein wenig komisch vor, habe dass mal in verschiedene andere Varianten geändert, aber ich kriege es einfach nicht hin ...

Thema: Eine Property an eine Wert (welches in einem Style mittels Setter gesetzt ist) binden in Xaml
Am im Forum: GUI: WPF und XAML

Hallo Gemeinde,

ich würde gerne, wie der Betreff schon aussagt eine Property an einen Wert, welches in einem Style mittels Setter gesetzt ist, in XAML binden. Um besser zu verstehen was ich machen möchte folgt ein Beispiel dazu. Ich habe folgenden Style definiert (in der App.xaml):

        <Style x:Key="BubbleStyle" TargetType="{x:Type Button}">
            <Setter Property="Width" Value="200"/>
            <Setter Property="Height" Value="200"/>
            <Setter Property="Template"> <--[...]--> 

Nun möchte die Höhe eines StackPanels an die Höhe welche ich oben festgelegt habe, binden.
Ich habe das ganze über einen Umweg geschafft:

        public double BubbleHeight
        {
            get
            {
                return ((Style)FindResource("BubbleStyle")).Setters.Cast<Setter>()
                                                                   .Where(x => x.Property.Name.Equals("Height"))
                                                                   .Select(x => x.Value)
                                                                   .Cast<double>()
                                                                   .FirstOrDefault();
            }
        }

und dann binde ich die Höhe des StackPanels an diese Property.

Nun wollte ich fragen ob man es auch ohne den Umweg zu machen direkt in Xaml festlegen kann?

MfG TripleX

Thema: Grafische Objekte auf GUI verbinden: Ansatz gesucht
Am im Forum: Grafik und Sound

mal eine Frage zwischendurch @herbivore

Du meintest vorhin "ich würde bei sowas dringend von UserControls abraten. ". Nun wollte ich fragen warum da abraten würdest. Ich hätte das und/oder/... Gatter nämlich als UserControl gemacht.

Also meiner Meinung nach wäre das viel einfacher, auch beim "erstellen" der Endfunktion. Da schaut man sich dann die Eingangs bzw Ausgangs Property (welche man natürlich selber implementieren muss) des Usercontrol an, und damit weiß ich welche Gatter miteinander verbunden sind.

Wenn man die ganzen Gatter nur mit Rechtecken zeichnet stelle ich mir dass doch recht kompliziert vor!

Thema: den blauen Hintergrund von VS2010 abschalten
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

such mal in der Online Gallery (Tools -> Extension Manager) nach "Visual Studio Color Theme Editor". Damit kannst du das Aussehen von Visual Studio ebenfalls konfigurieren. Die Farben welche du da bearbeiten müsstest wären die ganzen EnvironmentBackground* Farben.

Thema: Regex vereinfachen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hm also ich habe alle deine strings aus dem 1sten Beitrag ausprobiert und diese haben mir das richtige Ergebnis ausgespuckt. Nichtsdestotrotz entschuldige ich mich dafür ;)

Thema: Visual Studio 2010 has been released!
Am im Forum: Szenenews

Zitat von Schlopp
bei uns in der MSDN-AA sind jetzt alle Versionen verfügbar


grr, bei uns immer noch nicht ... Ich werde morgen mal ins Rechenzentrum gehen und mal nachhaken.

€dit: Mein Erscheinen hat Wunder gewirkt, heute haben sie es freigeschaltet *freu*

Thema: Regex vereinfachen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Folgender wäre kürzer:

(?≤</?translate>|^)(\s*\w+\s*)+

Thema: Regex vereinfachen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wäre es nicht einfacher alle <translate> und </translate> durch "nichts" zu ersetzen (und dann nach einem Leerzeichen splitten)?

Thema: Nested RegularExpression: Hat ein String eine ausbalancierte Anzahl von #regions?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von herbivore
wobei HasBalancedRegions auch bei

#endregion
#region

true liefern würde, also die Reihenfolge nicht berücksichtigt.

Im Prinzip hast du recht. Bei meiner Implementierung gibt es trotzdem keine Probleme.

Mein Code sieht jetzt folgendermaßen aus:


Ich habe eine Methode, die aufgerufen hat sobald der Benutzer für mich wichtige Änderungen getätigt hat:

        internal void UpdateRegionsFromCurrentDocument()
        {
            try
            {
                RegionsInCurrentTextDocument = _regionAnalyzer.GetRegionsFromText(_dteWrapper.ActiveTextDocumentContent);
                CurrentTextDocumentHasUnbalancedRegions = false;
            }
            catch (UnbalancedRegionException)
            {
                CurrentTextDocumentHasUnbalancedRegions = true;
            }
        }
Und hier die zwei Methoden, welche zum einen prüft ob ein Text eine balancierte Anzahl von regions hat, und zum anderen die Regions als Liste zurück gibt:

        public bool HasBalancedRegions(string text)
        {
            int opened = Regex.Matches(text, RegexStartOfRegion, RegexOptions.Singleline | RegexOptions.Compiled | RegexOptions.Multiline).Count;
            int closed = Regex.Matches(text, RegexEndOfRegion, RegexOptions.Singleline | RegexOptions.Compiled | RegexOptions.Multiline).Count;
            return (opened - closed == 0);
        }
        public ObservableCollection<Region> GetRegionsFromText(string text, int startLineNumber = 1)
        {
            if (!HasBalancedRegions(text)) throw new UnbalancedRegionException();

            ObservableCollection<Region> regions = new ObservableCollection<Region>();

            Regex regex = new Regex(RegexSearchRegion, RegexOptions.Singleline | RegexOptions.Compiled | RegexOptions.Multiline);
            MatchCollection matches = regex.Matches(text);
            foreach (Match match in matches)
            {
                string[] newLineArr = new string[] { Environment.NewLine };
                int newLinesBeforeMatch = text.Substring(0, match.Index).Split(newLineArr, StringSplitOptions.None).Length - 1;
                int newLinesBetweenMatch = match.Value.Split(newLineArr, StringSplitOptions.None).Length - 1;

                int startLine = startLineNumber + newLinesBeforeMatch;
                int endLine = startLine + newLinesBetweenMatch;

                Region region = new Region(match.Groups["name"].Value.Trim(), startLine, endLine);
                region.Children = GetRegionsFromText(match.Groups["text"].Value, startLine + 1);
                regions.Add(region);
            }
            return regions;
        }

nun wird, wenn der User (bei meinem testcode) #endregion eingibt beim allersten durchlauf gleich eine Exception geworfen. Wenn er nun #region eingibt, wird später, beim holen der Children eine Exception geworfen --> alles funktioniert wie ich möchte :)

Wenn der User in einem neuen Dokument nur: #endregion\r\n#region eintippt, dann kommt zwar keine Meldung dass es unbalanced ist aber wenigstens freezed mein Programm nicht beim auswerten des Regex. Und gerade dieses freezen wollte ich beheben. Außerdem lässt sich der Code bei dem eingegebenen Text eh net kompilieren, also ist das halb so schlimm dass ich es nicht mitbekomme.

Vielen Dank euch beiden ... Problem behoben ;)

Thema: Nested RegularExpression: Hat ein String eine ausbalancierte Anzahl von #regions?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von herbivore
ohne Not würde ich Ausgleichsgruppen/balancing groups nicht verwenden.

Naja Not ist nicht wirklich da, ich könnte den Check auch einfach übergehen, dann würde die Ausgabe meiner TreeView (mit den regions) nicht sauber sein. Ich würde lieber eine Meldung anzeigen, welche besagt dass eine eine nicht ausgeglichene Anzahl von region's im Code vorhanden sind.

Wenn ich aber bedenke, dass das dauernde Prüfen auf solch einen Fall sich negativ auswirkt auf die Perfomance könnte ich auch auf diese Funktionalität verzichten. Denn solch ein Fall kommt doch relativ selten vor ... . Mich würde trotzdem interessieren ob sowas überhaupt möglich ist, denn ich habe es bisher nicht geschafft ;).
Zitat von der-schlingel
Hast du noch mehr vor in diesem Check oder prüfst du nur ob #region und #endregion gleich oft vorkommen?

Jein, also #region und #endregion sollte einerseits gleich oft vorkommen, aber es sollte auch sinnvoll verschachtelt sein, also wenn man z.B. folgenden Text hat:
#region
#endregion
#endregion
#region

dann kommen sie zwar gleich oft vor, aber nicht in einer korrekten logischen Reihenfolge.

€dit: Achja, ganz vergessen - es besteht Not, denn wenn ich irgendwo #region schreibe ohne passenden Endtag bleibt mein regex für die Suche nach regions hängen ... :( Werde mich jetzt erstmal mit folgenden Code abfinden:

        public bool HasBalancedRegions(string text)
        {
            int opened = Regex.Matches(text, RegexStartOfRegion, RegexOptions.Singleline | RegexOptions.Compiled | RegexOptions.Multiline).Count;
            int closed = Regex.Matches(text, RegexEndOfRegion, RegexOptions.Singleline | RegexOptions.Compiled | RegexOptions.Multiline).Count;
            return (opened-closed == 0);
        }