Datenübergabe in Registern



  • Hi

    Ich habe mit PropertyPage mehrere Dialogfelder und wollte das die Daten aus Feld1 in Feld2 übernommen werden. Kann mir jemand ein Rat Geben? 😕



  • member Variablen sind dein Freund!



  • Im Dialog 1 habe ich m_KNummer
    und im 2. Dialog m_KRechName

    mein problem ist die beiden zusammen zu bekommen.
    in den Einzelnen Dateien habe ich auch die h-Dateien includiert.



  • was heißt zusammen bekommen? Vielleicht so?

    //im ersten Dialog
    CDialog2Dlg dlg;
    dlg.mKRechName += mKNummer;
    

    UNd umgekehrt

    //im zweiten Dialog
    CDialog1Dlg dlg;
    dlg.mKNummer += mKRechName;
    


  • Ich habe mich falsch Ausgedrückt.

    Mein Vorhaben Aus CRegister2 die Variable m_strKName der Variablen in CRegister1 m_strKRechName zuweisen.

    Mein Versuch in CRegister1

    UpdateData(TRUE);
    CRegister2 dlg;
    m_strKRechName = glg.m_strKName;
    UpdateData(FALSE);



  • Guck mal FAQ:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-72430.html

    Das habe ich vor kurzem mal mit einer boolschen-Variable gemacht (also im Sheet gespeichert und auf den Dialogen zugewiesen/abgefragt). Hat erstmal funktioniert. Leider hatte das einen späteren Absturz zur Folge, wenn der User sehr oft in Folge zwischen den Karteireitern wechselte, darum habe ich es wieder umgebaut.

    Wenn also einer einen qualifizierten Kommentar abgeben kann nach dem Motto "das ist so schon richtig und muss klappen" oder "durch den Pointer und die Zuweisung ist das in der Tat nicht ganz ungefährlich" oder sogar "das ist so eigentlich falsch" würde ich mich auch freuen.



  • @rest deine Versuchsbeschreibung tut was anderes wie dein Code dazu

    rest schrieb:

    Ich habe mich falsch Ausgedrückt.

    Mein Vorhaben Aus CRegister2 die Variable m_strKName der Variablen in CRegister1 m_strKRechName zuweisen.

    Mein Versuch in CRegister1

    UpdateData(TRUE);
    CRegister2 dlg;
    m_strKRechName = glg.m_strKName;//vertippt muss natürlich dlg heißen
    UpdateData(FALSE);

    Mach das mal so wie du es beschreibst! hatte sorum wie dein Source ist auch schon oft probs und so nicht:

    //In CRegister2
    UpdateData(TRUE);
    CRegister1 dlg;
    dlg.m_strKRechName = m_strKName;
    

Anmelden zum Antworten