Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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!

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

geloescht...

for (int i=0;i<10;i++)

{

m_dUnterDlg.liste = text[10];

}

tipp fehler: text[10] soll natuerlich text heissen

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.

ja, in beiden faellen.

Die werden in MainDlg gefuellt, und muessen wegen des logischen aufbaus meines programmes gefuellt sein, bevor die funktion OnUnterDlg ausgefuehrt wird.

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.

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.

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.

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.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.