Image aléatoire

Résolu
Also know as Messages postés 259 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 22 novembre 2010 - 5 mai 2005 à 20:15
Also know as Messages postés 259 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 22 novembre 2010 - 5 mai 2005 à 23:36
Bonjour,



Voici mon problème très simple cependant.

Je cherche à ce que quand je lance mon exécutable une image en
arrière-plan se mette automatique mais surtout aléatoirement en
fonction des images qu'il aura trouvé dans tel repertoire.



Pourrize-vous m'aidez s'il vous plait ?



Merci d'avance

3 réponses

ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
5 mai 2005 à 21:14
et même plus simplement :

procedure TForm1.FormCreate(Sender: TObject);
Var
Info : TSearchRec;
FileList: TStrings;
begin
// Création de la liste qui va contenir les noms de fichiers images
FileList := TStringList.Create;
// Initialisation du tirage aléatoire
Randomize;
// Recherche des fichiers bitmap dans le répertoire C:\
If FindFirst('C:\*.bmp',faAnyFile,Info) =0 Then
begin
Repeat
FileList.Add('C:\'+Info.FindData.cFileName);
Until FindNext(Info)<>0;
FindClose(Info);
end;
// Tirage aléatoire de l'image dans la liste
Image1.Picture.Bitmap.LoadFromFile(FileList.Strings[Random(FileList.Count)]);
// On libère FileList
FileList.Free;
end;


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
3
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
5 mai 2005 à 21:10
tu peux faire comme ceci :

procedure TForm1.FormCreate(Sender: TObject);
Var
Info : TSearchRec;
FichierEnCours : string;
FileList: TStrings;
begin
// Création de la liste qui va contenir les noms de fichiers images
FileList := TStringList.Create;
// Initialisation du tirage aléatoire
Randomize;
// Recherche des fichiers bitmap dans le répertoire C:\
If FindFirst('C:\*.*',faAnyFile,Info) =0 Then
begin
Repeat
FichierEnCours := LowerCase('C:\'+Info.FindData.cFileName);
If ((Info.Attr And faDirectory) =0) and (ExtractFileExt(FichierEnCours) = '.bmp') Then FileList.Add(FichierEnCours);
Until FindNext(Info)<>0;
FindClose(Info);
end;
// Tirage aléatoire de l'image dans la liste
Image1.Picture.Bitmap.LoadFromFile(FileList.Strings[Random(FileList.Count)]);
// On libère FileList
FileList.Free;
end;


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
0
Also know as Messages postés 259 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 22 novembre 2010 2
5 mai 2005 à 23:36
Merci pour tout.

Je l'ai manié pour mon programme ce qui donne ceci :



procedure TForm1.FormCreate(Sender: TObject);

Var

Info : TSearchRec;

FileList: TStrings;

begin

// Création de la liste qui va contenir les noms de fichiers images

FileList := TStringList.Create;

// Initialisation du tirage aléatoire

Randomize;

// Recherche des fichiers bitmap dans le répertoire C:\

If FindFirst('images\*.bmp',faAnyFile,Info)=0 Then

begin

begin

Repeat

FileList.Add('images\'+Info.FindData.cFileName);

Until FindNext(Info)<>0;

FindClose(Info);

end;

// Tirage aléatoire de l'image dans la liste

Image1.Picture.Bitmap.LoadFromFile(FileList.Strings[Random(FileList.Count)]);

// On libère FileList

FileList.Free;

end

else

begin

ShowMessage('Une erreur s''est produite, L''application va être fermée');

Close;

Application.Terminate;

end;

end;



Merci pour tout, tu m'as beaucoup aidé sur le coup là



@+
0
Rejoignez-nous