Variablen übergeben (Dialogfeld.cpp's)
-
Hallo!
Ich hab zwei Dialogfelder, aus dem ersten Dialogfold starte ich ein zweites, und möchte gewisse Variablen mitnehmen. Ich hab sie als public deklariert. Aber irgendwie klappt das nicht.
Ich hab's so versucht
"aktuelles Dialogfeld" = "anderes Diag"."andere Varaible"
m_messung = Csm091aDlg.m_messung;
hier bekomme ich diese Fehlermeldung
:illegal use of this type as an expressionm_messung = Csm091aDlg::m_messung;
hier diese
: illegal reference to non-static member 'Csm091aDlg::m_messung'
: cannot convert from '' to 'int'ich arbeite noch nicht lange mit c/c++ bin hier etwas eingerutscht und muss nun das beste draus machen, wäre um Eure HIlfe froh. Danke!
-
Versuchs mal so, erstmal must du natürlich den header der klasse des ersten Dialogs in deinem zweiten includieren. und dann machst du es einfach so:
CErsterDialog m_ersterDialog; variabledeszweitendialogs = m_ersterdialog.dievariabledieduwillst;
das müste eigentlich klappen.
-
ja hab die includes alle schön reingeschrieben... aber geht trozdem nicht
wozu bruach ich das "CErsterDialog m_ersterDialog;"?
m_messungb = Csm091aDlg.m_messung;
Hab keine Ahnung was ich übersehe...
c:\emifield\SchwenkMethode\sm091a\Messung.cpp(41): error C2275: 'Csm091aDlg' : illegal use of this type as an expression
-
eine farge, wozu du das brauchst, ich hätte mal ne frage, wo erzeugst du den den Handel auf deinen ersten Dialog, denn ansonnsten kommst du doch garnet an die Variablen ran.
[ Dieser Beitrag wurde am 23.01.2003 um 13:37 Uhr von xyz44 editiert. ]
-
Handel? Reich es nicht wenn die variable als public generiere
-
Nein reicht net.
Machs so wie ichs geschrieben habe, das dürfte funzen.
Hast du es denn probiert wie ichs geschrieben habe?
wie wäre es wenn du dir erstmal eine tutorial suchst und nen bischel liest.
Auf der site hier gibet ein paar tuts.
-
Hi,
vielleicht funktioniert auch das:
- Dialog 1 deklarieren
- in einer Funktion vom Dialog1 den Dialog2 deklarieren und aufrufen
- im Dialog2 in der OnInitDialog(...)-Funktion mit (CDialog1Klasse*)GetParent()->m_wasweissich auf die Variable zugreifen!
-
"CErsterDialog m_ersterDialog;"
Was ich an Deiner Zeile hier nicht verstehe ist CErsterDialog und m_ersterDialog. Ist m_ersterDialog die Membervariable?!
Danke!
-
Du solltes das ganz anders machen, nicht dein zweiter Dialog greift auf den ersten zu, sondern bevor du den zweiten öffnest setzt du die Werte vom ersten in den zweiten Dialog. z.b. mit einer Set-Methode oder auch mit public-Membern deines zweiten Dialoges.
das könnte so aussehen:CDeinErsterDlg::OnKnopfdrückZweitenDlgStarten() { CDeinZweiterDlg dlg; //Instanz erstellen dlg.m_ErstePublicMemberDieDuSetzenWillst=m_IrgendeineZahl; //.. alle weiteren Werte setzen oder dies in Set-Methode zusammenfassen if (dlg.DoModal==IDOK) //wenn dein Dialog mit OK beendet { m_IrgendeineZahl=dlg.m_XYZ; //alle restlichen Werte aus zweiten Dialog in ersten übernehmen } }
Das ist besser obejektorientiert, weil dein zweiter Dialog von dem Ersten in der Regel nichts zu wissen braucht.
-
Original erstellt von chefe:
weil dein zweiter Dialog von dem Ersten in der Regel nichts zu wissen braucht.Und falls doch dann hat er eine Membervariable mit einem Pointer,Referenz zu diesem.
-
vielen Dank! Hab auch gerade etwas über diesen lösungansatz gelesen.