|
Tutoriaux
- Système de favoris |
Toutes les applications possèdent un système de favoris
de fichiers dans leur menu. Ce type de système est beaucoup utilisé.
Il consiste à enregistrer les derniers fichiers ouverts et de
les mettre par ordre dans un menu. Cela permet donc de restituer un
fichier sans être obliger d'aller le rechercher à nouveau
sur le disque dure.
Notre programme en Delphi pourra gèrer quatre favoris. Vous pourrez
changer le nombre de favoris grâce à une constante.
Le programme d'exemple aura pour but de lire des bitmaps dans une image.
Ce programme est divisé en plusieurs étapes :
- Ouverture du fichier.
- Enregistrement du fichier comme favoris.
- Adapter.
- Organisation dans le menu.
- Appel des procedures(lors de la création ou la destruction
de la form).
- Lecture des bitmaps.
Pour l'enregistrement ou la restitutions des favoris, nous utiliserons
un fichier ini. L'utilisation du fichier ini permet une grande rapidité.
Pour commencer, insérez dans la form, un composant TMainMenu,
TImage et TOpenDialog.
Mettez la disposition de votre menu comme l'image ci-dessous.
Ensuite, mettez la propriété "AutoSize"
du composant TImage à True. Cela permet le redimensionnement
de l'image automatiquement.
Mettez comme filtre "Fichier BMP|*.bmp" du composant TOpenDialog.
Changez la propriété "AutoHotKeys" du composant
TMainMenu en le mettant à "maManuel".
Insérez l'unité "IniFiles" dans la parties uses.
Uses
IniFiles;
private
{ Déclarations privées
}
Favlist: TStringList;
Favchange: Boolean;
procedure Ouvrirfav;
procedure Organiserfav;
procedure Adaptefav(const
Filename: String);
procedure Ecrirefav;
procedure Ouvrir(const
Filename: String);
end; |
|
Passons maintenant au différentes étapes :
L'enregistrement se fait par un fichier ini que l'on appellera "Monfichier".
Ce fichier sera par défaut dans le dossier Windows. On travaillera
avec un TStringlist qui permettra d'effectuer des opérations.
Récupèrer
les chemins de fichiers à partir du fichier ini |
Cette procédure permet de récupèrer les différents
chemins de fichiers dans le stringlist.
procedure
TForm1.Ouvrirfav;
Var FichierIni: TIniFile;
i: Integer;
St: String;
begin
FavList:=TStringList.Create; //Crée
un stringlist
FichierIni:=TIniFile.Create('Monfichier.ini'); //Crée
le fichier ini si il n'existe pas
for i:=1 to Maxfav do
//Pour chaque favoris ...
begin
St:=FichierIni.ReadString('Favoris',Concat('fav',IntToStr(i)),'');
//Lit les différents chemin
de fichier
FavList.Add(St); //On ajoute les différentes
chemin de fichier stringlist
end;
while FavList.IndexOf('') <> -1 do //Si
il y a des blancs, on les supprime dans le stringlist
Favlist.Delete(FavList.IndexOf(''));
end; |
|
Enregistrer les
chemins des fichiers dans un fichier ini |
Pour commencer, on vérifie s'il y a eu un changement dans le
menu puis on enregistre dans l'ordre, les chemins des fichiers.
procedure
TForm1.Ecrirefav;
Var FichierIni: TIniFile;
i: Integer;
begin
if FavChange then
//Si il y a eu un changement dans le menu alors...
begin
FichierIni:=TIniFile.Create('Monfichier.ini'); //Crée
le fichier ini si il n'existe pas
i:=0; //Initialise la variable "i"
à 0
while (i < (Favlist.Count)) and
(i < Maxfav) do //Pour
chaque item "fav" du menu...
begin
FichierIni.WriteString('Favoris',concat('fav',IntToStr(i+1)),Favlist.Strings[i]);
//Enregistre les chemin des fichiers
des items du menu
Inc(i); //Incrémente la variable
i
end;
end;
end; |
|
Cette procédure permet d'effectuer
certaines opérations sur le stringlist. Soit on ajoute le nouveau
chemin de fichier et supprime le dernier soit on change la position
du chemin de fichier s'il n'y a pas de nouveau chemin de fichier.
procedure
TForm1.Adaptefav(const Filename: String);
begin
FavChange:=True; //Indique qu'il y
a eu un changement dans le menu
if FavList.IndexOf(Filename)=-1 then
//Si le nouveau chemin de fichier
n'a pas été trouvé alors...
begin
FavList.Insert(0,Filename); //On insére
le nouveau chemin de fichier à la première
place
if FavList.Count > MAXfav then
//Si le nombre de string est supérieur
au nombre de favoris maximum dans le menu
FavList.Delete(MAXfav); //Supprime
le dernier chemin de fichier
end
else //Sinon...
FavList.Move(FavList.IndexOf(Filename),0); //Change
la position d'un chemin de fichier déjà existant
dans le stringlist en la mettant en premier
Organiserfav; //Appel la procedure
"Organiserfav"
end; |
|
Cela consiste à afficher dans
le menu le texte des chemins de fichiers à partir du stringlist
et de mettre ou non la barre du menu (séparant les favoris
et l'option Quitter) si nécessaire.
procedure
TForm1.Organiserfav;
Var MenuItem: TMenuItem;
i: Integer;
begin
i:=0; //Initialise la variable "i"
à 0
while (i < (Favlist.Count)) and
(i < Maxfav) do //Pour
chaque item "fav" du menu...
begin
MenuItem:=TMenuItem(FindComponent(concat('fav',IntToStr(i+1))));
//Recherche dans les différents
item du menu portant le nom de fav(fav1,fav2,...)
MenuItem.Visible:=True; //Affiche
l'item du menu
MenuItem.Caption:=FavList.Strings[i]; //Enregistre
le texte de l'item dans le stringlist
Inc(i); //Incrémente la variable
i
end;
favbarre.Visible:=fav1.Visible; //Si
il y a alors on affiche une barre dans le menu
end; |
|
Lorsque la form va se créer
ou se détruire, il faut alors appeler certaines procédure.
procedure
TForm1.FormCreate(Sender: TObject);
begin
Ouvrirfav; //Appel la procedure "Ouvrirfav"
Organiserfav; //Appel la procedure
"Organiserfav"
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Ecrirefav; //Appel la procedure "Ecrirefav"
Favlist.Free; //Détruit l'objet
end; |
|
Lecture d'une
image bitmap |
Voici le reste du programme qui permet
de lire image bitmap soit en cliquant sur l'option "Ouvrir"
soit en cliquant sur les favoris.
procedure
TForm1.Ouvrir(const Filename: String);
begin
Image1.Picture.LoadFromFile(FileName); //Ouvre
le fichier dans le composant TImage
Adaptefav(FileName); //Appel la procedure
"Adaptefav" avec comme paramètre "OpenDialog1.FileName"
end;
procedure TForm1.Ouvrir1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
//Lance la fenêtre d'ouverture
de fichier et si l'utilisateur clique sur le bouton "Ouvrir"
Ouvrir(OpenDialog1.FileName); //Appel
la procedure "Ouvrir" avec comme paramètre
"OpenDialog1.FileName"
end;
procedure TForm1.fav1Click(Sender: TObject);
begin
Ouvrir(fav1.Caption); //Appel la procedure
"Ouvrir" avec le paramètre "fav1.Caption"
//"fav1.Caption" correspond au chemin du fichier
end;
procedure TForm1.fav2Click(Sender: TObject);
begin
Ouvrir(fav2.Caption);
end;
procedure TForm1.fav3Click(Sender: TObject);
begin
Ouvrir(fav3.Caption);
end;
procedure TForm1.fav4Click(Sender: TObject);
begin
Ouvrir(fav4.Caption);
end; |
|
Système de favoris
de fichiers |
[ 19-08-2003 ] |
Permet
de céer un système de favoris de fichiers.
Télécharger : [8
Ko] [
systfav.zip]
Auteur : Yoann
Site internet : http://delphipage.free.fr/
|
|
|