ListView Item kopieren
-
Hallo !
Ich möchte in einem ListView Objekt(View Style = fsReport) ein vorhandenes Item (Caption)komplett mit SubItems an einer andere Stelle zusätzlich einfügen. Wollte aber nicht Insert benutzen und dann alle SubItems einzeln abfragen und dann zum neuen Eintrag hinzufügen.
Habe schonTCustomListControl::CopySelectionoder
ListView->Items->AddItem(ListView->Selected,ListView->Items->Count);probiert, bekomme da aber nur einen nicht sichtbaren Eintrag (also leeren Eintrag), der wahrscheinlich nur eine Referenz auf das zu kopierende Item darstellt. Kann ich das irgendwie anders lösen ?
Danke
-
Brechstangenmethode:
(Die aber in 99,9% der Fälle auch korrekt funktionieren wird)int new_pos=0; if(ListView1->Selected) ListView1->Items->Insert(new_pos)->Assign(ListView1->Selected);Schönere Methode:
int new_pos=0; if(ListView1->Selected) { TListItem* new_item=ListView1->Items->Insert(new_pos); if(new_item) new_item->Assign(ListView1->Selected); new_item=NULL; }
-
Danke werd ich probieren.
Muß ichnew_item=NULL;auf NULL setzen ?
-
Hallo
Im gezeigten Code nicht. Wenn du das new_item auch noch nach der gezeigten Erstellung weiterverwenden willst darfst du sogar nicht auf NULL setzen (dazu muß natürlich die Deklaration aus dem if-scope verlagert werden).
bis bald
akari
-
Nein musst du nicht.
Ich habs mir nur angewöhnt Pointer die ich nicht mehr brauche auf NULL zu setzen.