Laden...
M
markus.bodlos myCSharp.de - Member
Österreich / Steiermark Dabei seit 01.03.2008 205 Beiträge
Benutzerbeschreibung

Forenbeiträge von markus.bodlos Ingesamt 205 Beiträge

22.08.2009 - 14:29 Uhr

halte es auch für eher unwahrscheinlich dass du das ding fängst... Erstens sind die sehr sehr schnell und zweitens sind sie durch ihre durchaus interessante fortbewegungsart sehr schwer für das auge zu verfolgen.
Habe zu hause hinundwieder selbst schlangen, war auch schon eine kreuzotter dabei. Da aber meine geheimwaffe eine Katze ist seh ich die meistens erst nachdem sie getötet wurden 😛.
Kann dir nur auch empfehlen mal ne Katze von nem Nachbarn für ne Woche auszuborgen und das Problem erledigt sich von selbst 😉

22.08.2009 - 00:07 Uhr

All jenen welche mal was anspruchsvolles ohne viel Action und Animationen sehen wollen kann ich nur sehr Man from earth ans herz legen, eine der besten Dialoge die ich kenne!

10.08.2009 - 20:52 Uhr

Was meinst du mit im "Memory"? Auf dem HDD, im Ram, Cache?!?!

Super wäre auch, eine andere Möglichkeit die Chatbox von PokerStars auszulesen bzw. an die Daten zu kommen.

Eine andere Möglichkeit als welche???

[Hinweis] Wie poste ich richtig?

27.07.2009 - 22:38 Uhr

HAllo, mit der Zeile:

 backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);

abonierst du das Event zum Wiederholten mal. Mit += wird eine Callbackmethode einer Liste entsprechend dem EventWe hinzugefügt. Wenn das Event jetzt auslöst wird jede Callbackmethode aufgerufen (Du legst deine Methoden immer wieder auf die Liste)

mfg

29.05.2009 - 22:31 Uhr

Ich denke eine Möglichkeit wäre die ThreadPriority auf highest zu stellen.

mfg

24.05.2009 - 14:19 Uhr

Hallo,

wie du zufallszahlen generierst wobei jede nur einmal vorkommen darf wurde schon oft besporchen unter anderem gibt es auch ein snippet dazu:
[Snippet] Zufallszahlen, die sich nicht wiederholen

zu deinem Problem wie du das einlesen mehrfacher gleicher Zahlen verhinderst schlage ich vor dass in deiner klasse zahlenErfassen zu machen. Erstelle dort einer Methode "NaechstenTippAbgeben(int Tipp)" welche intern die 6 Tipps als liste oder array verwaltet (Die reihenfolge beim lotto ist ja egal. In dieser Mehode kannst du dann auch prüfen ob ein eintrag doppelt vorkommt durch durchgehen und vergleichen der bereits getippten einträge.
Es fehlt dir dann auch leichter zu prüfen wie veiele eingaben mit der ziehung üereinstimmen.

mfg Markus

24.05.2009 - 02:32 Uhr

Hallo,

du hast dich bei deinem Code zweimal in eine Rekursion verlaufen. Das erste mal wegen eines fehlers da du in der Zeile


((ListControl)sender).Text == "Alle"

prüfst ob der erste Eintrag "Alle" in der Texteigenschaft stehen hat, was ja immer der Fall ist...

Schöner ist meiner Meinung das ganze wenn du ein eigenes Control erstellst was genau diese Funktionalität bereitstellt. Habs mir mal angetan:


    public class SpecialCheckedListBox : CheckedListBox
    {
        private bool InternSelectionProcess;

        public SpecialCheckedListBox()
        {
            InternSelectionProcess = false;

            this.Items.Clear ();
            this.Items.Add ( "Alle" );
        }

        public void SelectAll ()
        {
            this.SelectionProcessToAll ( CheckState.Checked );
        }

        public void DeselectAll ()
        {
            this.SelectionProcessToAll ( CheckState.Unchecked );
        }

        protected void SelectionProcessToAll ( CheckState State )
        {
            InternSelectionProcess = true;
            for ( int i = 0; i < base.Items.Count; i++ )
            {
                base.SetItemCheckState ( i , State );
            }
            InternSelectionProcess = false;
        }

        protected override void OnItemCheck ( ItemCheckEventArgs ice )
        {
            if ( !InternSelectionProcess )
            {
                base.OnItemCheck ( ice );

                if ( this.Items [ice.Index] as string == "Alle" )
                {
                    if ( ice.NewValue == CheckState.Checked )
                    {
                        this.SelectAll ();
                    }
                    else if ( ice.NewValue == CheckState.Unchecked )
                    {
                        this.DeselectAll ();
                    }
                }
                else
                {
                    this.InternSelectionProcess = true;
                    this.SetItemCheckState ( 0 , CheckState.Unchecked );
                    this.InternSelectionProcess = false;
                }
            }
        }
    }

Der erste Eintrag "Alle" wird beim Ausführen des Programms hinzugefügt...
mfg Markus

20.05.2009 - 21:32 Uhr

Leider verrät mir meine glaskugel (trotz neuer hochglanzpolitur...) nicht was denn genau dein problem ist, definiere mal dein problem...

siehe auch: [Hinweis] Wie poste ich richtig?

mfg Markus

07.05.2009 - 22:17 Uhr

Zur Eränzung würde es auch so funktionieren:


            if ( sender is CheckBox )
            {
                int Index = Array.IndexOf<CheckBox> ( _chkSubscriberCheckbox , (CheckBox) sender );
            }

mfg Markus

05.05.2009 - 22:12 Uhr

Abend,

hab dir den code aus dem refvlector kopiert, damit sollte klar sein wie diue methode aufgebaut ist 😉


public override string ReadLine()
{
    if (this.stream == null)
    {
        __Error.ReaderClosed();
    }
    if ((this.charPos == this.charLen) && (this.ReadBuffer() == 0))
    {
        return null;
    }
    StringBuilder builder = null;
    do
    {
        int charPos = this.charPos;
        do
        {
            char ch = this.charBuffer[charPos];
            switch (ch)
            {
                case '\r':
                case '\n':
                    string str;
                    if (builder != null)
                    {
                        builder.Append(this.charBuffer, this.charPos, charPos - this.charPos);
                        str = builder.ToString();
                    }
                    else
                    {
                        str = new string(this.charBuffer, this.charPos, charPos - this.charPos);
                    }
                    this.charPos = charPos + 1;
                    if (((ch == '\r') && ((this.charPos < this.charLen) || (this.ReadBuffer() > 0))) && (this.charBuffer[this.charPos] == '\n'))
                    {
                        this.charPos++;
                    }
                    return str;
            }
            charPos++;
        }
        while (charPos < this.charLen);
        charPos = this.charLen - this.charPos;
        if (builder == null)
        {
            builder = new StringBuilder(charPos + 80);
        }
        builder.Append(this.charBuffer, this.charPos, charPos);
    }
    while (this.ReadBuffer() > 0);
    return builder.ToString();
}

mfg

01.05.2009 - 22:45 Uhr

@ Hajoseb:

Ja else ist schöner macht aber für die Funktion keinen Unterschied...

mfg Markus

01.05.2009 - 22:44 Uhr

auf dieser seite gibt es unzählige dataeiformate, auch wie prc aufgebaut ist:

http://www.wotsit.org/

mfg Markus

27.04.2009 - 21:24 Uhr
  1. soetwas kann man nur mit AOP.

Kannst Du beides bitte näher erläutern ?

such mal nach PostSharp

mfg

25.04.2009 - 23:08 Uhr

Hallo,

dann musst du den string durchlaufen jeden buchstaben auf int casten und addieren

genau so ist es, wobei du die Groß - Klein Buchstaben beachten musst, am besten wandelst du deinen Text mit der entsorechenden String Methode in Kleinbuchstaben um. Zum Wert deines Strings s an der Stelle i kommst du dann einfach mit:


int Wert = s[i] - 'a' + 1

mfg Markus

05.04.2009 - 00:58 Uhr

Hallo zero_x,

danke für deine Antwort, hat geholfen.

mfg

04.04.2009 - 23:38 Uhr

Hallo,

habe folgendes Szenario:

2 Klassen A1 & A2 erben von einer gemeinsamen Basisklasse BasisA.

2 Klassen B1 & B2 implementieren implizit das geimeinsame Interface InterB.

Das Interface InterB wiederrum hat eine Eigenschaft vom Typen BasisA im Weiterem nur Prop genannt.

in den beiden Klassen B1 & B2 hab ich die Eigenschaft vom Typ BasisA angelegt. Jedoch verwende ich nicht den Typen BasisA sonder in der Klasse B1 den Typen A1 und in der Klasse B2 den Typen A2.

der Einfachheithalber in Codeform:


class BasisA
    { }

    class A1 : BasisA
    { }

    class A2 : BasisA
    { }

    interface InterB
    {
        BasisA Prop { get; set; }
    }

    class B1 : InterB
    {
        public A1 Prop { get; set; }
    }

    class B2 : InterB
    {
        public A2 Prop { get; set; }
    }

Bei dieser Architektur meldet der Kompiler wie folgt (Klassennamen durch die Pseudonyme ersetzt):

"B1" implementiert den Schnittstellenmember "InterB.Prop" nicht. "B1.Prop" hat nicht den entsprechenden Rückgabetyp "BasisA" und kann "InterB.Prop" daher nicht implementieren.

und

"B2" implementiert den Schnittstellenmember "InterB.Prop" nicht. "B2.Prop" hat nicht den entsprechenden Rückgabetyp "BasisA" und kann "InterB.Prop" daher nicht implementieren.

was das heißt ist mir leider nicht ganz klar. Da ja im Grunde ein impliziter Cast erfolgen sollte.

Danke, mfg Markus

28.09.2008 - 21:25 Uhr

Geiles Programm.

mfg

02.09.2008 - 20:50 Uhr

frisch aus dem urlaub 🙂

15.08.2008 - 23:41 Uhr

Tja, das hat mich etwas überrascht. Warum kann ich nicht aus einem anderen Thread heraus den Inhalt der ListBox ändern? Kann man da irgendwas machen?

Ja in die FAQ schauen....

[FAQ] Controls von Thread aktualisieren lassen (Control.Invoke)

mfg Markus

14.08.2008 - 23:29 Uhr

WinForms wird es noch Jahre geben, eine Adaptierung von WPF geht nicht so schnell. Nichts desto trotz ist es wesentlich schon jetzt auf die noch junge Technologie WPF zu setze. Persönlich hakte ich WPF für sehr vielversprechend und zielführender in der GUI erstellung als WinForms.

mfg Makus

PS: die Frage gab es schon des öfteren im Forum

12.08.2008 - 23:22 Uhr

Guten Abend,

erstell dir von jeder Zeile einen Hashcode,diesen Speicherst du dann in einem dictionary mit <index, hashcode> lässt dir das dictionary nach den hashcodes sortieren und gehst anschliessend das selbige durch, wenn 2 mal hintereinander der leiche hash kommt weißtdu anahnd des indexes welche zeile gelöscht werden muss.

hoffe das war einigermasen verständlich, war ein langer tag.

mfg Markus

PS: bei 800MB wird es aber trotzdem eine Zeit brauchen, du könntest dich mal mit multithreading auseinander setzen. Sortieren oder auch suchen kann man beispielsweiße gut auf threads aufteilen.

10.08.2008 - 22:49 Uhr

Wenn das der Fall ist empfiehlt sich eher Debug.Write() oder WriteLine()

mfg Markus

09.08.2008 - 00:23 Uhr

Hallo,

ich hab meinen Programmiereinstieg mit VB6 gehabt. Warum vergleichst du bzw. warum wird immer wieder VB mit C++ gemessen? Die beiden Sprachen decken doch unterschiedliche interessens Gebiete ab. Man vergleicht ja auch nicht Äpfel und Birnen auf ihre Schönheit...

Meiner Meinung war VB eine gute Einsteigersprache, heutzutage macht es aber wenig sinn erste Erfahrungen in VB zu sammeln wenn es VB.net oder ohnehin C# gibt. Fortgeschrittene wissen nach einer Zeit ohnehin in welcher Sprache sie welche Aspekte nutzen können und worauf sie sich spezialisieren sollen.

Ein paar kleine relativierungen:

Kein strukturierter Code. (meiner Meinung nach eher Geschmackssache als Nachteil)

Verstehe nicht wie du das meinst? Es gibt auch in VB sogennate Module bzw. Klassen.

Braucht Runtime-Packages. Keine eigenständige Anwendung.

Auch C++ braucht eine Runtime Library

VB-Code ist langsam.

Diese Aussage halte ihc für sehr allgemein gehalten.

In C++ hab ich ja quasi die volle Kontrolle und wenn ich weiss was ich tue, kann ich alles mögliche damit machen.

So einfach gehts nun auch nicht auf Speicher fremder Anwendungen zu schrieben

Bei deiner Frage kann ich dir gezielt nicht weiter helfen, glaube aber nicht dass das trivial ist. Machbar ist vieles, wenn es aber geht wäre es ein ziemliches Sicherheitsleck.

mfg Markus

07.08.2008 - 17:31 Uhr

Also wenn ich versuche einen String mit "SetText" in das Clipboard zu schreiben bekomme ich den Fehler:

Für den aktuellen Thread muss der STA-Modus (Single Thread Apartment) festgelegt werden, bevor OLE-Aufrufe ausgeführt werden können. Stellen Sie sicher, dass die Hauptfunktion mit STAThreadAttribute gekennzeichnet ist.

wenn ich das befolge und die Main Routine umschreibe ergibt sich ja,


        [STAThread()]
        static void Main(string[] args)
        {
            System.Windows.Forms.Clipboard.SetText("test", System.Windows.Forms.TextDataFormat.Text);
        }

und das geht.

mfg Markus

03.08.2008 - 23:14 Uhr

Du hast die Möglichkeit mehrere Projekte in einer Projektmappe zu vereinen, dadurch bist du im Prinzip autonom zwischen den Projekten hast es jedoch schön übersichtlich in VS.

mfg

01.08.2008 - 21:37 Uhr

Danke für eure Meinungen.

Hatte es bisher noch nie als Methodenaufruf gesehen klingt aber schlüssig. Ich fülle mich ohnehin nicht gestört von diesem Syntax, im Gegenteil schreibe gern in 'C' Sprachen, wollte nur wissen warum man sowas macht (beschäftige mich gerade mit dem Parsen und Compilerbau)

mfg Markus

01.08.2008 - 20:06 Uhr

Hallo,

mal so aus Neugier, warum ist der Syntax in den 'C' Verwandten Sprachen bei den If Abfragen redundant?

Die Grundlegende If Abfrage schaut do so aus:


  if (2 == 3)
  {
     TuWas();
     ToNochWas();
  }

zwei runde Klammern schliessen die Prüfung ein und die Geschwungenen den auszuführenden Teil. Vereinfacht würde das doch auch so funktionieren:


  if 2 == 3
  {
     TuWas();
     ToNochWas();
  }

die Runden Klammern können entfernt werden weil sich auch hier feststellen lässt welcher Teil zur Prüfung gehört und welcher zur Ausführung.

Auch wenn ich den Einzeiler mache mit


  if (2 == 3)
     TuWas();

erspare ich mir gegenüber meiner Vorgeschlagenen Version nichts, sie würde eben nur so aussehen


  if 2 == 3
     {TuWas();}

Würde mich interessieren wenn mich jemand aufklären könnte 🙂

mfg Markus

31.07.2008 - 23:28 Uhr

kannst du auch den unterschied (vorteil) erlären warum man Decimal.Zero verwendet?

31.07.2008 - 23:24 Uhr

Hat VB.Net eigentlich die XML - Kommentarfunktion wie C#?!

ja, mit '''

mfg Markus

31.07.2008 - 23:20 Uhr

Als Ergänzung zu deinem Code, du kannst statt

if (value >= 0) WertB = value; else WertB = 0;

auch

WertB = (value >= 0) ? value : 0

schreiben, perönlich find ichs leserlicher als eine IF in einer Zeile

mfg Markus

30.07.2008 - 23:11 Uhr

grundsätzlich ist auch das mit dem vs designer möglich, mach dir usercontrols und überschreibe die OnPaintMethode in welcher du zeichnen kannst.

Aber wenn du grafisch aufwendige Programme realisieren willst empfehle ich dir WPF und zum designen Microsoft Blend.

mfg Markus

30.07.2008 - 22:56 Uhr

Stell einfach den FormBorderStyle auf none. dann hast ein leeres fenster und kannst eine bitmap reinsetzen.

mfg

30.07.2008 - 22:43 Uhr

Was passt dir am Visula Studio Designer nicht?

mfg Markus

30.07.2008 - 21:30 Uhr
            List<Type> GefundeneKlassen = new List<Type>();

            foreach (Type t in Assembly.GetExecutingAssembly().GetTypes())
            {
                if (t.GetInterface("IDeinInterface") != null)
                    GefundeneKlassen.Add(t);
            }

mfg Markus

30.07.2008 - 21:18 Uhr

Hallo,

string Pfad = Process.GetProcessById(/*Die ID*/).MainModule.FileName;

mfg Markus

29.07.2008 - 22:20 Uhr

Hallo,

man kann keine gleichen Schlüssel erzeuen das liefert einen Fehler wenn du es mit der Add Methode versuchst, du kannst es aber einfach so machen:


            Dictionary<string, int> d = new Dictionary<string, int>();

            d["a"] = 0;
            d["b"] = 1;
            d["c"] = 2;
            d["d"] = 3;
            d["c"] = 5;

liefert keinen Fehler bei doppeltzem Schlüssel.

mfg Markus

27.07.2008 - 23:11 Uhr

Über die Klasse Microsoft.Win32.Registry kannst du sehr einfach in der Registrierung Daten bearbeiten.

mfg Markus

23.07.2008 - 21:38 Uhr

Ich habe aber schon an vielen Stellen im Programmcode Vererbung verwendet, d. h. ich kann dort keine AOP mehr nutzen??? Oder hab ich da jetzt was falsch verstanden?

PostSharp funktioniert doch anders. Du lässt nicht jede Klasse von OnMethodBoundaryAspect erben sondern nur eine Klasse welche du dann mithilfe von Attributen den anderen zugänglich machst.
Schau dir einfach das Video auf der Website an.

mfg Markus

22.07.2008 - 14:09 Uhr

und wenn ich das richtig verstehe... (also noch mal nachgefragt) ... auch wenn ich eine sagen wir mal welle als button gestalte ... wenn ich (in deinem falle) gelb als transparent mache wird, wenn ich darauf klicke, dass on klick ereigniss nicht geworfen?

Ja 😉

mfg Markus

22.07.2008 - 13:33 Uhr

Hallo,

WindowState = FormWindowState.Normal;

ist an und für sich schon richtig, wie minimierst du denn? Im Code? (wenn ja wie) Oder durch den Benutzer, welcher auf den Minimer Knopf klickt?

mfg Markus

22.07.2008 - 13:31 Uhr

Unsauber ist eine Sache, aber wenn du ein komplexes Polygon mit eventuell auch einigen Kreisbögen hast wünsch ich dir viel Spaß mit den Regions 😜 Die Methode ist immer gleich lang...

22.07.2008 - 12:50 Uhr

Hallo,

wenn du dich nicht mit Regions abkämpfen willst sondern ein paar pinsel striche im paint machst gehts auch 😉

mal dir deinen Button im Paint (z.B. so wie ich im Anhang)

erstelle dir eine usercontrol, darauf kommt eine PictureBox (Dock := Fill) im Konstruktor ladest du dein Bild (was in Paint gemacht wurde) in deine PictureBox über ein Bitmap Objekt bei welchem du die Transparenz auf deine Farbe legst (bei mir gelb)


Bitmap b = new Bitmap(@"C:\meinbutton.bmp");
b.MakeTransparent(Color.Yellow);
this.PictureBox1.Image = b;

natürlich kannst du das Bild auch aus den Ressourcen holen.

Den Vorteil welchen du hast ist, dass du die Mauskoordinaten nicht abfangen und auch keine Regions. Der Bereich um den Kreis istr somit nicht Teil des Buttons.

mfg Markus

21.07.2008 - 23:41 Uhr

Hallo Berty,

nur als Ergänzung, warum machst rufst du 2 mal die Methode Controls.Find() auf? Bin mir nicht sicher ob sich das in der Performance negativ zu buche schlägt wenn du viele Controls auf deinem GUI hast. Besser ist:


            string strControlName = "TextBox2";
            Control[] ctrl = null;

            if (strControlName.Length == 0 || (ctrl = this.Controls.Find(strControlName, true)).Length == 0)
                return null;

            return ctrl[0];

mfg Markus

21.07.2008 - 14:55 Uhr

Also, ich hab da keine Probleme, mir Sachen auszudenken, die ich praktisch fände

ich habe jeden tag mindestens eine wenn nicht sogar mehrere ideen was ich so programmieren könnte

Ideen hab ich genug nur keine Zeit oder es scheitert an der ausführung.

Wieso postet dann keiner seine Ideen?!? Wenn sie nicht in einem kommerziellen Zusammenhang stehen ist es doch besser ein anderer progt sie und stellt sie hier online als keiner 😜

mfg Markus

21.07.2008 - 14:51 Uhr

Was geht nicht? Was hast du für ein Projekt? Konsole oder WinForm?