Remplir Treeview et colonnes borland c++ builder 6.0

[Résolu]
Signaler
Messages postés
34
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
3 janvier 2007
-
Messages postés
5
Date d'inscription
samedi 25 novembre 2006
Statut
Membre
Dernière intervention
10 mai 2008
-
bonjour. Sous borland c++ builder 6.0, j'ai un treeview dans lequel j'ai mis 2 colonnes. Mon problème est que je n'arrive pas à remplir les lignes de mes colones (avec un ansistring par exemple). je ne sais pas quelle méthode utiliser et comment l'utiliser.
merci

13 réponses

Messages postés
111
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
5 août 2011
1
Salut,

TListItem *ListIt;

ListIt = ListView->Items->Add();
ListIt->Caption = "Toto";  // Affichage 1er colonne
ListIt->SubItems->Add("0") // Affichage colonne suivante
ListIt->SubItems->Add("+")
ListIt->SubItems->Add("0")
Messages postés
111
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
5 août 2011
1
Pour effacer : ListView->Clear()

Le code suivant ser à trier les colonnes.

//---------------------------------------------------------------------------
//      Sélection de la colonne ListView1 à trier
//---------------------------------------------------------------------------
void __fastcall TForm1::ListView1ColumnClick(TObject *Sender,TListColumn *Column)
{
        if(numCol==Column->Index)
        {
          if(cclick==1) cclick = 0;     // Trie décroissant
          else          cclick = 1;     // Trie croissant
        }
        numCol = Column->Index;


        ListView1->CustomSort(CustomSortProc,cclick);
}


//---------------------------------------------------------------------------
//      Mise à jour ListView1 - Trie des infos du Rep sélectionné
//---------------------------------------------------------------------------
int __stdcall CustomSortProc(long Item1, long Item2, long ParamSort)
{
        String n1;
        String n2;
        unsigned long long val1;
        unsigned long long val2;
        TListItem *i1,*i2;


        i1=(TListItem*)Item1;
        i2=(TListItem*)Item2;


        switch(numCol)
        {
          // trie sur nom de l'entrée
          case 0 : n1 = i1->Caption.LowerCase();
                   n2 = i2->Caption.LowerCase();
                   break;
          // trie sur le type de l'entrée plus nom de l'entrée
          case 1 : n1 = i1->SubItems->Strings[numCol-1]+i1->Caption.LowerCase();
                   n2 = i2->SubItems->Strings[numCol-1]+i2->Caption.LowerCase();
                   break;
          // trie sur L'ID
          case 2 : val1 = atol(i1->SubItems->Strings[numCol-1].c_str());
                   n1.sprintf("%09ul",val1);
                   val2 = atol(i2->SubItems->Strings[numCol-1].c_str());
                   n2.sprintf("%09ul",val2);
                   break;
          // trie sur la taille
          case 3 : val1 = atol(i1->SubItems->Strings[numCol-1].c_str());
                   n1.sprintf("%09ul",val1);
                   val2 = atol(i2->SubItems->Strings[numCol-1].c_str());
                   n2.sprintf("%09ul",val2);
                   break;
        }


        if (n1==n2) return 0;
        if (ParamSort)
        {
          if(n1>n2) return 1;
          if (n1<n2) return -1;
        }
        else
        {
          if(n1>n2) return -1;
          if (n1<n2) return 1;
        }
        return 0;
}


 
Messages postés
111
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
5 août 2011
1
Salut,

Pour ajouter des images, il faut ajouter à ton projet un objet TImageList puis l'associer à ton ListView. Ensuite lorsque tu rempli ton ListView ajoute ListView->ImageIndex = x // valeur de l'image du TImageList.
Messages postés
34
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
3 janvier 2007

Desolé, je me suis trompé, il s'agit en fait d'une Listview et non d'un Treeview donc il faut lire :
Remplir Listview et colonnes borland c++ builder 6.0

bonjour. Sous borland c++ builder 6.0, j'ai une listview dans lequel j'ai mis 2 colonnes. Mon problème est que je n'arrive pas à remplir les lignes de mes colones (avec un ansistring par exemple). je ne sais pas quelle méthode utiliser et comment l'utiliser.
merci
Messages postés
34
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
3 janvier 2007

merci beaucoup. C'est en effet comme a qu'il faut faire.
Messages postés
34
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
3 janvier 2007

j'en profite pour poser 2 autres questions. Comment fait-on pour trier les éléments d'une colonne ? et comment effacer la listview(éléments des deux colonnes) ?
merci
Messages postés
34
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
3 janvier 2007

Bonsoir. J'ai des problèmes de compil avec ton code. Ca a l'air d'être lors de la déclaration de int __stdcall CustomSortProc ; je ne sais pas où et comment la déclarer.
Et de même pour la variable numCol...
merci de ton aide
Messages postés
111
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
5 août 2011
1
Salut,

La variable numCol,cclick et la fonction int __stdcall CustomSortProc sont déclaré  au début du fichier en global comme suit:


int __stdcall CustomSortProc(long Item1,long Item2,long ParamSort);
int numCol = 1;
int cclick = 1;
Messages postés
34
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
3 janvier 2007

Super, merci, tout fonctionne parfaitement !!!
Un grand merci et puisque tu es calé, je vais abuser encore une fois de tes connaissances pour savoir comment récuperer le caption l'item sélectionné dans la listeview (celui de la 1ère colonne)?
Messages postés
34
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
3 janvier 2007

Euhhh, désolé mais je viens de trouver : ListView->Selected->Caption
merci et à bientôt
Messages postés
34
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
3 janvier 2007

re? Sais-tu comment insérer une petite image à coté de chaque item des lignes de la 1ère colonne. j'inscris en fait dans cette colonne le contenu d'un répertoire. Je voudrais donc mettre une petite image de répertoire quand c'est un repertoire et une petite image de fichierquand c'est un fichier, comme sous l'explorateur.
Messages postés
34
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
3 janvier 2007

salut et bonne année à tous.
J'ai une listview remplie d'un nombre d'item faisant aparaître la scrollbar.Comment faire avec un drag and drop pour faire défiler la liste lorsqu'on déplace l'item selectionné vers le haut ou le bas de la liste?
merci
toujours borland c++ builder 6.0
Messages postés
5
Date d'inscription
samedi 25 novembre 2006
Statut
Membre
Dernière intervention
10 mai 2008

Bonjour,
j'ai besoin d1 aide,il me faut faire une interface graphique avec
borland c++builder 6.0 cette interface a pour but de visualiser
l'analyse des méthodes d'apprentissage à base du noyau (toolbox)pour
différentes méthodes d'apprentissage et différents paramètres de
régularisation pour l'estimation de taux d'erreur(la performance),en
utilisant aussi des histogrammes comme des résultats de comparaison et
à l'aide du module base de donnée on devra créer une petite base de
donnée pour organiser les méthodes les corpus utilisés et la relation
expérimentation ki relie les deux tables précedantes et ça juste pour
acheminer les résultat de l'apprentissage et du test ,donc j'aimerai
bien avoir votre aide (des exemples d'interfaces ki sont déja traitées
ds ce domaine)voici mon email :pour_servir@hotmail.fr;j'attends vos
réponses

tout le temps........