SAUVEGARDER LES FAVORIS

Signaler
Messages postés
3825
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
1 février 2021
-
Messages postés
3
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
28 février 2007
-
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

Messages postés
3
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
28 février 2007

Merci pour ces précisions, je ne connaissait pas cette fonction.
Messages postés
3825
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
1 février 2021
39
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