18. januar 2006 - 22:23Der er
13 kommentarer og 1 løsning
Skjult info til items i ListBox
Har C++ Builder en egenskab, der kan gemme ekstra data for hvert item i en almindelig ListBox? Jeg vil gerne have tilknyttet et id (der ikke skal vises) til hvert item. Og det skulle gerne stadig være tilknyttet, selvom listen fx sorteres.
Måske du lige kan sige mig en sidste ting. Det gav nemlig nogle problemer med flytning af data fra en TStringList til ListBoxen. Hvordan løber jeg TStringListen i gennem og får fat i hver enkelt String?
Hvis du har: TStringList* StringList = new TStringList;
Kan du putte dem over i ListBox'en med: int idx; for(idx = 0; idx < StringList->Count; idx++) { ListBox1->Items->AddObject(StringList->Strings[idx], new MyData(idx)); }
Når jeg gemmer indholdet af TStringListen i en tekstfil og indlæser sidstnævnte i en ny TStringListe ved programopstart, kommer der binære tegn med, og der bliver tilsyneladende termineret nogle underlige steder. Det sker først anden gang, det indlæses, og herefter bliver data mere og mere ødelagte. Jeg har lagt mærke til, at der kommer en tom linie i enden af filen.
Jeg vil dog gerne vide, hvordan man tildeler en enkelt række i en list box en anden baggrundsfarve og/eller tekstfarve. Er det noget, du hurtigt kan svare på, eller skal jeg oprette en ny tråd?
Langt svar: Jeg er på ingen måder ekspert i BCB, men standard windows har så vidt jeg ved ikke nogen feature til dette, og jeg tvivler lidt på at Borland har lavet det til BCB. Det kan også afhænge af om det er BCB 5.0 eller 6.0. Hvis jeg skulle lave det med Win32Api ville jeg lave en listbox som man selv skulle tegne, jeg ved ikke hvordan man gør med BCB.
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.