Affichage d'images

guigui265 Messages postés 113 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 16 avril 2006 - 10 avril 2006 à 11:23
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 - 11 avril 2006 à 16:21
bonjour,


j'ai un formulaire ou j'affiche une image que j'ouvre avec un openpicturedialog. je voudrais ensuite faire comme le fais l'afficheur de windows, pouvoir afficher l'image suivante et précédente a la place, en cliquant sur un bouton suivant ou précedent.


merci


guillaume

5 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
10 avril 2006 à 12:54
Salut Guillaume,


pour cela c'est assez simple tu mets dans une StringList toutes les images que tu veux visionner et il te faut également un Index pour mémoriser le numéro de l'image en cour:

Var ImageName : TStringList;
Idx : Integer;



procedure TForm1.FormCreate(Sender: TObject);
begin
ImageName := TStringList.Create; // on crée la List
end ;


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ImageName.Free; // On libere dès qu'on en a plus besoin
end;



Remplir la List:
Var Sr : TSearchRec;
Begin
ImageName.Clear; // Vide la list
If FindFirst('C:\Mes Images\*.jpg', faAnyFile, Sr) = 0 Then
Begin
ImageName.Add(Sr.Name); // ajoute de nouvelle images
While FindNext(Sr) = 0 Do
ImageName.Add(Sr.Name); // ajoute de nouvelle images
FindClose(Sr);
End;
End;



bouton suivant:
Begin
Inc(Idx); // On incrémente l'index
If Idx > ImageName.Count - 1 Then Idx : = 0; // on verifie les dépassement
Image1.Picture.LoadFromFile(ImageName.Strings[Idx]); // et on affiche l'image
End;


bouton précédant:
Begin
Dec(Idx); // On Décrémente l'index
If Idx < 0 Then Idx := ImageName.Count - 1; // on verifie les dépassement
Image1.Picture.LoadFromFile(ImageName.Strings[Idx]); // et on affiche l'image
End;

@+
Cirec
0
guigui265 Messages postés 113 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 16 avril 2006
11 avril 2006 à 14:14
d'accor,mais je ne compren pas , kesse ke la procedure remplir la list?
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
11 avril 2006 à 14:39
Cette procedure va dans ce cas rechercher toutes les images au format JPG dans le répertoire C:\Mes Images et les mets dans la Liste

@+
Cirec
0
guigui265 Messages postés 113 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 16 avril 2006
11 avril 2006 à 14:42
mais ce n'est pas une procedure evenementielle? ou intervient elle?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
11 avril 2006 à 16:21
ah oui pardon! c'est en faite une procedure :

Var ImageName : TStringList;
Idx : Integer;
Chemin : String;

Procedure ChercheImages(Directory : String);
Var Sr : TSearchRec;
Begin
ImageName.Clear; // Vide la list
If FindFirst(Directory + '*.jpg', faAnyFile, Sr) = 0 Then
Begin
ImageName.Add(Directory + Sr.Name); // ajoute de nouvelle images
While FindNext(Sr) = 0 Do
ImageName.Add(Directory + Sr.Name); // ajoute de nouvelle images
FindClose(Sr);
End;
End;

procedure TForm1.FormCreate(Sender: TObject);
begin
ImageName := TStringList.Create; // on crée la List
Chemin : = 'C:\Mes Images\';
ChercheImages(Chemin);
end;

Voilà c'est peut être plus claire comme ceci ?

@+
Cirec
0
Rejoignez-nous