Imaglist in ListView und TImage ausgeben



  • Hallo,

    ich ahbe folgendes Problem,

    ich ahbe in einem listView alle Eintrage der ImageList anzeigen lassen, wird ein element der listView ausgewählt, so wird es im Image vergrößert dargestellt.

    Dazu steht folgender Code

    if(ListView1->Selected!=NULL)
     {
      Image1->Update();
      Form2->ImageList1->GetBitmap(ListView1->Selected->Index,Image1->Picture->Bitmap);
     }
    

    folgende Problem steht nun, wenn man die selektion auf ein anderes Bild setzt (angenommen vorher index 0 nun index 2) wird das neue bild nicht im Image angezeigt, obwohl sich nachweißlich der Index ändert.

    Mit Update() funktionierte s auch nicht.

    Was musss ichd a nun amchen.

    ciao

    [ Dieser Beitrag wurde am 05.07.2003 um 21:47 Uhr von Jansen editiert. ]



  • setz das Update() doch erst nach dem Bitmap-Wechsel ab. Vorher bringts ja auch nix, weil Du ja nicht das alte Bild neu zeichnen willst, sondern das neue.



  • Hallo nochmal,

    also ich ahbe das Update() nach der eigentlichen Funktion aufgerufen, geht leider auch nicht.

    Es bleibt immer das erste Bild als Image stehen, kann man eigentlich das Image auch löschen.

    Angenommen ich mache einen button "Image löschen", und damit kann ich ja das Image wieder zurücksetzten, aber wie????

    if(ListView1->Selected!=NULL)
     {
      Form2->ImageList1->GetBitmap(ListView1->Selected->Index,Image1->Picture->Bitmap);
      Image1->Update();
     }
    


  • Probier's mal so!

    Graphics::TBitmap *BM=new Graphics::TBitmap;
      ImageList1->GetBitmap(ListView1->Selected->Index,BM);
      Image1->Picture->Assign(BM);
      delete BM;
    


  • hallo,

    ich vermute, das du die anzeige in einem TImage vornimmst, dieses TImage solltest du immer löschen vor dem neuanzeigen eines Bildes in etwa so:

    Image1->Picture->Graphic = NULL;

    erst nach diesem löschen das neue bild laden:

    if(ListView1->Selected!=NULL)
     {
      Image1->Update();
      Image1->Picture->Graphic = NULL;
      Form2->ImageList1->GetBitmap(ListView1->Selected->Index,Image1->Picture->Bitmap);
     }
    

    so müßte es gehen!

    mfg
    murph


Anmelden zum Antworten