Laden...

Forenbeiträge von Vitab Ingesamt 78 Beiträge

06.05.2009 - 16:33 Uhr

Hallo,

if überprüft automatisch 1:1. Wenn die Groß- und Kleinschreibung egal ist, kannst du den String einfach mit string1.ToLower() umwandeln und dann abfragen:


string s;

//Nimmt auch "HALLO"
if (s.ToLower() == "hallo")
{
    //Do  sth
}

Ob z.B. 3 'e' enthalten sind kannst du mit string1.Contains(string2) abfragen:


if (s.Contains("eee"))
{
    //Do sth
}

Und wenn du etwas komplexeres brauchst solltest du dir mal RegEx anschauen: [Artikel] Regex-Tutorial

24.04.2009 - 18:00 Uhr

Um genau zu sein:

Code auswählen -> Rechtsklick -> Umgestalten -> Methode extrahieren...

In Visual Studio 2008.

11.04.2009 - 14:46 Uhr

Soweit ich mich erinnere sind das Sounds von dem Mod für Warcraft (Also nicht von Blizzard). Den Ersteller der Map wollte ich sowieso anschreiben.
Wenn nicht, dann müssen wir die wohl auch noch irgendwo herbekommen. Aber das ist erstmal nicht so wichtig, es reichen ja auch irgendwelche Platzhalter-Sounds für den Anfang.

11.04.2009 - 09:21 Uhr

@Franzose:
Bisher noch nicht. Wir werden das ganze erstmal mit einfachen Bildern machen, die wir selber machen können. Allerdings kann man ja zumindest die Sounds aus dem Originalspiel kopieren und ein bisschen abändern 😉 . Aber das ganze hat ja noch Zeit.

Wir suchen übrigens immer noch Leute sind bisher nur zu zweit. Wir haben inzwischen bei Google einen SVN-Server und ein Forum um uns abzusprechen. Außerdem haben wir ein kleines Pflichtenheft und Gedanken zur Umsetzung.

08.04.2009 - 08:38 Uhr

Windows Movie Maker gibt es auch noch. Virtual Dub kann zwar schnell und einfach Videos schneiden, ich erinnere mich aber nichtmehr an eine Funktion um Musik einzufügen.

Windows Movie Maker ist soweit ich weiß bei Windows dabei.

06.04.2009 - 18:20 Uhr

Ich glaub ich verstehe deine Frage nicht ganz. Du kannst ganz einfach im Konstruktor, dem Form_Load Ereignis oder sonst wo in deinem UserControl, folgenden Code einfügen um einen Button hinzuzufügen:


public UserControl1()
{
    InitializeComponent();

    Button button1 = new Button();
    this.Controls.Add(button1);
}

Dann hast du einen Button auf deinem UserControl.

06.04.2009 - 18:02 Uhr

Du musst nur in deinem Benutzersteuerelement this.Controls.Add aufrufen. Funktioniert genauso, wie in deinem Hauptformular.

03.04.2009 - 16:55 Uhr

2D Spiel, Draufsicht-Perspektive

Umsetzung:
XNA 3.0,
Farseer Physics, (wenn niemand bessere Vorschläge hat)

Zitat(pdelvo zu Pursuit Drift):

"Dieses Projekt richtet sich an Einsteiger zum Thema Xna 3. Es soll helfen Praxiserfahrungen zu sammeln."

Besser kann ich es auch nicht sagen 😉. Das wären auch in etwa meine Vorstellungen zu diesem Projekt.

Meine Zeit ist allerdings auch begrenzt, weil ich im Moment am Gymnasium 10. Klasse bin. Deswegen ist das ganze mehr ein Hobby/Lern-Projekt.

Zum Spiel:
Warlock ist eine Karte für Warcraft III. Das Ziel bei Warlock ist es die gegnerischen Spieler mit verschiedenen Waffen zu "besiegen", indem man sie in eine Lava-Fläche stößt. Man verliert zwar auch durch die Waffen Lebenspunkte, aber am meisten verliert man in der Lava. Außerdem verkleinert sich das Spielfeld mit der Zeit.

Zu den Waffen:
Als Beispiele für Standard Waffen(Extras):

  • Feuerball: Stößt Gegner je nach Feuerball-Level zurück
  • Teleport: Teleportiert den Spieler 20m nach vorne
  • Anstürmen: Rennt schnell 15m nach vorne, wobei man von anderen Spielern abprallt, und diese auch selbst wegstößt
  • Schild: Reflektiert zu einer bestimmten Wahrscheinlichkeit Schüsse (Feuerbälle, Anstürmen(!), ...)

Nach jeder Runde, kann man sich neue Waffen kaufen oder die aktuellen verbessern ( Feuerball Level 1, Feuerball Level 2, ... )

Hier gibt es ein Video dazu (nicht von mir):
http://www.youtube.com/watch?v=68tKUl3NV6Y

Jeder der WC III hat kann es gerne testen 😉
http://www.epicwar.com/maps/56222/

Warum nochmal programmieren?
-Programmier-Erfahrungen sammeln (Teamarbeit)
-Es reagiert in WC III sehr langsam (sowas eignet sich einfach nicht als "Mod" für ein Strategiespiel)
-Es ist ein gutes Spiel 😉
-Spaß 😛

Verbesserungen:
-Komplexere Karten
-Mehr Waffen
-...weitere Ideen...

Zielsetzung:
-Website
-Mehrere Spieler an einem PC
-Team Funktion: Team Rot gegen Team Blau
-Evtl. Internet/LAN Support. (Ich habe damit allerdings kaum Erfahrungen)

Verwaltung:
-SVN Server
-evtl. Teamspeak 2 Server (alternativ Skype oder wenn jemand bessere Vorschläge...)

EMail/MSN:
RDK01@web.de

Skype:
trt333

Hier eine Liste mit den Leuten, die bisher mitmachen:
Speedy_92
Wasabi

EDIT:

Inzwischen haben wir auch schon ein Forum zur internen Absprache, und ein SVN Repository.

29.03.2009 - 09:20 Uhr

Ich benutze immer das:
Global Mouse and Keyboard Library

Damit kann man auch Tastendrücke und Mausklicks simulieren.

23.03.2009 - 18:22 Uhr

Spontan würde ich das so lösen:


string text = "Hallo Das Wie? d g a c b";
List<string> woerter = text.Split(' ').ToList<string>();
woerter.Sort();

Außerdem solltest du hier im Forum deinen Code mit Code Tags kennzeichnen.

EDIT:
Ok deine letzte Antwort habe ich zu spät gesehen. Ich glaube es wäre einfacher für den Anfang eine List<string> zu benutzen statt LINQ. Ansonsten habe ich selbst noch nicht soviel Erfahrung mit LINQ, deswegen solltest du noch ein paar Antworten abwarten.

21.03.2009 - 20:28 Uhr

Hallo,
Wenn HasMorePages = true ist wird der EventHandler immer wieder aufgerufen, bis HasMorePages = false ist. d.h. du musst irgendwie überprüfen welche Seite gerade dran ist.
So kannst du verschiedene Texte auf 2 Seiten schreiben:


bool ersteSeite = true;
private void button5_Click(object sender, EventArgs e)
{
    PrintDocument document = new PrintDocument();
    document.PrintPage += new PrintPageEventHandler(document_PrintPage);

    PrintPreviewDialog dialog = new PrintPreviewDialog();
    dialog.Document = document;
    dialog.ShowDialog(this);
}
void document_PrintPage(object sender, PrintPageEventArgs e)
{
    Graphics g = e.Graphics;
    e.HasMorePages = true;
    using (Font arial12 = new Font("Arial", 12))
    {
        if (ersteSeite)
        {
            g.DrawString("Seite 1", arial12, Brushes.Black, e.MarginBounds.X, e.MarginBounds.Y);
            ersteSeite = false;
        }
        else
        {
            g.DrawString("Seite 2", arial12, Brushes.Black, e.MarginBounds.X, e.MarginBounds.Y);
            e.HasMorePages = false;
        }
    }
}

P.S.
Wie druckst du das überhaupt?

21.03.2009 - 10:05 Uhr

Hier gibts von ErfinderDesRades ein Snippet dazu:
TabControl als Basis für Assistenten und sowas

Funktioniert allerdings mit einer ListBox. Aber das lässt sich ja umbauen 😉

Und von Herbivore in der FAQ (etwas komplizierter):
[FAQ] Mit Forms eine Art Frameset einer Website nachbauen?

20.03.2009 - 16:14 Uhr

Danke für die ganzen Antworten ich habe mich jetzt für "Entwurfsmuster von Kopf bis Fuß" entschieden, weil zu viele Bereiche aus dem anderen Buch mich (noch) nicht betreffen(Zeitabschätzungen für Teilaufgaben, Durchsatz eines Teams bestimmen), werde danach aber wohl auch das lesen 😉

20.03.2009 - 15:39 Uhr

Ok das hört sich ja schonmal ganz gut an 😃 . Aber kennt jemand das andere Buch und kann dazu etwas sagen?

20.03.2009 - 15:26 Uhr

Hallo,

Da mein C# Buch demnächst zu Ende geht suche ich gerade ein neues 😉 . Im Moment überlege ich mir ob ich "Entwurfsmuster von Kopf bis Fuß"(http://www.amazon.de/Entwurfsmuster-von-Kopf-bis-Fuß/dp/3897214210) oder "Softwareentwicklung von Kopf bis Fuß"(http://www.amazon.de/Softwareentwicklung-von-Kopf-bis-Fuß/dp/3897218623) kaufen soll. Leider scheint es kein Probekapitel von "Softwareentwicklung von Kopf bis Fuß" zu geben.

Das Buch "Entwurfsmuster von Kopf bis Fuß" wurde hier ja schon recht gelobt. Allerdings ist das andere Buch auch viel neuer. Mich würde vorallem interessieren, ob schon jemand "Softwareentwicklung von Kopf bis Fuß" gelesen hat, und ob sich das nur für Teamleiter eignet, oder ob man darin auch lernt alleine ein Projekt zu verwirklichen. In der Amazon Beschreibung wird mir das nicht so ganz klar.

18.03.2009 - 19:21 Uhr

Bei CodeProject gibts auch massig hilfreiche Projekte.

Ich verwende meistens das:
http://www.codeproject.com/KB/system/globalmousekeyboardlib.aspx

Damit kann man Tasteneingaben und Mauseingaben abfragen und simulieren.

04.03.2009 - 18:34 Uhr

Tool zum Planen eines Programms?

Vielleicht hilft dir das auch noch. Da sind noch ein paar Programme verlinkt.

05.02.2009 - 19:19 Uhr

@juetho
Danke für den Hinweis

Ich denke so ists jetzt richtig.


string input = Console.ReadLine();
int zahl;
if (!int.TryParse(input, out zahl))
    Console.WriteLine("Bitte geben sie eine Zahl ein.");
 else
    Console.WriteLine(zahl.ToString());

05.02.2009 - 18:56 Uhr

Probiers mal mit:


int zahl = Convert.ToInt32(Console.ReadLine());

Der falsche Wert entsteht wohl durch das Console.Read().

Ich habe allerdings das Gefühl, dass Convert hier nicht die beste Lösung ist. Kennt vielleicht jemand eine bessere oder ist das so in Ordnung?

27.01.2009 - 14:49 Uhr

OK danke für den Tipp. Das stimmt natürlich. Allerdings kann der Code oben garnicht funktionieren, da es normal ist, dass die X und Y Koordinaten 0 sind. Eigentlich wollte ich Width und Height nehmen also so:


this.Location = new Point(
                (Screen.PrimaryScreen.Bounds.Width / 2 - this.Size.Width / 2),
                (Screen.PrimaryScreen.Bounds.Height / 2 - this.Size.Height / 2));

27.01.2009 - 14:33 Uhr

Das dürfte dann in etwa so aussehen:


Point centerScreen = new Point(
                Screen.PrimaryScreen.Bounds.X / 2 - this.Size.Width / 2,
                Screen.PrimaryScreen.Bounds.Y / 2 - this.Size.Height / 2);

Allerdings liefert Screen.PrimaryScreen.Bounds.X und Y bei mir immer 0. Liegt aber am Laptop denke ich.

EDIT:
Achtung Code funktioniert nicht.
Siehe 2 Beiträge weiter unten.

26.01.2009 - 17:53 Uhr

Ich weiß nicht was du mit anwaehlen meinst. Ich kann immer nur eins mit der Maus markieren. Vielleicht meinst du ja eine TreeView mit Checkboxen.

Das ist eigentlich relativ leicht. Jeder Treenode hat ein ParentNode und jeder TreeNode hat wieder TreeNodes.

Hauptknoten.Nodes[0] ist der erste Unterknoten.

Hier ein Beispiel wie man das dann machen kann:


private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
    if (!e.Node.Checked && e.Node.Parent == null)
    {
        if (e.Node.Nodes != null)
            foreach (TreeNode node in e.Node.Nodes)
                node.Checked = false;
    }
}

26.01.2009 - 16:57 Uhr

Die Beschreibung des Events "ItemCheck" lautet wie folgt:

Zeigt an, dass der Aktivierungszustand eines Elements demnächst geändert wird. Der Wert wird erst nach dem Eintritt des Ereignisses aktualisiert.

Per EventArgs Parameter (Standart e) kannst du den neuen Wert das ausgewaehlten Elements abfragen. ( e.NewValue )

Hier ist noch ein Beispiel wie man die Abfrage dann machen kann:


if (e.NewValue == CheckState.Unchecked && checkedListBox1.CheckedIndices.Count == 1)
    this.button1.Enabled = false;
else if (e.NewValue == CheckState.Checked || checkedListBox1.CheckedIndices.Count > 0)
    this.button1.Enabled = true;
else
    this.button1.Enabled = false;

11.01.2009 - 09:12 Uhr

Kann es sein, dass du die Klammern hinter der Methode ToString auch in deinem Programm vergessen hast oder nur hier?


//string a = listbox1.Items[i].ToString;  //Falsch

string a = listbox1.Items[i].ToString();  //Richtig

06.01.2009 - 18:48 Uhr

Hier nochmal ein Beispiel für einen einfachen return:

Das ist die Datei Laden Methode, die einen OpenFileDialog anzeigt, bei dem der Benutzer eine Datei auswaehlen kann.
Am Ende gibt sie den ausgewaehlten Pfad zurueck.


private string DateiLaden()
{
    OpenFileDialog dialog = new OpenFileDialog();
    dialog.ShowDialog();
    return dialog.FileName;  //Gibt den ausgewaehlten Pfad zurueck
}

Und jetzt das setzen des strings "Datei":


Datei = DateiLaden();

Wenn diese Zeile aufgerufen wird, wird die Methode DateiLaden() ausgefuehrt und der Wert von Datei auf den Rueckgabewert von DateiLaden() gesetzt.

P.S.
Das Problem, bei dem Code ist allerdings, das der Pfad immer ausgegeben wird, also auch wenn man im Dialog auf Cancel drückt. Das kann man so besser machen (Das ist allerdings auch etwas komplizierter):


private string DateiLaden()
{
    OpenFileDialog dialog = new OpenFileDialog();
    DialogResult dr = dialog.ShowDialog();
    if (dr == DialogResult.OK)
        return dialog.FileName;
    else
        return "";  //Wenn auf Cancel gedrueckt wird gib einen leeren String zurück
}

31.12.2008 - 14:18 Uhr

Ok danke.

Entschuldigung, das hab ich in der FAQ nicht gesehen. Ich werde das nächste mal noch genauer suchen 😉

30.12.2008 - 16:23 Uhr

Hallo,
Ich hoffe das ist das richtige Forum, da ich hier neu bin 😉.

Ich habe einen kleinen MP3-Player auf Windows-Forms basierend geschrieben und möchte nun, wenn ich mehrere Dateien auswaehle und Rechtsklick -> Öffnen mit -> Music Player mache, dass alle ausgewählten Files der Playlist hinzugefügt werden.

Das Problem ist, dass System.Enviroment.GetCommandLineArgs() immer nur 2 Argumente zurückgibt und zwar als erstes (0) den Pfad der Programmexe und als zweites(1) den Pfad des Files auf das rechtsgeklickt wurde. Die anderen markierten Files werden nicht angegeben.