Avatar billede ladyhawke Novice
31. juli 2002 - 13:42 Der er 10 kommentarer og
1 løsning

Indsæt data i CListCtrl (report view)

Jeg har følgende i en løkke, men der bliver ikke indsat noget som helst (søjlerne er lavet tidligere):

m_strListStatus.InsertItem(nCount,"???");

m_strListStatus.SetItemText(nCount, 0, "tekst1");
m_strListStatus.SetItemText(nCount, 1, "tekst2");
m_strListStatus.SetItemText(nCount, 2, "tekst3");
               
Hvordan skal det gøres for at det virker? "tekst1" etc. er bare som en test jeg får mine tekster et andet sted fra...
Avatar billede jpk Nybegynder
31. juli 2002 - 14:00 #1
Husker du at starte nCount ved 0? (ikke fx 1)
Avatar billede ladyhawke Novice
31. juli 2002 - 14:06 #2
Ja :o)

Hvis kode udsnittet er uklart vil en god for klaring til hvordan man dynamisk fylder data i en CListCtrl (elementer, søjler, rækker ...) være velkommen! Jeg har dit eksempel (fra http://www.eksperten.dk/spm/239764) der virker, men kan ikke lige få det konverteret til egen kode :-/ (Jeg har ikke helt gennemskuet hvad der sættes ind hvor og hvordan jeg sætter mit eget i stedet)
Avatar billede jpk Nybegynder
31. juli 2002 - 14:40 #3
Kan du ikke poste et støre kodeudsnit..?
Avatar billede ladyhawke Novice
31. juli 2002 - 14:52 #4
Jo da :o)
...
m_strListStatus.InsertColumn(0, "Line", LVCFMT_LEFT, 50);
m_strListStatus.InsertColumn(1, "Position", LVCFMT_LEFT, 50);
m_strListStatus.InsertColumn(2, "Text", LVCFMT_LEFT, 400);
...
if (!result.empty())
{   
    for (int i = 0; i<result.size(); i++) {
    if (result.at(i).bValid) {
            m_strListStatus.InsertItem(nCount,"TEST");
        m_strListStatus.SetItemText(nCount, 0, CString(result.at(i).nLine));
        m_strListStatus.SetItemText(nCount, 1, CString(result.at(i).nPos));
        m_strListStatus.SetItemText(nCount, 2, result.at(i).strText);
                    nCount++;
               
    }
    }
}

result er en vector, nCount bruges til at holder styr på hvor langt jeg er nået i listen (der kommer flere resultater og de tidligere skal ikke overskrives, med mindre brugeren specificerer det)

nedenstående virker, men ikke overnstående:
for(int nRow=0; nRow<5; ++nRow)
    {
        strRow.Format("Row %d", nRow+1);
        m_strListStatus.InsertItem(nRow, strRow);
        for(int nColumn=1; nColumn<3; ++nColumn)
        {
            strColumn.Format("%d%d", nColumn+1, nRow+1);
            m_strListStatus.SetItemText(nRow, nColumn, strColumn);
        }
    }
Avatar billede jpk Nybegynder
31. juli 2002 - 15:03 #5
Efter navnene at dømme, er dine variabler nLine og nPos af typen int?
Hvis dette er tilfælde kunne fejlen ligge her, CString har ikke en constructor der tager en int...

Prøv at erstatte koden med understående og se om det virker:

if (!result.empty())
{   
    for (int i = 0; i<result.size(); i++) {
    if (result.at(i).bValid) {
            m_strListStatus.InsertItem(nCount,"TEST");
        m_strListStatus.SetItemText(nCount, 0, "nLine");
        m_strListStatus.SetItemText(nCount, 1, "nPos");
        m_strListStatus.SetItemText(nCount, 2, "strText");
                    nCount++;
               
    }
    }
}
Avatar billede ladyhawke Novice
31. juli 2002 - 15:25 #6
Det gør det ikke, jeg har allerede lavet en test af det (mht. nPos og nLine så er de int, men jeg skal bare have konverteret dem til noget "tekst", det er ikke det der volder problemer lige nu :o) ).

Jeg tænkte om det var InsertItem der havde et problem, men MS' dokumentation er ikke så god på dette punkt.
Avatar billede jpk Nybegynder
31. juli 2002 - 15:39 #7
Bliver kolonnerne oprettet?
Har du prøvet at debugge for at se om koden overhpvedet udføres?
Avatar billede ladyhawke Novice
31. juli 2002 - 16:50 #8
Kolonnerne bliver oprettet og sat til den rigtige bredde og den rigtige tekst og hvis jeg bruger dit eksempel kommer der tekst/tal i felterne...
Avatar billede ladyhawke Novice
02. august 2002 - 07:45 #9
I got it! Der var nogle problemer med overførslen af data til løkken (de blev af en eller anden grund overskrevet til en tom vector lige inden denne løkke). Jeg har også fundet ud af hvordan tildelingen af felter foregår.

jpk >> Tak for hjælpen :-)
Avatar billede ladyhawke Novice
02. august 2002 - 07:46 #10
NB kan du ikke lige lave et svar? Dine kommentarer var konstruktive og indgik i div. tests :-)
Avatar billede ladyhawke Novice
02. august 2002 - 11:22 #11
jpk >> hvis du vil have point kan du lige sige til, så laver jeg et spørgsmål til dig :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester