Autor Beitrag
Ella
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 27.05.10 10:48 
Hallo, ich bin leider der absolute Anfänger und hänge schon seit Tagen an dem folgenden Problem: Ich möchte ein Programm für meine Tochter schreiben, die nächstes Jahr in die Schule kommt. Sie soll damit Rechnen üben. Bei der Anmeldung werden die Namen eingegeben und dann mit Bild verbunden, so dass im Spiel sie sehen kann, wann sie dran ist (obwohl sie ihren Namen schon kann). Ich habe die ComboboxEinträge und PictureBoxEinträge erstmal auf 10 begrenzt, aber das kann man bestimmt mit einer Schleife noch ändern). Im Programm gibt es die Anmeldeseite, die Namensseite, die Rechenseite und die Abmelde(oder Weiterspiel)Seite. Ich hänge jetzt an dem Zuordnen der Bilder zu den Namen und dass die gespeichert werden. Es gibt wohl verschiedene Varianten: hashtables, externe Dateien, Arrays. Was kann ich denn am besten Nutzen (und wie)?
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 27.05.10 11:11 
Hallo und :welcome:,

wie du bereits erwähnt hast, gibt es verschiedene Möglichkeiten die Daten abzulegen. Da du das Programm für dich/deine Tochter verwendest (also ausschließlich privat), denke ich es reicht auch die Bilder als externe Datei in ein Unterverzeichnis des Programms (zum Beispiel Bilder) abzulegen.

Sämtliche Informationen über das Kind (Name, etc.) kannst du in einer Xml-Datei abspeichern.

Im Code hast du dann eine Klasse Child oder allgemeiner User die dann die Verbindung zum Bild herstellt und so aussehen könnte:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
public class User
{
    public Guid Guid { get; private set; }
    public string Name { get; set; }

    [XmlIgnore]
    public FileInfo ImagePath { 
       get { return Path.Combine(Application.StartupPath, "images\\" + this.Guid + ".jpg"; }
       set
       {
           // copy image to image path
           File.Copy(value, ImagePath);
       }
    }

    private Image _image = null
    public Image Image
    {
       get { if (_image == null) { _image = Bitmap.FromFile(ImagePath); } return _image; }
    }

    public User()
    {
       Guid = Guid.NewGuid();
    }
}


Fehlerhandling müsstest du noch einbauen. Ebenso vlt. eine Refresh _image Methode sowie die De-/Seralisiernug (wegen der GUID).

Gruß
Ella Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 27.05.10 11:22 
Hallo danielf,
vielen Dank für die schnelle Antwort. Jetzt muss ich das erstmal verarbeiten. Mit Serialisierung kenne ich mich noch gar nicht aus. Es soll beim Anmelden oder bei der Frage nach dem Weiterspielen ausgewählt werden können, wer dran ist. (Mama oder Papa). Ich hänge gerade an dem Abspeichern der Namen in einer globalen Variable (z.B. Auswahlname),die ich dann wieder verwenden will. Wie gesagt, Deins ist schon etwas fortgeschritteneres Wissen, das muss ich erstmal ausprobieren.
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 27.05.10 11:31 
Okay.

Also fürs Serialisieren gibt es im .NET Framework zum Beispiel den XmlSerializer. Unter dem Stichwort findest du auch bei google viele Beispiele (und schwierig ist es nicht).

Als globale Variable (Klassenvariable) würde ich nur eine Liste von Usern nehmen (List<User>). Dann bist du an dieser Stelle dynamisch, falls der Onkel noch mitspielen will ;)

Versuch das mal zu verarbeiten/realisieren und wenns nochmal konkrete Probleme gibt, weißt du ja wo du Fragen stellen kannst ;)

Gruß
Ella Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 27.05.10 11:34 
Danke, das werde ich. :D