Variable zwischenspeichern, weil sie sich während des Prozesses ändern?
-
Hi,
von wo nach wo übergibst Du die Variablen auf welche Art? So ganz ohne Code ist auch meine Glaskugel leicht überfordert...
Gruss
yeti
-
sry, ich übergebe sie mit
dlgAlgoPara.m_StartAusgabe=m_StartEingabe;
Wenn ich an diesen Punkt eine MessageBox setze
AfxMessageBox(m_StartEingabe);
dann zeigt diese mir den richtigen Wert an, allerdings im nächsten Dialog ist in der Messagebox
AfxMessageBox(m_StartAusgabe);
ein " " zu finden...
-
An welcher Stelle in Deinem zweiten Dialog hast Du die Messagebox eingebaut? Vielleicht machst Du irgendwas mit der Variablen bis Du zu der Stelle kommst, an der die MessageBox gezeigt wird?
Interessant ist auch, TRACEs einzubauen (am besten in OnInitDialog des aufgerufenen Dialogs) und dann im Debug-Modus zu sehen, welchen Inhalt die Variable hat.
Mehr kann ich aus den Code-Schnipseln leider auch nicht sagen.
Gruss
yeti
-
Rufst du den zweiten Dialog auch in der selben Methode auf, in der
dlgAlgoPara.m_StartAusgabe=m_StartEingabe;
steht oder machst du das an einer anderen Stelle mit einem neuen dlgAlgoPara-Objekt ?
-
nein
ist das schlimm?
-
"nein" auf eine oder-Frage...
-
sry, nein zum ersten, ich rufe den zweiten Dialog nicht in der selben Methode auf, in der
dlgAlgoPara.m_StartAusgabe=m_StartEingabe;
steht...
das zweite hatte ich gar nicht mehr wahr genommen
-
Das ist dann wohl der Grund, warum es nicht klappt. Wenn m_StartEingabe eine Membervariable vom 1. Dialog ist, kannst du die Zeile
dlgAlgoPara.m_StartAusgabe=m_StartEingabe;
in die andere Methode verschieben, da hätte m_StartEingabe ja noch den gleichen Wert. Also vor dlgAlgoPara.DoModal() oder dlgAlgoPara.Create() oder wie auch immer.
-
aahhh, hab´s glaub ich verstanden... er kann nix anzeigen weil er schon modal ist bevor ich die Variable übergebe^^
-
Mmmmmmhhh,... eher so:
auch wenn die Variable immer vom Typ dlgAlgoPara ist und immer m_StartAusgabe heisstm, so sind dlgAlgoPara.m_StartAusgabe in zwei verschiedenen Methoden zwei verschiedene Variablen. Die haben nix miteinander zu tun, weil die erstellten Objekte vom Typ dlgAlgoPara immer nur im Sichtbereich zwischen { und } gültig sind. So wie du dir das gedacht hast geht das auch, dann musst du aber Pointer nehmen, aber dann wird es ein bischen schwerer.