Variable zwischenspeichern, weil sie sich während des Prozesses ändern?



  • hallo,
    ich hatte in meiner Dialoganwendung folgendes Problem, und zwar hatte ich Membervariablen übergeben, und wunderte mich, dass sie zum Zeitpunkt der Ausgabe immer =0 waren. Wie kann ich denn zum Zeitpunkt der Übergabe die Variablen "feststellen", so dass ich die Werte später habe...

    ich übergebe die Variablen: m_StartEingabe, m_DauerEingabe an m_StartAusgabe und m_DauerAusgabe, aus letzteren soll eine Kurve gezeichnet werden.... aber aus lauter Nullen kommt da nix weiter als ne Gerade^^ 😃



  • keiner ne Idee um das Problem zu lösen... oder einen Tip, wonach ich die Suche noch quälen könnte... 😞



  • 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.


Anmelden zum Antworten