ah jetzt verstehe ich
hab ich ein dreieck f in die DreiKon eingefügt und sage dann beim zweiten mal übernehme wieder Dreieck f dann ändert er nichts weil das erste auch schon f heißt
Das in der PS versteh ich jetzt nicht ganz
also das ist meine dreikon
public DreiKon(Dreieck f , String g)
{
f=DreiE;
Kons=g;
}
public Dreieck DreiE;
public string Kons;
Das ist nur ne zusammenfassung der beiden Werte (Dreieck und Dem string)
dann hab ich 4 verschiedene berechnungen nach denen sich das dreieck f ändert.
also hab ich eigentlich einen unterschied wenn ich auf save drücke (oder?)
Oder ändert sich die dreikon nicht wenn ich ein neues f habe und dann
ald.add (new Dreikon(f,string))
Was mir grade aufgefallen ist ist das sich der String ändert
So ok das hab ich verstanden es läuft jetzt auch wunderbar
er Speichert die Dreiecke auch ohne Problem ( hab ein lable gemacht wo er die Count Eigenschaft als zahlenwert wiedergibt) die steigt auch nach jedem Speichern.
Jetzt gibt er mir aber immer das zu letz erzeugte dreieck wieder und immer nur das letzte auch wenn ich im code den indexer direkt setzte
DreiKon l = (DreiKon)ald[Int32.Parse(load.Text)];
so wollte ich es machen das man die Zahl des indexers per textfeld festlegen kann
🙁 zu deinem Vorschlag mit der Liste ich muss es leider mit Der Arraylist machen
Speichern sieht so aus
public System.Collections.ArrayList ald = new System.Collections.ArrayList ();
ald.Add (new DreiKon(f,Wahl.Text));
und laden so
DreiKon l = (DreiKon)ald[Int32.Parse(load.Text)];
Dreieck f = l.DreiE;
Wahl.Text = l.Kons;
ja das hab ich auch schon probiert aber dann kommt der fehler auch nicht mehr
aber dann kann ich es nicht wieder abrufen
spricht
f = ald [index]
sagt er mit das das objekt nicht zum typ dreieck konvertiert werden kann
obwohl es ja dann vom typ dreieck ist
So hab das jetzt verstanden hab da nun nur wieder ein problem
ArrayList ald = new ArrayList();
das Funktioniert und damit erstellt er ja die Arraylist
Dann
ald (new Dreieck(a,b,c));
da gibt er mir den Fehler
(1286): 'WindowsApplication1.Form1.ald' deutet auf 'Feld' hin, wo 'Klasse' erwartet wurde
Warum ??
irgendwie Funktioniert das nicht so
ich Versuche es nochmal zu beschreiben
habe eine Form wo ein dreick anhad der Seitenlängen erzeugt wird und dann unter der Kalsse Dreieck eingefügt wird (dort berechnet er winkel,seitenlängen usw)
habe Die Klasse Dreieck wo es ein dreieck mit f.(...) gibt
habe eine Klasse DreiKon wo dieses Dreieck gespeichert werden soll mit einer ArrayList in dem Feld (DreiE)
public class DreiKon
{
public DreiKon()
{
//
// TODO: Fügen Sie hier die Konstruktorlogik
//
}
public Dreieck DreiE;
Jetzt muss ich doch als Konstruktor
public class DreiKon
{
public DreiKon()
{
System.Collection.ArrayList aldreieck = new System.Collection.ArrayList
}
public Dreieck DreiE;
dan hab ich die Arraylist erzeugt und nun will ich aus der Form ein Dreick hinzufügen
also in der Form z.B. unter einem Button
und diesen dan unter dem Feld DreiE abrufen unter einem anderen Button mit dem index
Ähm eigentlich dachte ich das eine ArrayList eindimensional ist sprich nur einen Wert annehmen kann und ein dreieck besteht aus sechs f.A.x,f.A.y,usw.
kann aber seindas ich da falsch liege ich probier das mal danke
Also ich hab hier eine Klasse Dreieck mit der Klasse wird aus drei Werten (Punkte : A,B,C) ein dreieck erzeugt
nun soll ich dieses Dreieck Speichern (mehrere Dreiecke sollen gespeichert werden ) und das alles mit der ArrayList
hab jetzt mal so angefangen
public Dreieck DreiE;
ArrayList A = new ArrayList();
ArrayList B = new ArrayList();
ArrayList B = new ArrayList();
Meine Frage wie bekomme ich jetzt die werte eingefügt
Ein Dreieck (f) kann aus der Klasse die werte f.A,f.B,f.C wiedergeben .
Danke schonmal für eure Vorschläge
Jo funtioniert danke für die Schnelle antwort
also ich möchte auf einen Buttonclick eine Größenänderung der Form1.cs
erzwingen wie kann ich das anstellen
hab es so versucht und mich dann in der hilfe totgesucht
Form1.Size = new System.Drawing.Size (384,400);
Da gibt er aber immer einen fehler aus das Form1.Size nicht Objektbezogen sei ??
Ich versuche hier ein Winowsanwendung zu schreiben womit ich ( Seitenlänge , Umfnag,...usw.) eines Dreiecks berrechne.
Habe eine Klassenbibliothek Geometrie mit den beiden Klassen
PV
und
Dreieck
PV Kopf sieht so aus
public class PV
{
public PV(double xk, double yk)
{
x = xk;
y = yk;
}
jetzt hab ich versucht einen Dreick kopf zu bauen
public Dreieck ( )
{
}
public Dreieck ( double ax ,double ay)
{
PV a = new PV (ax,ay);
}
public PV a ;
und als Überprüfung in form1
Dreieck f = new Dreieck (1,2);
textBox1.Text= string.Format("({0})",f.a.x)
Wenn ich auf den button drücke welcher die textbox ändern soll
gibt er den Fehler aus
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bezogen auf die Zeile mit der Textboxänderung
Denke ich auch werde ihm gleich mal noch ne Mail schreiben .
Trotzdem Danke also lag es doch nicht an mir .
:
Es gibt kein zusätzliches Material
als Buch haben wir PRZN
Titel : C# Einführung in die neue Programmiersparache C#
1.Auflage Universität Hannover
www.rrzn.Uni-hannover.de/buecher
Als Material haben wir die Standartversion
Microsoft Visual Studio .Net 2003
Ich studiere Maschinenbau und ein Fach ist auch Informatik für Maschinenbauer.
Wir haben vor 3 Wochen angefangen Übungen in C# zu erstellen hat auch bis jetzt alles gut hingehauen.
Doch mit der neuen Übung habe ich so meine Probleme.
Also es soll eine Windowsanwendung erstellt werden in der man die drei Eckpunkte eines Dreiecks einträgt und dann verschiedene Sachen berechnet werden (Umfang , Winkel, .... usw.)!
Als erstes steht in der Aufgabe:
Aufgabe1:
Erweitern Sie die vorgegebene Klassenbibliothek GEOMETRIE , in der bereits eine Klasse für Punktvektoren (PV) mit den wichtigsten Methoden und Eigenschaften implementiert ist, um die Klasse Dreieck.
Mein Problem :
Ich finde keine vorgegebene Klassenbibliothek Geometrie oder eine Klasse (PV).
Danke schonmal im Vorraus