Veröffentlicht 30. Januar 200619 j Hi, ich hab Listenfeld in einem Dialogfenster. Bei aufruf des Dialogfesnters sollen nun Strings, die in einem Array gespeichert sind, als Listenelemnte eingefuegte werden. Es werden aber nur leere Strings eingefuegt. Das Array das uebergeben wird ist definitiv nicht leer. So sieht das etwa bei mir aus: MainDlg.h: CUnterDlg m_dUnterDlg; CString text[10]; UnterDlg.h: CString liste[10]; void CMainDlg::OnUnterDlg() { ... for (int i=0;i<10;i++) { m_dUnterDlg.liste = text[10]; } ... if (m_dUnterDlg.DoModal () == IDOK) { UpdateData(FALSE) } } BOOL CUnterDlg::OnInitDailog() { for (int i=0;i<10;i++) { m_ctrlListe.AddString(liste[10]); } return TRUE; } Gruss Thomas!
30. Januar 200619 j for (int i=0;i<10;i++) { m_dUnterDlg.liste = text[10]; } Das Element text[10] existiert nicht...
30. Januar 200619 j arrays sind 0 terminiert das heißt wenn du ein Array initialisierst mit array[10] hast du 10 felder zum füllen also 0-9 ;D
30. Januar 200619 j for (int i=0;i<10;i++) { m_dUnterDlg.liste = text[10]; } tipp fehler: text[10] soll natuerlich text heissen
30. Januar 200619 j CString text[10]; heißt du hast die Elementen von 0-9. Um text[10] zu haben müsstest du es so deklarieren: CString text[11]; @law 0 Terminiert bedeutet das ein C-String am Ende immer eine binäre NULL stehen hat welche das Ende des Strings kennzeichnet.
30. Januar 200619 j CString text[10]; heißt du hast die Elementen von 0-9. Um text[10] zu haben müsstest du es so deklarieren: CString text[11]; wie grad oben geschrieben war das ein tipfehler hier im forum. in meinem program is das schon richtig.
30. Januar 200619 j Die werden in MainDlg gefuellt, und muessen wegen des logischen aufbaus meines programmes gefuellt sein, bevor die funktion OnUnterDlg ausgefuehrt wird.
30. Januar 200619 j Die werden in MainDlg gefuellt,Das ist erst mal nur eine Klasse, da kann nichts ausgeführt werden. und muessen wegen des logischen aufbaus meines programmes gefuellt sein, bevor die funktion OnUnterDlg ausgefuehrt wird.Und werden sie das auch? Bau doch mal eine MessageBox in deine Kopierschleife ein, um zu prüfen, ob in text überhaupt etwas drin steht.
30. Januar 200619 j habe ich schon. sie werden auf jedenfall gefuellt. hab auch schon mal den debugger zu rate gezogen. irgendwo zwischen fuellen und aufrufen der zweiten dialogfenster, wo das listenfeld gefuellt werden soll, entleert sich das array wieder.
30. Januar 200619 j habe ich schon.MessageBox in der Kopierschleife? hab auch schon mal den debugger zu rate gezogen. irgendwo zwischen fuellen und aufrufen der zweiten dialogfenster, wo das listenfeld gefuellt werden soll, entleert sich das array wieder.Dann liegt der Fehler in dem Teil des Codes, den du weggelassen hast. Möglichweise hantierst du mit mehr als einer Instanz einer Dialogklasse. Vielleicht modifizierst du eines der Arrays auch noch an anderer Stelle. Ohne mehr von dem Code zu sehen, kann man das nicht sagen.
30. Januar 200619 j ja danke erstmal fuer die tipps. mein quellcode is leider ueber 6000 zeilen lang, und da ich nicht weiss wo der fehler genau auftritt, weiss ich nicht welchen teil ich hier zeigen soll. an anderen stellen wird mit den zwei textfeldern nix angestellt.
30. Januar 200619 j Dann fang doch mal an der Stelle an, an der du text füllst. Und zeig bitte auch, wie du diese Funktion aufrufst.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.