Variable zwischen 2 Klassen übergeben
-
Hallo,
das Thema wurde zwar schon einige Male hier behandelt, jedoch bin ich aus den Lösungen nicht schlau geworden. ich habe ein Programm, was ich anpassen soll, dieses Programm hat eine Quellcode Datei in der alle möglichen Variablen verfügbar sind und in der ich auch gern meinen eigenen Quellcode einfügen möchte. Nun musste ich aber auf Grund von Platzmangels einen neuen Dialog erstellen, in dem über Edit-boxen Werte an Variablen übergeben werden sollen. Mein Problem ist nun diese Variablen aus der Dialog-Klasse in meine Klasse in der ich damit arbeiten möchte zu übergeben. Gibt es da irgendeine EINFACHE Möglichkeit, diese Variablen direkt an die andere Klasse zu übergeben?
vielen dank schon mal,
mfg, TFTS
-
HI TfTomSun,
ich bin auf ähnlicher Suche. Habe da auch etwas gefunden, was uns eventuell weiter helfen könnte. "WM_COPYDATA".
Habe es noch nicth ausprobiert, wollte es aber mal machen. Mir fehlt nur noch so einwenig der Weitblick.
Momentan versuche ich die Geschichte erstmal über Doc Klasse und Pointer zu regeln, schmeckt mir aber nicht besonders.
-
Hi.
Wenn ich euch richtig verstanden habe, dann ist das doch kein Problem. Ihr könnt doch einefach eine Instanz eurer Klasse erstellen und darüber die Werte dann abfragen.
-
HI,
das mit der Instanz klappt leider nicht. Denn wenn du eine Instanz erstellt bekommst du nicht die Werte zurück, die sich z.B. bei einem laufendem Dialog verändern würden.
Ich hatte es auch versucht über eine Instance und dann private static int var;
klappte aber nicht.
-
@Wahnsinnig
Wir haben hier eine Dialog und keine DOC/VIEW.Wo rufts du den 2ten Dialog auf?
Wenn aus dem ersten Dialog wo du schon zugriff auf die VAR hast dann einfach und mehrere Möglichkeiten ohne hier WindowsMessages hinundherzuschicken.
1. Du kannst im 2ten Dlg bereits membervar erstellen. Beim Aufruf des dlg
DlgclassInstanz meindlg mydlg; // Hier die Variablem füllen mydlg.meinemembervar = "hallo"; // HIer den Dialog anzeigen mydlg.DoModal(); // Dlg wurde geschlossen nun die membervar aus di4esem verarbeiten meinevarwoauchimmersieist = mydlg.meinemembervar;
oder
du übergibst den Zeiger (this) des ersten Dlg an den 2ten Dlg.
oder du übergibst eine Zeiger der Klasse wo die Variablen gehalten werden an diesen Dlg
u.s.w.
-
Ich kann das Problem schon verstehen, bin auch schon einige male drübergestolpert. Ist wahrscheinlich ein standard Anfängerproblem. (Möchte hier aber niemanden bewerten
)
Hilfe bietet hier euer Objektmodel. Ein Objekt implementiert eine Assoziation oder Aggregation oder was auch immer zu einer anderen Klasse.
Konkret ist dann in Class1 (oder Dialog1 usw) ein Zeiger implementiert.Class1 { .... private: Class2* _pClass2; }
In Class2 musst(solltest) du dann einen Getter implementieren um auf die Member von Class2 zugreifen zu können.
Das ganze geht auch bidirektional, wenn du in Class2 Daten von Class1 benötigst.
Probleme könnte es hier geben mit der Header-Einbindung(da hatte jedenfalls ich immer Probleme, bis das lief)Gruß