Laden...

Forenbeiträge von Zicore Ingesamt 403 Beiträge

22.12.2010 - 14:38 Uhr

Hallo Jumpy,

du verwendest dort alte C Funktionen in C#.

In .Net wird das anders gemacht.

Siehe hier [Tutorial] Das neue Konfigurationsmodell im .NET Framework 2.0

Zudem weise ich dich mal auf [Hinweis] Wie poste ich richtig? 1.1 und 1.1.1 hin.

André

22.12.2010 - 14:28 Uhr

Hallo Fridoo,

und wofür braucht die Client Seite noch Port 80 ?

Vielleicht erzählst du mal ein wenig ganauer was du vor hast.
Denn eigentlich wurde schon alles gesagt. Mehrere Listener auf einem Port funktionieren schlichtweg nicht.

André

14.12.2010 - 16:48 Uhr

Hallo wpf23,

unter anderem im canvas control kann man zeichnen, aber ich denke das es nicht der gängige weg ist 😃

Besser wäre wohl das Style Template von z.B. einer ListBox zu ändern / ersetzen.

André

10.12.2010 - 12:27 Uhr

Hallo stes,

ich habe mir das Programm mal angeschaut und muss sagen der erste Eindruck war ganz gut.

Jedoch beim näheren hinsehen hatte ich ein paar Schwierigkeiten.

  1. Linien lassen sich nicht mehr bewegen
  2. Das drehen kommt mit irgendwie zu Starr vor.
    Vielleicht eine freie Drehung einbauen 😃

Das mit OnPaint wurde bereits angemerkt.

Desweiteren hab ich ich gesehen das du beispielsweise bei Methoden Namen zwischen den Konventionen springst.

Und du benutzt die Instanz der Form in den Unterklassen.
Diese Klassen sollte und dürfen die GUI nicht kennen.

Benutze lieber Events dafür.

Du kannst dir mal mein Projekt anschauen.

Bluestone - Logical Gate Simulator

Ich gebe zu es fehlt noch ein wenig Refactoring, aber Grundsätzlich ist das Prinzip das selbe wie bei dir.

Gruß André

09.12.2010 - 16:28 Uhr

Hallo Aratar,

Dazu gibt es eine Property IsHitTestVisible
stell es mal auf false beim label oder google mal danach.

André

09.12.2010 - 10:11 Uhr

Hallo C#SHARP,

WCF läuft über HTTP und das gibts nunmal nur mit TCP.

Warum möchtest du denn UDP für WCF benutzen ?

André

08.12.2010 - 14:16 Uhr

Hallo Talla,

das Beispiel ist aus der MSDN, ich hab lediglich die Border transparent gemacht.
Das man den Border einfach weglassen kann sollte man von alleine verstehen.

André

08.12.2010 - 14:12 Uhr

Hallo ill_son,

oder ersetze das Template und bei TextBlock aktivierst du dann das Wrapping

08.12.2010 - 11:26 Uhr

Hallo Shinzo,

Stichwort ApplicationContext

ApplicationContext Class

André

08.12.2010 - 11:05 Uhr

Hallo brev,

wie Talla bereits gesagt hat musst du das Template ersetzen:

        <Button Width="100" Height="26">
            Texg
            <Button.Template>
                <ControlTemplate TargetType="Button">
                    <Border 
              x:Name="Border"  
              CornerRadius="2" 
              BorderThickness="1"
              Background="Transparent"
              BorderBrush="Transparent">
                        <ContentPresenter 
                Margin="2"
                HorizontalAlignment="Center"
                VerticalAlignment="Center"
                RecognizesAccessKey="True"/>
                    </Border>
                </ControlTemplate>
            </Button.Template>
        </Button>

Gruß André

02.12.2010 - 16:35 Uhr

Und die Textdatei wird im **Programmverzeichniss **abgelegt.

Genau das sollte man vermeiden, dafür gibts spezielle ordner wo man reinschreiben soll.

25.11.2010 - 13:48 Uhr

Hallo gloomy87,

Überprüf ob überhaupt verschoben wurde und lösch erst wenn das Verschieben Erfolg hatte.

André

25.11.2010 - 11:22 Uhr

Hallo gloomy87,

  1. Dann merk dir den markierten- und dessen Parent Node, den du verschieben möchtest und führe am ende parent.Nodes.Remove(child).

  2. Ich würde dann an deiner Stelle ein Objekt verwenden welche du an den Tag der Nodes hängen kannst. Mit einer überprüfung auf den Typ des Tags kannst du abfragen.
    Beispiel: Du hast in der ersten Ebene Category Elemente und in der zweiten Ebene CategoryEntry Elemente. Dann kannst du mit node.Tag is CategoryEntry überprüfen ob es ein Entry oder eine Category ist.

  3. Das erledigt sich damit das du Objekte für Nodes erstellst. Nach der Struktur der Objekte kannst du dann das TreeView generieren (Mit oder ohne Sortierung).

Alles in allem hättest du dadurch auch eine Kapselung der GUI von den Daten.

André

Hier noch eine Beispiel Klasse:

    public class TreeEntry
    {
        public TreeEntry(String name, String description)
        {
            this.Name = name;
            this.Description = description;
        }

        String name = "";

        public String Name
        {
            get { return name; }
            set { name = value; }
        }

        String description = "";

        public String Description
        {
            get { return description; }
            set { description = value; }
        }

        List<TreeEntry> nodes = new List<TreeEntry>();

        public List<TreeEntry> Nodes
        {
            get { return nodes; }
            set { nodes = value; }
        }
    }
12.11.2010 - 14:04 Uhr

Hallo Arvi,

ich grunde steht alles was du Wissen musst in diesem Thread.

Verwende zum Halten der Messwerte kein Array sondern eine List<T>. Die erlaubt einfacheres Hinzufügen und kann genauso indiziert zugegriffen werden.

Bitte beachte deshalb auch [Hinweis] Wie poste ich richtig? Punkt 1.1 und 1.1.1

André

11.11.2010 - 16:32 Uhr

Hallo T_B__,

Für Videos ist WinForms mit GDI+ gänzlich ungeeignet meiner Meinung nach.
Und Das Rendern auf die GUI kann nur der GUI Thread übernehmen. (1 Thread).

Für Wiedergabe gibt es eine Mediaplayer komponente wenn ich mich nicht irre oder benutz XNA / SlimDX für Video Wiedergaben.

Edit: Du kannst natürlich alles puffern, das geht auch mit mehreren Threads. Das Ergebnis z.B. eine Bitmap könntest du aber trotzdem schnellstens alle 15 ms zeichnen soweit ich weiss.

André

11.11.2010 - 13:52 Uhr

Hallo,

es gibt wieder ein paar Änderungen:

Inputs/Outputs werden je nach datentyp farbig differenziert (wird noch Einstellbar)

Zurzeit: float hell-rot, double rot, int blau, bool(false) grau, bool(true) orange
null ist zurzeit noch Weiß und Strings noch undefiniert (hab's vergessen)

Neue komponenten:

Clock eine "Analoge Uhr" mit Zeigern.
Either leitet wenn Input 1 True ist den Input 2 weiter und wenn False ist Input 3 weiter.
Equals prüft ob 2 Werte gleich sind.
Greater prüft ob eine Zahl größer als die andere ist
Less prüft ob eine Zahl kleiner als die andere ist

Eine Label Komponente für das Beschreiben gewisser Teile in der Schaltung.

Dann gibt es noch zwei neue "Kabelbinder" Komponenten. Diese leiten das "Signal" einfach weiter.

Neu ist ausserdem noch der Input/Output Editor. Dort kann jeder Input einzeln editiert ohne eine Komponente anschliessen zu müssen.

Die ganzen Werte (Input, Output, Objekt Tag) werden ab sofort auch in die XML gespeichert.

Im Anhang noch die aktuelle GUI mit einem komplexerem Beispiel.

08.11.2010 - 16:36 Uhr

Hallo Second Sun,

dafür ist denke ich Pinvoke.net die beste anlaufstelle z.B.:
http://www.pinvoke.net/default.aspx/user32/GetFocus.html

André

08.11.2010 - 15:42 Uhr

Wenn Englisch ok ist kann ich dieses Empfehlen: http://www.amazon.de/Microsoft-XNA-Game-Studio-Unleashed/dp/0672330229/ref=sr_1_1?ie=UTF8&qid=1289227148&sr=8-1

Und in Deutsch dieses: http://www.amazon.de/Spieleentwicklung-mit-Microsoft-Framework-professioneller/dp/3939084549/ref=sr_1_3?ie=UTF8&s=books&qid=1289227251&sr=8-3

Das deutsche ist recht gut erklärt auch immer mit Beispielen.
Leider geht es nicht immer weit genug in die Tiefe an sondern kratzt gewisse Bereiche nur an. Für 2D Spiele sollte es aber reichen 😃.3D kommt auch nicht zu kurz und es fokusiert sich Stark auf Shader (HLSL).

03.11.2010 - 16:45 Uhr

Hallo Bodie,

dann ist in der letzten zeile vielleicht nur ein leerzeichen.

Fakt ist das sind basics: [Hinweis] Wie poste ich richtig?
1.1 und 1.1.1

André

03.11.2010 - 16:35 Uhr

Hallo astra,

Hört sich so an als ob du soetwas wie StreamWriter.Close(); vergessen hast !?

Wie passt du denn die Batch an ?

Ansonsten versuch mal die Frage etwas verständlicher zu formulieren ggf. auch den Titel ändern.

André

03.11.2010 - 13:20 Uhr

Hallo mathias_f,

die frage ist warum möchtest du die klasse dazwischen noch abstrakt machen ?

Ich würde da virtuelle Methoden verwenden und ggf. überschreiben.

Wenn du möchtest das gewisse methoden implementiert werden müssen, nimmst du halt bei den Erbenden noch dein(e) Interface(s) hinzu.

André

02.11.2010 - 08:25 Uhr

Ja das tool ist noch sehr testmäßig aufgebaut.

Besonders die GUI ist noch nicht auf End-Anwender ausgelegt

Mit dem Wiring tool auf Buttons klicken schalten strom an und ab

Hi t-master,

dazu gibt es ein Any Gate

Zu dem problem kann ich erst heute abend was sagen

Edit:

erstmal zur redstone.exe, das war eine alte version, habe sie vergessen aus der zip zu löschen.

Ausserdem gibt es jetzt eine neue testversion mit funktionierendem zoom, verschiebbarem feld und leicht verbesserter gui
In der neusten zip ist ausserdem ein kleines beispiel, welches auch funktioniert 🙂

  • Mit Components lassen Objekte aus dem TreeView platzieren.
  • Wiring/Activation lassen sich objekte verbinden (input <-> output) das runde muss ins eckicke 🙂. Ausserdem aktiviert/deaktiviert es buttons.
  • Mit Selection lassen sich ein- oder mehrere objekte markieren und löschen.
    verschieben lässt sich zurzeit nur eins gleichzeitig oder das ganze feld per Maustaste 3.
    Ausserdem kann, wenn ein objekt markiert ist und Selection ausgewählt ist per context menü das Input objekt gefüllt werden.

Die rechte Trackbar ist die Update Rate in millisekunden.
Zoomen geht über das Scrollrad 🙂

Edit 2: ein einfacher sekunden Zähler auf dem Bild

29.10.2010 - 20:41 Uhr

Hallo Leute,

ich habe mir gedacht mein neues projekt mal hier vorzustellen.

Im prinzip ist es gedacht um Logische Schaltungen zu erstellen und zu simulieren.

Einiges funktioniert bereits und anderes ist eher noch testmäßig enthalten.

Das Projekt ist opensource und über google code zu ereichen.

Hier die page mit Source und aktuellen Testversionen: http://code.google.com/p/zicore/downloads/list

hier noch ein bild dazu 🙂

Würde mich über tester und natürlich auch über helfer freuen 🙂

André

29.10.2010 - 10:03 Uhr

Du sagst du blendest den Designer aus ?

Im normalfall ist er jedoch noch an im Hintergrund.

Was ich da immer mache ist bei XAML Dateien Öffnen mit -> Quellcode Editor (Text)
das dann auf Standard stellen und alle Designer Fehler sind erstmal geschichte 😃

André

28.10.2010 - 18:38 Uhr
        
public void Draw(Graphics g)
        {
            if (!DesignMode)
            {
                g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                Matrix mat = new Matrix();
                mat.Scale(CurrentProject.Zoom, CurrentProject.Zoom, MatrixOrder.Append);
                mat.Translate(CurrentProject.Translation.X, CurrentProject.Translation.Y);
                g.Transform = mat;

                renderModel.Draw(g);
                DrawSelectionRect(g);
                DrawWireConnection(g);
            }
        }

Wie bekomme ich es hin ohne eine PictureBox zu benutzen die Translation so zu verschieben das immer zum Mittelpunkt gezoomt wird ?

Ich habe schon einige threads aus dem forum gelesen wie es mit einer PictureBox funktioniert. Allerdings habe ich es nicht geschafft das zu adaptieren 🙂

28.10.2010 - 13:55 Uhr

Hallo Maximilian,

das sind Gute Nachrichten, ich werde im laufe der Woche die Version einmal ausführlich testen und dir melden was verbessert werden kann 😃

André

24.10.2010 - 16:06 Uhr

Danke für alle Antworte =)

habe das design überdacht und es ist daraus hinausgelaufen das ich in die Vererbungshierarchie ein zusätzliches
element hinzugefügt habe welches erstmal ohne generics klar kommt.

So brauche ich an dieser stelle auch keine generics.

23.10.2010 - 13:04 Uhr

Gibt es eine möglichkeit diesen code zu vereinfachen ?
Oder darf ich weiterhin pro typ den ich benutzen muss ein If machen ? 😃


if(myInstance is MyClass<Boolean>)
{
    if (myTool.Do<Boolean>(arg1, arg2))
    {
        // ok
    }
}
else if (myInstance is MyClass<Int32>)
{
    if (myTool.Do<Int32>(arg1, arg2))
    {
        // ok
    }
}

14.10.2010 - 16:44 Uhr

Hallo,

ich habe eine ListBox in der weitere ListBoxen sein können.
Wie bekomme ich es hin das beide, die obere und die untere, ListBox jeweils selektiert werden.

Mit IsHitTestVisible="True" auf dem Oberen Element kann ich lediglich sagen er soll dort kein event auslösen und gibt es dann weiter. Er soll aber das Event bei beiden auslösen.

Hat da einer eine idee ?

Gruß André

04.10.2010 - 15:20 Uhr

Hallo Micha84,

wenn du die IPv4 hast, ist immernoch nicht sichergestellt das es die richtige ist.
Viele haben 5 oder mehr netzwerkgeräte, genau die IP zu finden mit der man z.B. ins Internet geht, ist da garnicht mal so einfach.

André

29.09.2010 - 16:20 Uhr

Hallo xxMUROxx,

noch ne Anmerkungen für etwaige zukünftige Probleme mit cast oder as Parameter...

das ist mir durchaus klar ich habe lediglich zitiert.

Hallo aadler,

Wenn man die Buttons ohnehin schon programmatisch erstellt, kann in das Tag-Property direkt ein Point-Objekt gespeichert werden

das habe ich mit meinem obigen Post gemeint 😃
Wollte es nicht zu deutlich machen weil es eigentlich alles zu den Basics gehört.

André

29.09.2010 - 13:43 Uhr
Button button = sender as Button;  
int row = (int)(button.Tag) / 3;  
int col = (int)(button.Tag) % 3;  

besser sowas

new Point(row,col);

😉

28.09.2010 - 10:01 Uhr

Hallo Leute,

danke für die hilfreichen Antworten.
Habe alle Dialoge in UserControls umgeschrieben und vorläufig ein TabControl benutzt.
Das funktioniert wunderbar und alle kommen damit prima zurecht 😃

André

24.09.2010 - 11:27 Uhr

Cool danke für die Vorschläge, werde mich erstmal mit Net Beans versuchen 😉

24.09.2010 - 10:53 Uhr

Hallo Leute,

ich suche sozusagen ein Bestpractice um die MainForm zu entschlacken 😃
Bisher habe ich alle GUI Elemente in verschiedene Formulare(Dialoge) ausgelagert.
Das funktioniert auch ganz gut, allerdings finde ich ist das nicht mehr Zeitgemäß.

Die GUI soll erweiterbar werden z.B. durch TabPages die dynamisch geladen werden.

Ich frage mich daher wie man es am elegantesten löst GUI Teile auszulagern und dynamisch einzuladen.

und soll ich die vorhanden Dialoge in custom controls umschreiben oder kann ich diese so weiter benutzen (als Panel oder sowas) ?

André

23.09.2010 - 10:13 Uhr

Hallo,

erstmal vorweg das Programm sollte kostenlos sein.

Und die FTP Synchronisation ist mir wichtig. (Speichern => (automatisches-)hochladen => fertig)

Sonst sollte es PHP, XHTML u. andere Websprachen als Syntaxhighlight unterstützen.
Eine Art Intellisense wäre auch nicht schlecht.

Kennt jemand von euch ein solches Programm, was er empfehlen möchte ?

André

15.09.2010 - 14:55 Uhr

Hallo Froggie,

in einigen Fällen mache ich es genauso.
Aber manchmal benutze ich einfache Komposition in meinem Objekt.
(z.B. wenn ich an der Liste nichts mehr erweitern möchte)

André

15.09.2010 - 13:42 Uhr

Hallo freaki,

Bei einem DataGridView ich nichtmal das Tag Propertie benutzen sondern direkt eine DataSource.

Das Thema wurde hier aber schon ziehmlich oft besprochen.

André

15.09.2010 - 13:31 Uhr

Hallo P.K.,

meiner Meinung nach suchst etwas was einem Assistent gleichkommt.

[FAQ] Mit Forms eine Art Frameset einer Website nachbauen? (Navigation, Wizard, Assistent)

wenn nicht bitte stelle die Frage konkreter 😉

André

11.09.2010 - 12:56 Uhr

Hallo Maximilian,

wollte nochmal Danke sagen!

Eine Sache habe ich noch, die Statistik ist wohl ein wenig buggy.
Ich habe dort keinen Graphen, es liegt denke ich an der anzahl, bei einer anzahl von 4 gehts zurzeit. Ausserdem sind links ein paar zahlen in einander 😃

André

09.09.2010 - 16:06 Uhr

Hallo cdo,

starte Spy++ von den VS tools und gehe mit dem cursor auf die textbox.
Wenn dort eine caption enthalten ist funktioniert es mittels pinvoke.

Ich denke du brauchst dafür dann EnumWindows (für die Fenster) und EnumChildWindows (für die Controls).

André

03.09.2010 - 16:38 Uhr

Hallo tkrasinger,

WinForms - in einer WPF-Anwendung, passt halt irgendwie gar nicht - auch wenns nix ausmacht.

Ich kann verstehen was du meinst, manchmal ist es jedoch erforderlich WinForms einzubinden. z.B. Save/OpenFileDialog, MessageBoxen and more (ausser man möchte alles nochmal selber implementieren)

André

03.09.2010 - 15:49 Uhr

IPAddress.HostToNetworkOrder(...)

Was ist mit Gleitkommazahlen ? (würde mich persönlich interessieren) 😉

03.09.2010 - 13:35 Uhr

Hallo Giuseppe Campagna,

schau dir mal die Marshal Klasse an z.B. diese Methode Marshal.StructureToPtr-Methode

André

03.09.2010 - 13:26 Uhr

Hallo tkrasinger,

was spricht dagegen die Winforms dll einzubinden ?
hier nochn Link: Maximizing a WPF Window to second monitor

André

03.09.2010 - 11:41 Uhr

Hallo Triffi81,

daten[0] = byte.Parse(nachrichtenlaenge1);

und schau dir mal den unterschied zwischen parsen und konvertieren an 😃

Wenn die Reihenfolge falsch ankommt muss ich das vorher umdrehen oder wie

Ja typweise, wenns ein Int32 in einem ByteArray ist muss die reihenfolge des Int byteweise getauscht werden, wobei du halt vorher wissen musst was du benötigst 😃
Mit dem BitConverter.IsLittleEndian kannst du prüfen ob dein PC Little oder Big Endian verwendet. (soweit ich das verstanden habe). Java verwendet z.B. immer Big Endian.

André

03.09.2010 - 08:36 Uhr

Hallo Triffi81,

erst einmal Wilkommen bei myCSharp.de!

die Nachrichtenlänge (short) muss erst zu einem byte array konvertiert werden.
Wobei du darauf achten solltest ob Little oder Big Endian verwendet werden soll.
C# verwendet Little Endian. Was das ist kannst du bei z.B. Wikipedia nachlesen.

Das Konvertieren geht mit dem BitConverter.

Hexa-Dezimale Zahlen kannst du so schreiben wie Integer z.B. 0x10
mit einem 0x prefix. jedoch musst du darauf achten, es in ein byte(oder short) zu casten wenn du es brauchst, da sonst 4 byte statt einem benutzt werden.

André

02.09.2010 - 13:06 Uhr

Hallo Seikilos,

ich meine nicht als referenz Hinzufügen sondern im Projekt -> Rechtsklick -> Hinzufügen
-> Vorhandenes Element -> DLL auswählen.

André

02.09.2010 - 11:51 Uhr

Hallo Seikilos,

kannst du die dll nicht in das Projekt hinzufügen und einstellen "kopieren wenn neuer" ?

André

02.09.2010 - 10:13 Uhr

Hallo mike2670,

wenn es sich bei dem Bild um ein Link handelt kannst du das Image Control verwenden und dessen source ist dann der link.

Wobei das zu den Grundlagen gehört deshalb vorsorglich:
[Hinweis] Wie poste ich richtig? Punkt 1.1.1

André