begin process at 2010 03 21 19:35:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

J'AI BESOIN D'AIDE !!!! :O

 > 

ajouter un élément dans un listview - vsReport ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ajouter un élément dans un listview - vsReport ?

samedi 18 février 2006 à 23:38:40 | ajouter un élément dans un listview - vsReport ?

picot56

Bonjour !

Je cache pas que je susis débutant sur delphi. Mais jai un soucis pour ajouter des éléments dans ma ListView. Sachant que ma liste view est a deux colonne, la première 'Nom' et la seconde 'Taille. De ce fait je sais pas comment me baladé la dedans !
Si vous pouviez me venir en aide !
Je vous remerci par avance !

Bonne nuit !
dimanche 19 février 2006 à 02:14:24 | Re : ajouter un élément dans un listview - vsReport ?

cirec

Membre Club Administrateur CodeS-SourceS


Salut,
Voici un bout de code que j'ai fait il n'y a pas longtemps :

Tu mets deux ImageList que tu nomes SmallImageList et LargeImageList et tu leurs affectes respectivement 
Width := 16; High := 16;  et Width := 32; High := 32; le tout par l'inspecteur d'objets
un ListView   ListView1 et toujours par l'inspecteur d'objets tu affectes les propiétées :
SmallIcon := SmallImageList
LargeIcon := LargeImageList
tu mets trois colones une Nom  une Type et une Chemin
et un Button  Button1

et il te faut aussi ajouter dans la clause Uses de ta Form l'unité shellapi
et dans la procédure OnClick du Bouton tu écris ceci :

procedure TForm1.Button1Click(Sender: TObject);
Var
  Icon              : TIcon;
  sr                : TSearchRec;
  Location          : String;
  Buffer            : array[0..512] of Char;
  ListItem          : TListItem;
  FileInfo          : SHFILEINFO;
  oldCursor         : TCursor;

Begin
  ListView1.Items.Clear;  //efface les listes
  LargeImageList.Clear;
  SmallImageList.Clear;
  OldCursor := Screen.Cursor;  // mémorise le curseur
  Screen.CurSor := crHourGlass;  // affiche le sablier
  Icon := TIcon.Create;  // création d'une Icône
  SetString(Location, Buffer, GetSystemDirectory(Buffer, SizeOf(Buffer))); // récupère le nom du répertoire système
  Location := IncludeTrailingPathDelimiter(Location);  // on lui ajoute un BackSlash  " \ "
  Try
    ListView1.Items.BeginUpdate;  // début de mise à jour
    If FindFirst(Location + '*.scr', faAnyFile, sr) = 0 Then  // trouve le premier fichier
        Repeat
          ListItem := ListView1.items.add;  // prépare l'ajout
          SHGetFileInfo(PChar(Location + SR.Name), 0, FileInfo,
            SizeOf(FileInfo), SHGFI_TYPENAME Or
            SHGFI_ICON);  // recherche d'infos supplémentaires sur le fichier

          Listitem.Caption := SR.Name;    // ajoute le nom    
          ListItem.SubItems.Add(FileInfo.szTypeName); // le type
          ListItem.SubItems.Add(Location);  // le chemin
          Icon.handle := FileInfo.hIcon;  // affecte L'icone

          LargeImageList.AddIcon(Icon); // ajoute à SmallImageList
          SmallImageList.AddIcon(Icon);  // et à LargeImageList
          ListItem.ImageIndex := LargeImageList.Count - 1; // mise à jour de l'index

        Until FindNext(sr) <> 0;  // chercher le fichier suivant
    FindClose(sr);   // si il n'y en a pas on ferme la recherche
 Finally
    ListView1.Items.EndUpdate;  // fin de mise à jour
    Icon.Free;  // on libère l'icone que l'on a crée
    Screen.Cursor := OldCursor;  // et rétablie le curseur d'origine
  End;
End;

Alors pourquoi deux ImageListe eh bien une pour mode vsIcone (Large) et une pour le mode vsReport (Small)

@+
Cirec


Ne pas oublier de cliquer sur Réponse Acceptée si elle vous convient

dimanche 19 février 2006 à 14:50:52 | Re : ajouter un élément dans un listview - vsReport ?

picot56


Merci beaucoup Cirec ... je suis en tain d'étudier tno code mais j'ai une erreur avec la varaible Buffer : [Error] Unit1.pas(34): Invalid compiler directive: 'Buffer' !

Et je ne sais pas de koi ça peu venir, si tu pouvais éclairer ma lanterne ...

Merci à toi !
dimanche 19 février 2006 à 15:12:21 | Re : ajouter un élément dans un listview - vsReport ?

cirec

Membre Club Administrateur CodeS-SourceS
Salut,
sur quel ligne exactement se produit l'erreur ?
as-tu bien tout recopier ?
parce que j'ai fait le teste sous D4 et D9 et ça fonctionne très bien
et pour finir quel verdion de delphi utilises-tu ?

@+
Cirec
dimanche 19 février 2006 à 20:09:58 | Re : ajouter un élément dans un listview - vsReport ?

picot56

J'utilise Delphi 7 Enterprise et mon erreur :

procedure TForm1.Button1Click(Sender: TObject);
Var
  Icon              : TIcon;
  sr                : TSearchRec;
  Location          : String;
  Buffer            : array[0..512] of Char;  //Bug : [Error] Unit1.pas(34): Invalid compiler directive: 'Buffer'
  ListItem          : TListItem;
  FileInfo          : SHFILEINFO;
  oldCursor         : TCursor;

Begin
  ListView1.Items.Clear;  //efface les listes
  LargeImageList.Clear;
  SmallImageList.Clear;
  OldCursor := Screen.Cursor;  // mémorise le curseur
  Screen.CurSor := crHourGlass;  // affiche le sablier
  Icon := TIcon.Create;  // création d'une Icône
  SetString(Location, Buffer, GetSystemDirectory(Buffer, SizeOf(Buffer))); // récupère le nom du répertoire système
  Location := IncludeTrailingPathDelimiter(Location);  // on lui ajoute un BackSlash  " \ "
  Try
    ListView1.Items.BeginUpdate;  // début de mise à jour
    If FindFirst(Location + '*.scr', faAnyFile, sr) = 0 Then  // trouve le premier fichier
        Repeat
          ListItem := ListView1.items.add;  // prépare l'ajout
          SHGetFileInfo(PChar(Location + SR.Name), 0, FileInfo,
            SizeOf(FileInfo), SHGFI_TYPENAME Or
            SHGFI_ICON);  // recherche d'infos supplémentaires sur le fichier

          Listitem.Caption := SR.Name;    // ajoute le nom    
          ListItem.SubItems.Add(FileInfo.szTypeName); // le type
          ListItem.SubItems.Add(Location);  // le chemin
          Icon.handle := FileInfo.hIcon;  // affecte L'icone

          LargeImageList.AddIcon(Icon); // ajoute à SmallImageList
          SmallImageList.AddIcon(Icon);  // et à LargeImageList
          ListItem.ImageIndex := LargeImageList.Count - 1; // mise à jour de l'index

        Until FindNext(sr) <> 0;  // chercher le fichier suivant
    FindClose(sr);   // si il n'y en a pas on ferme la recherche
 Finally
    ListView1.Items.EndUpdate;  // fin de mise à jour
    Icon.Free;  // on libère l'icone que l'on a crée
    Screen.Cursor := OldCursor;  // et rétablie le curseur d'origine
  End;
End;

dimanche 19 février 2006 à 20:26:45 | Re : ajouter un élément dans un listview - vsReport ?

cirec

Membre Club Administrateur CodeS-SourceS
remplace voir tous les Buffer par aBuffer et dit moi ce qui se passe

@+
Cirec


Cette discussion est classée dans : élément, listview, ajouter, vsreport


Répondre à ce message

Sujets en rapport avec ce message

ListView et MDI.... [ par PierreP ] voici mon problème : j'ai créé un ListView dans ma fenêtre principale, et je voudrais que lorsque l'on double-clique sur un élément de ce ListView cel TDBNavigator et ses boutons... [ par Zangdar ] Comment fait-on fonctionner une TDBNavigator pour qu'on puisse ajouter ou supprimer dans une DBGrid. Je l'ai installé et qu'en je fait une requète SQL Chemin d'accès d'un élément d'un ShellListView [ par PierreP ] je recherche comment obtenir le chemin d'accès d'un élément sélectionné dans un ShellListViewcela est très important, merci d'avance :) ListView, TreeView ! INDEX! [ par rtfm ] Salut ma petit gang de delphinologue ;pJ'ai un petit probleme.. J'aurais besoin d'une manière de stocker la crée primaire de la string que j'ajoute a Manipulation de composants [ par finipe ] Bonjour à tous. Tout d'abord bravo au concepteur web, le site est bien fait et très clair, c'estagréable, ça change...Bon trève de compliments :)Je dé Ajouter par programmation un index secondaire [ par haaltruf ] Je galère pour ajouter un index secondaire en programmant (et non en utilisant le DataBase Desktop) pour pouvoir ensuite trier ma base.La méthode de l ListView-TreeView [ par Gysmo ] Salut,Ou puis-je trouver un exemple sur la sychro ListView-TreeView, a la maniere de ShellListView-ShellTreeView?Merci. PB ListView [ par Gysmo ] Voila j'ai un ListView sinchro avec un TreeView.Le prob est ke kan je suis en mode vsReport, j'ai des info type taille du fichier, ben si je change de Ajouter des éléments a un menu [ par fabiin ] Salut,voila le problème est simple :g un menuet je voudrai y ajouter des items par le code...comment fait-'on ???Merci par avance@+Fabs listview :HELP!! [ par eedy31 ] salut g un chtit pbleme:j'amerai savoir comment on fait pour recuperer l'index d'une ligne d'un listview quand on click dessus.g vue le source de delp


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales