Michas Anfängerfragen...



  • Hallo de_Bert,

    Danke für Deine Hilfe!
    Und vor allem für diese schöne Musterklasse "Rechteck"!

    Aber sag bitte mal, wie hast Du das schöne Listing da so hineinbekommen?

    Gruß,

    Micha



  • Wenn du den Nachtrichtentext ein gibst dann gibt es darunter so einen "C#" Button... und dann kommt das:P



  • Hallo Ihr,

    Wärt Ihr mal so nett und lasst den u.a. Code bei Euch laufen?
    Der Button läuft so ein paar Sekunden in dem Formular bis das Progrämmchen dann einfriert, sprich, Keine Rückmeldung mehr.
    Warum das denn?
    Derart Spielerchen habe ich schon auf jeden Computer gemacht und immer hat es funktioniert. Was ist denn hier mit C# falsch an dem Code?

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Threading;
    
    namespace Viele_Tests
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            int x=10;
            int y=10;
            int dx=1;
            int dy=1;
            Point pt = new Point();
            private void btn_ok_MouseHover(object sender, EventArgs e)
            {
                while (true)
                {
                    if ((x > -1) & (x < ClientSize.Width - btn_ok.Size.Width))
                    {
                        x = x + dx;
                    }
                    else
                    {
                        dx = -dx;
                        x = x + dx;
                    }
    
                    if ((y > -1) & (y < ClientSize.Height - btn_ok.Size.Height))
                    {
                        y = y + dy;
                    }
                    else
                    {
                        dy = -dy;
                        y = y + dy;
                    }
                    pt.X = x;
                    pt.Y = y;
                    btn_ok.Location = pt;
                    //Thread.Sleep(1);
                }   // End While
            }
    
        }
    }
    

    Vielen Dank im Voraus!

    Gruß,

    Michael



  • Vielleicht wegen der Endlosschleife mit while(true)?



  • Schau mal nach ob du es mit Timer geregelt bekommst. Mir ist noch net so ganz ersichtlich was du vor hast^^



  • Hallo Talla,

    Talla schrieb:

    Vielleicht wegen der Endlosschleife mit while(true)?

    Die Endlosschleife ist erwünscht!

    @ all:

    Ich möchte aus Trainingsgründen einen Button über das Formular gleiten lassen, der an der Grenzen des Formulars abprallt und weiter gleitet.

    Das ganze geht auch einige Sekunden, aber dann wird das ganze Formular weiss und dann kommt "Keine Rückmeldung".

    Was passiert da?

    Gruß,

    Micha



  • Also da gibt es einen sogenahnten GUI-Thread. Der ist dafür zuständig das wenn du auf einen Button klickt das dann die Befehler ausgeführt werden. Dieser Thread ist auch dafür zuständig das das Fenster und alle Controls neu gezeichnet werden. Wenn du nun diesen Thread in einer Entlosschleife laufen lässt macht er nur noch das was in der Entschlosschleife steht. Als wird das Fenster irgendwann weiß, weil er ja nur noch sich in deiner Entlosschleife befinden. Die Lösung dafür sind Timer. Du startes den Timer und veränderst mit jedem Event ein bissel die Position von dem Button. Und wola haste eine schöne Animation die den GUI-Thread nicht komplett dicht macht.

    PS: Und du kannst mir nicht erzählen das das auf anderen Rechnern ein anderes Verhalten an den Tag legt. Das der Sourcecode ein weißes Fenster erzeugt ist auf allen Platformen zu 100% gegeben!!!



  • @Micha369:

    Mir scheint es, dass du das prinzip der OOP überhaupt nicht verstanden hast.

    Als kleiner Tip:

    - Les erst mal in Büchern/Ebooks/im Inet, was OOP ist.
    - Les nen Anfängerbuch zu C# durch
    - Programmiere erst mal im Konsolenbereich

    Es ist nicht böse gemeint, doch wirst du dich so nurverrennen und irgendwann die Lust verlieren.

    @Topic:

    Die Endlosschleife ist erwünscht!

    wie de_Bert schon sagte ist eine Endlosschleife in der GUI absoluter Blödsinn.

    Um auf das new nochmal zurueckzukommen. Grob gesagt erzeugt das new ein Objekt einer Klasse. Sprich du legst einen Button ein, dann erzeugst du immer mit new einen Button. Ok es ist weng merkwürdig erklärt, aber wenn du dir das nochmal in nem Buch durchliest wirst du es verstehen.

    Mal nen kleines Beispiel zu new:

    class probe
    {
       public int i;
    }
    
    class main_klasse
    {
       // Hier möchtest du nun ein Objekt der Klasse probe anlegen
       probe objekt_probe = new probe();
    }
    


  • Lyrix schrieb:

    - Les nen Anfängerbuch zu C# durch

    Kannst da nen gutes empfehlen?? ich bin auch noch auf der suche!!



  • Auf der Microsoft Seite gibt es z.B. Video Tutorials die ganz brauchbar sind. Würde ich aber auch erst empfehlen wenn man schon ein bissel in der Materie drin ist. Ansonsten weiß Mister google immer was 😛



  • de_Bert schrieb:

    Ansonsten weiß Mister google immer was 😛

    Da weiß man aber nie, ob es gut ist!! Ich dachte es könnte jemand seine erfahrung hier einbringen!!sonst kauf ich mir nen übelst teures Buch und kann damit nichts anfangen weil ich nix check!! oder zumindest so ähnlich!!

    //edit: Aber nichts für ungut, ich möchte nicht diesen Thread verfremden!!



  • freggel schrieb:

    Lyrix schrieb:

    - Les nen Anfängerbuch zu C# durch

    Kannst da nen gutes empfehlen?? ich bin auch noch auf der suche!!

    Ich weiss nicht wie das "Jetzt lerne ich C#" - Buch ist. Aber wenn man wirklich kaum Erfahrung im programmierern hat ist das sicherlich gut.

    ich hab das "C# kompendium" von markt und Technik gelesen. und muss sagen dass das Buch echt gut ist. Man muss zwar bei dem ein oder anderen Kapitel um weitere Informationen suchen, da es manches ziemlich mager erklärt, aber das bringt auch wiederum Positives mit sich.

    Was ich noch empfehlen kann ist das tutorial von www.mycsharp.de !



  • Ic bin grad dieses eBook am durchlesen. Ist ziemlich umfangreich und von einem C#-Entwickler geschrieben.



  • Sagt mal Leute verstehe ich hier was net oder was??? 😕
    Wo liegt das Problem in Google nach einem Tutorial zu suchen und sich das mal anzulesen.

    Wenn ihr es checkt, arbeitet ihr das durch...
    Wenn net dann sucht ihr euch ein neues bis ihr fündig werdet.

    Also ein bissel selbstständigkeit wird man wohl noch verlangen können. Also ob ihr Angst hättet eure wertvolle Zeit mit irgendwelchen Tutorials zu verschwenden. man man man

    PS: Ist kein Angriff aber das muss man wirklich bei fast jedem Thread in diesem Forum sagen.



  • Hallo de_Bert,

    Danke erst mal für Deinen Tip!

    de_Bert schrieb:

    PS: Und du kannst mir nicht erzählen das das auf anderen Rechnern ein anderes Verhalten an den Tag legt. Das der Sourcecode ein weißes Fenster erzeugt ist auf allen Platformen zu 100% gegeben!!!

    Nein, nein, da haben wir uns falsch verstanden! Ich habe solche Spielereien noch nie unter Windowsprogrammierung gemacht!
    Da war alles noch MS-DOS! Oder sogar noch früher in Assembler auf dem C64 oder 80386SX (vor 16 Jahren oder so).

    Gruß,

    Micha



  • Versuch es mal mit.

    delegate void MoveButtonDelegate(Point location);
    private void MoveButton(Point pt)
    {
        if (button.InvokeRequired)
            button.Invoke(new MoveButtonDelegate(MoveButton), new object[] { pt });
        else
            button.Location = pt;
    }
    
    private void CalcButtonPosition()
    {
        while (true)
        {
            // Berechnung
            MoveButton(pt);
        }
    }
    
    private void button_Click(object sender, EventArgs e)
    {
        Thread thread = new Thread(new ThreadStart(CalcButtonPosition));
        thread.Start();
    }
    

    Der Code erhebt keinen Anspruch auf Vollständigkeit. Um Fehlerbehandlung und ein ordnetliches Beenden der App. musst Du Dich selbst noch kümmern.



  • Hallo Lyrix,

    Lyrix schrieb:

    Was ich noch empfehlen kann ist das tutorial von www.mycsharp.de !

    Diesen Kurs gehe ich jetzt gerade mal durch und finde:

    ...
    if(Name == "Bill Gates" && Passwort == "Microsoft")

    das geht bei mir nicht! Da schmeisst MS Visual C# 2005 Express Edition einen Fehler! "&&" kennt es nicht! und außerdem will es noch eine äußere Klammer haben!
    So ging es dann endlich:

    if((Name == "Bill Gates") & (Passwort == "Microsoft"))

    Ist Visual C# nicht gleich C# ?

    Gruß,

    Micha



  • Juhu

    Micha369 schrieb:

    Nein, nein, da haben wir uns falsch verstanden! Ich habe solche Spielereien noch nie unter Windowsprogrammierung gemacht!
    Da war alles noch MS-DOS! Oder sogar noch früher in Assembler auf dem C64 oder 80386SX (vor 16 Jahren oder so).

    stimmt zu der Zeit war das noch so:P aber die Dinge ändern sich ja bekanntermaßen schnell 😃

    sag mal was haste den in 16 jahren gemacht? Winterschlaf 😃 ???



  • [quote="de_Bert"]Juhu

    Micha369 schrieb:

    sag mal was haste den in 16 jahren gemacht? Winterschlaf 😃 ???

    *lol

    alles außer Programmieren (fast, jedenfalls)!

    Gesellschaftstanzen, Flugzeugmodellbau, Hausbau, Gardening, Computerspiele, Internetkrams, Hundesport, Aquaristik, Reisen, Lernen u.v.a.m., z.B. auch Arbeiten.

    Gruß,

    Micha



  • Micha369 schrieb:

    Gardening

    Jey eine neue Trendsportart 😃 Wenn ich einen hätte würde ich da wohl auch nur rumhängen und dem Gras beim Wachsen zusehen ^^

    Micha369 schrieb:

    Aquaristik

    What the fuck is this? Was ist den das? Habe ich noch nie gehört. Hat das was mit schwimmen in hauseigenen Aquarium zutun 😃 ????

    Okay okay ich hör ja schon auf den Thread Zweck zu entfremden 😃


Anmelden zum Antworten