SAUVEGARDER LES FAVORIS

Utilisateur anonyme - 15 mai 2006 à 15:58
Magdavich Messages postés 3 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 28 février 2007 - 15 mai 2006 à 16:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37605-sauvegarder-les-favoris

Magdavich Messages postés 3 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 28 février 2007
15 mai 2006 à 16:46
Merci pour ces précisions, je ne connaissait pas cette fonction.
Utilisateur anonyme
15 mai 2006 à 15:58
Salut,

en premier dans ton zip il y a des fichiers inutiles :
Seule les fichiers *.pas *.dfm et *.dpr sont nécessaire pour ton projet.

Dans le code il faudrait nommer tes composants
En ce qui concerne le code directement quelques petites modifications s'imposent :
Tant que l'utilisateur n'a pas cliqué sur Favoris les Urls sauvegardés ne sont pas accessibles et si l'utilisateur à déplacer son répertoire de Favoris ton programme ne trouvera rien.

Donc pour éviter ces désagréments je te propose ceci :

Dans ListView1 tu ajoutes une colonne (par l'inspecteur d'objets)
et tu ajoutes ceci à ton code :

Uses ShellApi, ShlObj;

Function GetFolder(aCSIDL: integer): String;
Var
IdList : PITEMIDLIST;
Dossier : Array[0..MAX_PATH] Of Char;
Begin
If SHGetSpecialFolderLocation(0, aCSIDL, IdList) =
NOERROR Then
Begin
SHGetPathFromIDList(IdList, Dossier);
// pour récupérer le dossier à partir de IdList
result := String(Dossier);
End
Else result := '';
End;

procedure TForm1.SbFavorisClick(Sender: TObject);
begin
DirectoryListbox1.Directory := GetFolder(CSIDL_FAVORITES);// à la place de 'C:\Documents and Settings\'+Panel1.caption+'\Favoris\';
end;

procedure TForm1.sbAjouterClick(Sender: TObject);
Var
ListAjout: TListItem;
begin
ListAjout:=ListView1.Items.Add;
ListAjout.Caption:=FileListbox1.Items.Strings[FileListbox1.ItemIndex];
ListAjout.SubItems.Add(formatdatetime('dd/mm/yyyy',now));
// ici on mémorise le chemin pour retrouver l'Url dans tous les cas
ListAjout.SubItems.Add(DirectoryListbox1.Directory + '\');
end;

procedure TForm1.sbAtteindreClick(Sender: TObject);
var
Index:integer;
begin
Index:=Listview1.ItemIndex;
If Listview1.ItemIndex=-1 then Exit;
// et ici on récupère le chemin exacte de l'Url
Panel2.Caption:= Listview1.Items[index].SubItems[1] + Listview1.Items[index].Caption;
ShellExecute(Handle,'open',PChar(Panel2.caption),nil,nil,SW_MAXIMIZE);
end;

Voilà c'est tout

Bonne prog
@+
Cirec
Rejoignez-nous