Error nach Füllen von CListCtrl



  • Hallo Leute!
    Ich will (wie im Screen zu sehen) eine CListCtrl über eine Schleife mit den Daten eine CStringList füllen. Er füllt sie auch offensichtlich, aber nach dem Füllen bekomm ich dann den auf dem Screen zu sehenden Error, der mich nun schon einige Zeit beschäftigt und den ich ihn nicht bewältigt bekomme.

    Screen: http://netsh84.prometheus.net-build.de/listerror.jpg

    gruß, sebi



  • Wo im Quellcode landest du denn, wenn du bei der Meldung auf "Wiederholen" klickst (das dürfte irgendwo tief im MFC-Code sein)? Und von wo in deinem eigenen Code wird der Ausschnitt aufgerufen, der dich da bestreikt (um das herauszufinden, gehst du so weit nach oben durch den Call-Stack, bis du zu deinem Code kommst)?


  • Mod

    Du machst zweimal ein GetNext. Und wenn das letzte Item in dem while statement gezogen wird, dann kracht es weil Du mit einem pos von NULL sofort wieder einen GetNext im InsterItem Statement machst.



  • Danke Martin, das wars, hab nun nen puffer-head und nen puffer-tail eingefügt, nun gehts mit ner abfrage der pos 🙂


  • Mod

    Zeig doch mal den Code. Würde mich interessieren wie Du es jetzt gemacht hat. Nur die Schleife!



  • sehr unelegant, aber tut erstma seinen zweck ^^

    EngDeu.AddTail("");
    			EngDeu.AddTail("");
    			EngDeu.AddHead("");
    			EngDeu.AddHead("");
    			POSITION pos = EngDeu.GetHeadPosition();
    			POSITION end = EngDeu.GetTailPosition();
    			while(CString Item = EngDeu.GetNext(pos))
    			{
    					if(pos!=end)
    					{
    						int litem = Vokabelliste.InsertItem(0,Item);
    						Vokabelliste.SetItemText(litem,1,EngDeu.GetNext(pos));
    					}
    					else break;
    
    			}
    

    wenn ich die beiden leeren einträge nicht mache, gehen mir die letzten beiden gefüllten einträge verloren, daher die puffer.


  • Mod

    Die Liste besteht also immer aus zwei hinterienander gesetzten Elementen?
    Warum packst Du nicht alles in eine struct? Und liest die Daten jeweils zusammenhängen?
    Warum die AddHead's AddTails?
    GetNext liefert NULL wenn nichts mehr kommt

    Wirklich Quatsch.

    POSITION pos = EngDeu.GetHeadPosition();
    while(pos)
    {
        int litem = Vokabelliste.SetItemText(0,EngDeu.GetNext(pos));
        if (pos)
            Vokabelliste.SetItemText(litem,1,EngDeu.GetNext(pos));
    }
    

Anmelden zum Antworten