TDM Geschrieben 8. Oktober 2008 Teilen Geschrieben 8. Oktober 2008 Main erzeugt irgendwo den "Schrank" und merkt sich welcher Schrank das war. Main malt den Schrank an (bzw. Schrank lässt sich anmalen). Main schaut nach, welche Farbe der Schrank hat (genau der, den sie oben erzeugt hat). Ich versteh bloß nicht, warum du in main die Ausgabe haben willst. Läuft nicht alles in der Fensterklasse? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Conex Geschrieben 8. Oktober 2008 Teilen Geschrieben 8. Oktober 2008 Ich habe mehrere Forms und Klassen. So auch die Form Main & Grundrechenarten und die dazugehörigen Klassen. In der Form Grundrechenarten werden Berechnung durchgeführt und schließlich in den fertigen String "ausgabe" abgelegt. Nun soll dieser String in der richTextBox von Form Main angezeigt werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 8. Oktober 2008 Teilen Geschrieben 8. Oktober 2008 na dann ist das doch klar... Nachdem du das Fenster in der Main erzeugt und angezeigt hast, bzw. nachdem das Fenster die Berechnung durchgeführt hat, rufst du einfach von der Instanz (das Fenster) die Funktion Get_ausgabe() auf und kommst so auf den String. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 8. Oktober 2008 Teilen Geschrieben 8. Oktober 2008 Nun soll dieser String in der richTextBox von Form Main angezeigt werden. Ja, das wissen wir alles schon, und das hilft uns nicht weiter. Ich bitte dich hiermit zum dritten Mal, zu zeigen, wo und wie du die Instanz der Klasse Grundrechenarten anlegst, und wo und wie du Aktion aufrufst. Es kommt nicht darauf an, wie die Klasse aufgebaut ist, sondern was du damit machst. In Worten des Beispiels: Es kommt nicht darauf an, wie der Schrank aufgebaut ist, und welche chemischen Vorgänge beim Anmalen ablaufen. Es kommt darauf an, wie du dir merkst, wo du den Schrank hingestellt hast. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Conex Geschrieben 8. Oktober 2008 Teilen Geschrieben 8. Oktober 2008 Ich bitte dich hiermit zum dritten Mal, zu zeigen, wo und wie du die Instanz der Klasse Grundrechenarten anlegst, und wo und wie du Aktion aufrufst. Ich denke doch, dass es ersichtlich ist, wo und wie die Methode "Aktion" im Beitrag #21 aufgerufen wird. Die Instanz zur Klasse Grundrechenarten wird in der Klasse Main (Form) angelegt: Grundrechenarten FormGrundrechenarten = new Grundrechenarten(); string test = FormGrundrechenarten.Get_ausgabe(); TextBox_Rechenverlauf.AppendText(test + "\r\n"); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 8. Oktober 2008 Teilen Geschrieben 8. Oktober 2008 Ich denke doch, dass es ersichtlich ist, wo und wie die Methode "Aktion" im Beitrag #21 aufgerufen wird.Nein, das ist nicht ersichtlich. Wo erstellst du diese Instanz? Wo steht in deinem Code noch new Grundrechenarten()? Die Instanz zur Klasse Grundrechenarten wird in der Klasse Main (Form) angelegt:Das ist aber nicht dieselbe Instanz, über die Aktion aufgerufen wird, sondern eine, die du dort neu erstellst. Der Schrank ist neu, der wurde nie angemalt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 8. Oktober 2008 Teilen Geschrieben 8. Oktober 2008 Ich glaube langsam riech ich ein Designproblem... Main wird nicht benachrichtigt, wenn eine Berechnung durchgeführt wurde? Anmerkung: Wenn du mit dem Ergebnis später weiterarbeiten willst, dann braucht das auch noch ne Property... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 8. Oktober 2008 Teilen Geschrieben 8. Oktober 2008 Nachtrag: Wenn das wirklich das einzige Objekt dieser Klasse ist, das angelegt wird, dann ist klar, warum das nicht klappt. Du rufst sofort nach dem Erstellen Get_ausgabe auf, die Berechnung wird aber erst ausgeführt, wenn der Button angeklickt wird. Das muss schon in der richtigen Reihenfolge passieren. Du kannst nicht erst die Farbe des Schrankes rausfinden, und dann anmalen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Conex Geschrieben 8. Oktober 2008 Teilen Geschrieben 8. Oktober 2008 Main wird nicht benachrichtigt, wenn eine Berechnung durchgeführt wurde? Genau... das Form Grundrechenarten macht alles unabhängig von Main! Alles wird dort berechnet und in einem String "ausgabe" zusammengefasst. Gut, Properties.... bspw. so in die Klasse Grundrechenarten eintragen? public string TextToShow { get { return this.ausgabe; } set { this.ausgabe = value; } } Und dann in der Main: Grundrechenarten FormGrundrechenarten = new Grundrechenarten(); TextBox_Rechenverlauf.AppendText(FormGrundrechenarten.TextToShow + "\r\n"); Geht aber auch noch nicht Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 8. Oktober 2008 Teilen Geschrieben 8. Oktober 2008 Genau... das Form Grundrechenarten macht alles unabhängig von Main! Alles wird dort berechnet und in einem String "ausgabe" zusammengefasst. [...] Und dann in der Main: Grundrechenarten FormGrundrechenarten = new Grundrechenarten(); TextBox_Rechenverlauf.AppendText(FormGrundrechenarten.TextToShow + "\r\n"); Ok, dann doch Designproblem. Du rufst erst dein Fenster auf, das wird angezeigt und im gleichen Moment liest du die ausgabe aus (die zu dem Zeitpunkt noch leer ist). Gibt jetzt verschiedene Mittel und wege das zu lösen... entweder du wirfst immer ein ereignis, welches die Main-Klasse benachrichtigt, dass sich die Property geändert hat (was allerdings mit Ereignishandlern ein Nachteil wäre, wenn du immer neue Fenster erzeugst.) oder du machst einen modalen Dialog, der zu erst abgearbeitet werden muss und sobald dieser geschlossen wird, liest du die Ausgabe der Instanz des Fensters aus und trägst sie ein (du wartest sozusagen, bis die Berechnung durchgeführt wurde, dann ist aber nur eine Berechnung pro Fenster möglich). Gut, Properties.... bspw. so in die Klasse Grundrechenarten eintragen? public string TextToShow { get { return this.ausgabe; } set { this.ausgabe = value; } } Meinte ich eigentlich nicht. Aber verschieben wir das Problem mal auf später. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Conex Geschrieben 8. Oktober 2008 Teilen Geschrieben 8. Oktober 2008 Ich verlange wahrscheinlich viel zu viel..... aber gibt es denn nicht eine einfache Möglichkeit eine Variable permanet zu speichern - "fest halten" - , dass sie ihren Wert nicht verlieren (nur bei Neubelegung), so dass sie überall verfügbar ist? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.