ListView Items pushen?



  • wie kann ich die items einer listview die das imageindex 23 haben, nach oben (top) pushen?



  • also das mit dem "ist index == 23" und so, regle ich dann schon. aber allgemein: wie haut man ein item nach oben(top) ?



  • Ev. so:

    int Moved=0;
      for (i=ListView->Items->Count-1;i>=0;i--)
      {
        if (ListView->Items->Item[i]->ImageIndex==23)
        {  
          ListItem=ShowList->Items->Insert(0);
          ListItem->Caption=ShowList->Items->Item[i+1]->Caption;
          for (int j=0;j<ShowList->Items->Item[i+1]->SubItems->Count;j++)
          {
            ListItem->SubItems->Add(ShowList->Items->Item[i+1]->SubItems->Strings[j]);
          }
          ShowList->Items->Item[i+1]->Delete();
          Moved++;
        }
        if (i<=Moved)
          break;
      }
    


  • naja danke aber gibts da nicht eine "feinere" lösung?



  • ListView1->Items->Insert(0)->Assign(ListView1->Items->Item[ItemIndex + 1]);
      ListView1->Items->Delete(ItemIndex + 1);
    

    Ist allerdings auch nicht gerade "fein". 😉



  • Original erstellt von <Freddy>:
    naja danke aber gibts da nicht eine "feinere" lösung?

    Gibt's:

    TListView->ItemMove(int OldIndex, int NewIndex);//verschiebt Item mit OldIndex nach Stelle NewIndex!

    Problem: Das< gibt's nicht!
    Lösung:

    Du machst ne neue Kompo von TListView (Name = TMyListView)
    mach 'ne public Funktion ItemMove
    Pack da Jansens Code rein

    Benutze die neue Klasse / Komponente

    Voila, als waer's schon immer so einfach! Und ist eleganter!


Anmelden zum Antworten