Vars von Dlg => Hauptdialog



  • Hi,

    Wie erhalte ich aus einen geöffneten Dialog Variablen in meinen Hauptdialog.

    Um mich verständlicher zu machen, hier mein bisheriger Code:

    CZFormularDlg* dlg = new CZFormularDlg; 
    dlg->DoModal();
    m_strZSucheName = dlg->m_strZNachname; // Sollen erst ausgelesen werden, wenn
    m_strZSuchePLZ  = dlg->m_strZPLZ;      // der Dialog (dlg) geschlossen wird
    delete dlg;
    

    Wie mache ich es richtig?

    Thx 4 Ur help!

    Gruß, Elayas



  • Stimmt doch...
    Die Funktion CDialog::DoModal kehrt erst wieder zurück, wenn der Dialog geschlossen wurde.

    Grüße Rapha



  • Dachte ich auch, aber leider sind die Vars leer 😞



  • Das liegt daran, dass die Membervariablen beim Schließen des Dialogs wahrscheinlich nicht aktualisiert werden. Normalerweise werden sie automatisch
    aktualisiert, wenn der Dialog mit CDialog::OnOk() geschlossen wird.
    Achte also darauf, dass der Dialog mit CDialog::OnOk() beendet wird, oder bau noch nen eigenen "Mechanismus" ein, der die Daten der Controls in die Variablen überträgt, wenn der Dialog geschlossen wird.

    Grüße Rapha



  • Hi!
    Die Frage ist, wie beendest du den Dialog?
    Ist es mit OnCancel() oder EndDialog()? Dann ruf vorher UpdateData(true) auf und es sollte gehn.

    Gruß,
    Andreas



  • Ich bin ein Volltrottel.

    Stimmt, es war richtig. Der Fehler lag woanders. Bevor der Dialog geschlossen wurde, hatte ich noch einen Reset auf alle Variablen. Klar, dass ich die dann nicht auslesen konnte.

    Sorry für die vergebene Mühe!


Log in to reply