Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

Posting mit ProjektKlasse für GraphicsProject erstlellen (Scheemann) - wo bist du jetzt ??
kakaomilch
myCSharp.de - Member

Avatar #avatar-1816.jpg


Dabei seit:
Beiträge: 100
Herkunft: Wien / Österreich

Themenstarter:

Posting mit ProjektKlasse für GraphicsProject erstlellen (Scheemann) - wo bist du jetzt ??

beantworten | zitieren | melden

Da war gerade ein Posting über ein Zeichenprogramm dass zb einen Schneemann aus mehreren "GraphicsObjects" zeichnen sollte...

Wurde das jetzt gelöscht oder bin ihc nur blind ?!..

Hier auf jeden fall meine Antworte (konnte ich nicht mehr abschicken -->error)..

Hi!
Ich bin zwar selbst nicht soo der Patterns Experte, aber das erinnert mich an ein Pattern, das mir unser Architect letzte Woche für was ähnliches vorgeschlagen hat.

Das "Builder Pattern".
Du machst zb einen "SchneemannBuilder", und der weiß in sich drinnen, woraus ein Schneemann besteht.

http://www.c-sharpcorner.com/Language/BuilderPatternsinCSRVS.asp

http://en.wikipedia.org/wiki/Builder_pattern

http://www.dofactory.com/Patterns/PatternBuilder.aspx

Dann machst du noch eine Klasse GraphicProject und der SchneemannBuilder zb erstellt dir ein bestimmtes GraphicProject, dass die GraphicObjects eines Schneemannes enthält.


public class GraphicProject{
	private ArrayList _objects; // oder statt ArrayList - List<GraphicObject> unter .Net 2.0

	public void Add(GraphicObject obj){
		_objects.Add(obj);
	}

	public void Draw(Graphics g){
		foreach (GraphicsObject obj in _objects){
			obj.Draw(g);
		}
	}
}

Der Code oben setzt voraus, dass deine GraphicsObject Klasse eine Method

void Draw(Graphics g);
hat, (oder ähnlich) der du das aktuelle Graphics object übergibst (zb von e.Graphics aus dem Control.Paint event, oder von e.Graphics aus dem PrintDocument.PrintPage event).

Noch ein Vorteil:
Du kannst damit ziemlich unabhängig sowohl auf die Form als auch auf ein Blatt Papier (PrintDocument) zeichnen :-)

Bei Fragen schreib einfach 'ne Antwort.

lg,
Kakaomilch.
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4802
Herkunft: Leipzig

beantworten | zitieren | melden

Das habe ich gelöscht, da der Threadersteller so freundlich war, den Titel und den gesamten Text jeweils durch einen "." zu ersetzen.
private Nachricht | Beiträge des Benutzers
kakaomilch
myCSharp.de - Member

Avatar #avatar-1816.jpg


Dabei seit:
Beiträge: 100
Herkunft: Wien / Österreich

Themenstarter:

na sehr gscheit

beantworten | zitieren | melden

:-)

Edit: das bezieht sich auf den ersteller nicht auf dich..
private Nachricht | Beiträge des Benutzers
svenson
myCSharp.de - Member



Dabei seit:
Beiträge: 8775
Herkunft: Berlin

beantworten | zitieren | melden

Zitat
Original von Noodles
Das habe ich gelöscht, da der Threadersteller so freundlich war, den Titel und den gesamten Text jeweils durch einen "." zu ersetzen.

Tja, auch Informatiklehrer beherrschen Google, da muss man vorsichtig sein...
private Nachricht | Beiträge des Benutzers