Tchecklistbox et l'écriture dans les colonnes [DELPHI] - Delphi/Pascal - Programmation
Marsh Posté le 27-03-2002 à 22:36:06
Où tu vois multi-colonnes ??? 
A mon avis que les checks et le texte mais pas 1 colonne de +... 
Marsh Posté le 27-03-2002 à 22:46:05
| [SDF]Poire a écrit a écrit  : Où tu vois multi-colonnes ??? A mon avis que les checks et le texte mais pas 1 colonne de +... | 
 
Les boîtes liste multicolonnes ont une barre de défilement horizontale qui permet à l'utilisateur de visualiser les colonnes. La valeur par défaut de la propriété Columns est 0, ce qui signifie que la boîte liste n'a qu'une seule colonne. Les utilisateurs ne peuvent alors faire défiler la liste que verticalement. 
Marsh Posté le 27-03-2002 à 22:53:51
Ce sont des colonnes pour la remplir horizontalement au lieu de verticalement. 
Si tu veux réellement gérer plusieurs colonnes tu dois utiliser la listview. 
Chaque item a une propriété Caption (colonne 1) et Subitems (colonne 2 et +) 
  
 
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
Marsh Posté le 28-03-2002 à 12:23:57
 j'y arrive pas du tous à écrire qq chose dans la tview quand je clique sur un bouton ça ouvre une opendialog je reprend le filename mais après pour le mettre en suivant ce que tu m'as dis marche pas
 j'y arrive pas du tous à écrire qq chose dans la tview quand je clique sur un bouton ça ouvre une opendialog je reprend le filename mais après pour le mettre en suivant ce que tu m'as dis marche pas   
   
 
Marsh Posté le 28-03-2002 à 12:24:43
Montre le code que tu as fait pour mettre les éléments dans la liste...
Marsh Posté le 28-03-2002 à 12:30:16
| antp a écrit a écrit  : Montre le code que tu as fait pour mettre les éléments dans la liste... | 
 
opendialog1.Execute; 
filename:=opendialog1.filename; 
listview1.items.caption:=filename; 
 
j'ai essayé pas mal de façon mais rien y fait là le caption n'est pas reconnu 
Marsh Posté le 28-03-2002 à 12:41:02
Ouais  
 
 
Bon, pour chaque élément (ligne) que tu veux dans la TListView, il faut explicitement ajouter cet élément. 
Exemple: 
 
| Code : 
 | 
 
 
- ajout d'un item dans la ListView 
- le caption (colonne 1) de l'item prend le nom du répertoire choisi (OpenDialog1.FileName, raccourci à FileName vu qu'on est dans un "with" ) 
- le Subitems.Strings[0] (colonne 2) de l'item prend le nom du fichier sans le répertoire. On passe par le add parce que Strings[0] n'existe pas encore. Pour le modifier par après il faudra passer par Subitems.Strings[0] 
 
 
Exemple pour la modif de la seconde colonne du premier élément de la liste: 
 
ListView1.Items.Item[0].Subitems.Strings[0] := 'autre chose'; 
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
Marsh Posté le 28-03-2002 à 14:00:07
bon alors j'ai testé en suivant ton exemple le extractpath s'affiche mais pas le filename   quand je rappuis sur le bouton ça me le met sur la même ligne
 quand je rappuis sur le bouton ça me le met sur la même ligne   
  
Merci 
Marsh Posté le 28-03-2002 à 14:01:22
T'aurais pas par hasard oublié de mettre la listview en mode Style := vsReport et de définir au moins deux colonnes ? 
 
Et pour le coup de quand tu recliques, tu es sûr que tu as bien recopié le source ?  
 
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
Marsh Posté le 28-03-2002 à 14:52:39
j'ai mis une case a cocher un bouton delete pour supprimer le fichier ok mais ça fais pas toute la ligne je veux qu'on ne voit plus rien 
 
Au faite c'est un programme qui compresse en mp3 et ogg vorbis 
pour que tu saches à quoi tu contribues   
 
Marsh Posté le 28-03-2002 à 15:57:48
Pour virer une ligne, chaque item[] a une méthode Delete je pense.
Marsh Posté le 28-03-2002 à 18:19:54
nickel je viens de faire si c'est checked ça delete   
  
Merci   
 
Marsh Posté le 30-03-2002 à 16:52:50
merde ça bug   
  
le pb est que s'il le prog delete la première ligne coché la deuxième prend la place de la première donc ça marche pour la dernière ligne et la première ligne dès que je veux faire une au milieu beau plantage 
Marsh Posté le 30-03-2002 à 17:02:41
Envoie un morceau de code source parce que là j'ai rien pigé  
 
Marsh Posté le 30-03-2002 à 17:04:34
| antp a écrit a écrit  : Envoie un morceau de code source parce que là j'ai rien pigé   | 
 
ok voila 
If listview1.items.count>0 then 
     begin 
     for i:=0 to (listview1.Items.count-1) do 
     begin 
         If listview1.items[0].Checked 
          then 
            begin 
              listview1.items[0].Delete; 
               
            end 
         else 
          begin 
           if listview1.Items[i].Checked 
             then 
               begin 
                 listview1.Items[i].Delete; 
                  
               end; 
          end; 
     end; 
     end; 
donc en faite je crois avoir trouver il faudrait enlever 1 à I 
donc i:=i-1; mais ça il veut pas le faire dans une boucle for 
Marsh Posté le 30-03-2002 à 17:12:08
| Code : 
 | 
 
 
Si tu commences par les premiers items, ça crashe parce que quand tu arrives à la fin il y a moins d'items que ce qu'il y avait au début... Donc là on commence par la fin. Et dans ce genre de choses l'opérateur "with" est pratique: ça allège le code et ça l'optimise (le programme ne doit pas à chaque fois aller rechercher l'adresse de ListView1.Items) 
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
Marsh Posté le 30-03-2002 à 17:15:54
| antp a écrit a écrit  : 
    | 
 
ça marche terrible pas mal de plaçés le with la dedans ça fait bcp moins bordelique comme code 
merci je vais pouvoir continuer ce projet 
  
 
Marsh Posté le 27-03-2002 à 22:28:10
je voudrais mettre le texte dans la deuxième colonne
dans la première colonne pas de pb mais les autres colonnes là je bloque pourtant j'ai matté l'aide il parle bien de multicolonne mais pas comment faire
un exemple serait le bienvenue
merci