[DELPHI] Tchecklistbox et l'écriture dans les colonnes

Tchecklistbox et l'écriture dans les colonnes [DELPHI] - Delphi/Pascal - Programmation

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

Reply

Marsh Posté le 27-03-2002 à 22:28:10   

Reply

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 +...


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

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.

Reply

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 +)
 http://ibelgique.ifrance.com/antp/_images/checklist.png

 

[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 27-03-2002 à 23:12:21    

Merci bcp  :jap:

Reply

Marsh Posté le 28-03-2002 à 12:23:57    

:cry: 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  :cry:  :cry:

Reply

Marsh Posté le 28-03-2002 à 12:24:43    

Montre le code que tu as fait pour mettre les éléments dans la liste...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

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

Reply

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 :
  1. begin
  2.   with OpenDialog1 do
  3.     if Execute then
  4.       with ListView1.Items.Add do
  5.       begin
  6.         Caption := ExtractFilePath(FileName);
  7.         Subitems.Add(ExtractFileName(FileName));
  8.       end;
  9. end;


 
- 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]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

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  :crazy: quand je rappuis sur le bouton ça me le met sur la même ligne  :pt1cable:  
Merci

Reply

Marsh Posté le 28-03-2002 à 14:00:07   

Reply

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]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 28-03-2002 à 14:26:07    

bingo  :)

Reply

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  ;)

Reply

Marsh Posté le 28-03-2002 à 15:57:48    

Pour virer une ligne, chaque item[] a une méthode Delete je pense.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 28-03-2002 à 18:19:54    

nickel je viens de faire si c'est checked ça delete  :)  
Merci  :jap:

Reply

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

Reply

Marsh Posté le 30-03-2002 à 17:02:41    

Envoie un morceau de code source parce que là j'ai rien pigé :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

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é :D  




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

Reply

Marsh Posté le 30-03-2002 à 17:12:08    

Code :
  1. var
  2.   i: Integer;
  3. begin
  4.   with ListView1.Items do
  5.     for i := Count-1 downto 0 do
  6.       if Item[i].Checked then
  7.         Item[i].Delete;
  8. end;


 
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]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-03-2002 à 17:15:54    

antp a écrit a écrit :

Code :
  1. var
  2.   i: Integer;
  3. begin
  4.   with ListView1.Items do
  5.     for i := Count-1 downto 0 do
  6.       if Item[i].Checked then
  7.         Item[i].Delete;
  8. end;

 




ç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
 :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed