IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Mettre une image dans un SubItem (listview)


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    162
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 162
    Par d�faut Mettre une image dans un SubItem (listview)
    Bonjours � tous !
    Mon probl�me est le suivant : je souhaite afficher une image dans la seconde colonne d' un TListview.

    J'ai un bout de code qui permet d'affecter une liste d'image � mon TListView, mais l'image apparait que dans la premi�re colonne.
    J'ai cherch� avec la fonction SubItemImages, mais sans grand r�sultat
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Drapeau = new TImageList(this);
     Graphics::TBitmap *MultiBitmaps[4];                            //declaration de 4 images
     MultiBitmaps[0] = new Graphics::TBitmap;
     
     ListView1->SmallImages= Drapeau;                        //affect la liste d'image au ListView
           	MultiBitmaps[0]->LoadFromFile("France.bmp");
    	Drapeau->Width = MultiBitmaps[0]->Width;
    	Drapeau->Height = MultiBitmaps[0]->Height;
            Drapeau->Add(MultiBitmaps[0],NULL);

  2. #2
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Responsable de compte
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par d�faut
    Hello
    il me semblerait que cela � l'air plus compliqu� que pour la colonne1
    sans garantie regarder du c�t� de:
    http://docwiki.embarcadero.com/Libra...tomDrawSubItem
    cdlt
    vous trouverez mes tutoriels � l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les r�gles du forum

  3. #3
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut
    Salut Hellgast
    tire de l'aide en ligne BCB6
    TCustomListView::SmallImages
    Propose une liste d'ic�nes pouvant �tre affich�es � c�t� de chaque �l�ment de la liste quand ViewStyle n'a pas la valeur vsIcon.
    __property Imglist::TCustomImageList* SmallImages = {read=FSmallImages, write=SetSmallImages};
    Description
    D�finissez la propri�t� SmallImages pour sp�cifier les bitmaps devant �tre affich�s � c�t� des �l�ments de la liste quand ViewStyle a la valeur vsSmallIcon, vsList ou vsReport. Chaque �l�ment de la liste Items peut �tre associ� � un bitmap de cette liste d'images en affectant sa propri�t� ImageIndex.
    //=====================
    Cet exemple n�cessite un TListView, un TImageList et un TComboBox. Vous devez double-cliquer dans la liste d'images et ajouter quelques images � la liste avant d'ex�cuter le projet. Vous pouvez utiliser les fichiers *.bmp ou *.ico du r�pertoire \Images\Icons.
    Dans le gestionnaire d'�v�nement OnCreate de la fiche, des �l�ments sont cr��s dans le contr�le ListView pour chaque image de la liste d'images et le num�ro de l'image dans ImageList est affect� � ImageIndex. Deux colonnes sont cr��es pour que des colonnes soient affich�es quand ViewStyle a le style vsReport.
    Egalement dans le gestionnaire d'�v�nement OnCreate, affectez au ComboBox chacune des quatre constantes TViewStyle � la propri�t� Objects des �l�ments. Vous pouvez aussi simplement coder ceci, par exemple dans une s�rie de gestionnaires d'�v�nement OnClick comme, par exemple, ListView1->ViewStyle = vsIcon.
    le code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
      TListItem *pItem;
      TListColumn *pColumn;
      // Crée un élément de ListView pour chaque image dans ImageList
      ListView1->SmallImages = ImageList1;
      ListView1->LargeImages = ImageList1;
      for (int i = 0; i < ImageList1->Count; i++)
      {
        pItem = ListView1->Items->Add();
        pItem->Caption = "Image" + IntToStr(i);
        pItem->ImageIndex = i;
      }
      // Crée deux colonnes pour l'affichage en mode vsReport
      pColumn = ListView1->Columns->Add();
      pColumn->Caption = "Column 1";
      pColumn = ListView1->Columns->Add();
      pColumn->Caption = "Column 2";
      // Ajoute les styles de visualisation et les constantes à la boîte à options
      ComboBox1->Items->AddObject("vsIcon", (TObject *)vsIcon);
      ComboBox1->Items->AddObject("vsList", (TObject *)vsList);
      ComboBox1->Items->AddObject("vsReport", (TObject *)vsReport);
      ComboBox1->Items->AddObject("vsSmallIcon", (TObject *)vsSmallIcon);
      // Affiche le premier élément dans la boîte à options
      ComboBox1->ItemIndex = 0;
    }
    void __fastcall TForm1::ComboBox1Click(TObject *Sender)
    {
      ListView1->ViewStyle = (TViewStyle) ComboBox1->Items->Objects[ComboBox1->ItemIndex];
    }

  4. #4
    Expert �minent
    Avatar de ShaiLeTroll
    Homme Profil pro
    D�veloppeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur C++\Delphi
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par d�faut
    pour compl�ter la r�ponse de blondelle !

    Uniquement pour le vsReport !

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
      // Crée trois colonnes pour l'affichage en mode vsReport
      pColumn = ListView1->Columns->Add();
      pColumn->Caption = "Column 1";
      pColumn = ListView1->Columns->Add();
      pColumn->Caption = "Column 2";
      pColumn = ListView1->Columns->Add();
      pColumn->Caption = "Column 3";
     
      for (int i = 0; i < ImageList1->Count; i++)
      {
        pItem = ListView1->Items->Add();
        pItem->Caption = "Image" + IntToStr(i);
        pItem->ImageIndex = i;
        pItem->SubItems->Add("2." + IntToStr(i));
        pItem->SubItems->SubItemImages[0] = (i+1) % ImageList1->Count; 
        pItem->SubItems->Add("3." + IntToStr(i));
        pItem->SubItems->SubItemImages[1] = (i+2) % ImageList1->Count; 
      }
    Aide via F1 - FAQ - Guide du d�veloppeur Delphi devant un probl�me - Pensez-y !
    Attention Troll M�chant !
    "Quand un homme a faim, mieux vaut lui apprendre � p�cher que de lui donner un poisson" Confucius
    Mieux vaut se taire et para�tre idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la m�diocrit� !

    L'exp�rience, c'est le nom que chacun donne � ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut
    chez moi cela fonctionne en vsReport et vsSmallicon, il ne faut pas oublier de mettre dans SmallImage ImageList1 sinon les images ne s'affichent pas

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    162
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 162
    Par d�faut
    Merci a vous

    J'ai r�ussi a trouv� la r�ponse avec un exemple en Delphi que j'ai essayer d'adapter en c++ [ici],
    juste avant avoir vu le message de ShaiLeTroll


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    TListItem *Item =ListView1->Items->Add();
    Item->SubItemImages[0]=0;
    SubItemImages[0] =>> correspond � la colonne
    et = 0 =>> correspond � l'index de l'image enregistr�e dans TimageList (associ� � notre TListView)

  7. #7
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Responsable de compte
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par d�faut
    Hello
    un code l�gerement diff�rent affichant des immages sur 3 colonne (� la une)
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
      TListItem *pItem;
      TListColumn *pColumn;
      const int nCol=4;
       ListView1->ViewStyle = vsReport;
       ListView1->SmallImages = ImageList1;
       for(int n=0;n<nCol;n++)
       {
    	pColumn=ListView1->Columns->Add();
    	pColumn->Caption= "Column " + IntToStr(n);
       }
     
      // Crée un élément de ListView pour chaque image dans ImageList
     
      for (int i = 0; i < ImageList1->Count; i++)
      {
    	pItem = ListView1->Items->Add();
    	pItem->Caption = "Image" + IntToStr(i);
    	pItem->ImageIndex = i;
    	pItem->SubItems->Add("1." + IntToStr(i));
    	pItem->SubItemImages[0] = (i+1) % ImageList1->Count;
    	pItem->SubItems->Add("2." + IntToStr(i));
    	pItem->SubItemImages[1] = (i+1) % ImageList1->Count;
    	pItem->SubItems->Add("3." + IntToStr(i));
    	pItem->SubItemImages[2] = (i+1) % ImageList1->Count;
      }
    cdlt
    vous trouverez mes tutoriels � l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les r�gles du forum

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 0
    Dernier message: 07/09/2013, 00h12
  2. Mettre une Image dans une Image
    Par shadowhocine dans le forum SWT/JFace
    R�ponses: 2
    Dernier message: 19/12/2006, 18h40
  3. [JPanel]Mettre une image dans un JPanel
    Par ehmppowa dans le forum Composants
    R�ponses: 11
    Dernier message: 30/11/2005, 20h17
  4. [css](debutant) mettre une image dans un bandeau
    Par tuxrouge dans le forum Mise en page CSS
    R�ponses: 4
    Dernier message: 07/09/2005, 14h38
  5. Peut on mettre une image dans une BD MySQL ?
    Par maddog2032 dans le forum SQL Proc�dural
    R�ponses: 3
    Dernier message: 25/07/2003, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo