Bonjour à toutes et à tous,
Plutôt que d'utiliser un TSelectDirectory j'utilise un TOpenDialog pour choisir mon dossier et sélectionner toutes les photos ".jpg" puis les afficher.
Serait t'il possible à l'execution du TOpenDialog de sélectionner la 1ère image automatiquement plutôt que de checker la photo et sans connaitre le nom ?
Pour le moment dans mes tests j'ai créé dans le dossier une photo avec le nom "Open.jpg" qui me permet d'ouvrir le Dialog puis de le fermer pour afficher toutes les images, mais j'aimerai ne pas placer une image "Open.jpg" dans chaque dossier que je choisirais.
Merci d'avance même si cela me parait impossible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 procedure TForm1.BTestClick(Sender: TObject); Var mydirpath : String; ImagePath: string; Image: Timage; TopPos: Integer; SearchRec: TSearchRec; begin //Op1.FilterIndex := 1; Op1.FileName := 'Open'; //Dans le dossier = Open.jpg 1ère image Op1.Execute; mydirpath:= ExtractFileDir(op1.FileName); Ed.Text:= extractfilename(mydirpath); ImagePath := mydirpath; TopPos := 10; // Position de départ pour la première image // Effacer les images précédentes (si nécessaire) while ScrollBox1.ControlCount > 0 do ScrollBox1.Controls[0].Free; // Rechercher les fichiers images (par exemple, *.jpg) if FindFirst(ImagePath + '\*.jpg', faArchive or faSysFile or faHidden, SearchRec) = 0 then begin repeat // Créer dynamiquement un TImage Image := Timage.Create(ScrollBox1); // Le ScrollBox est le Owner Image.Parent := ScrollBox1; // Le ScrollBox est le Parent visuel try // Charger l'image depuis le fichier Image.Picture.LoadFromFile(ImagePath + '\' + SearchRec.Name); Image.Top := TopPos; Image.Left := 10; Image.AutoSize := false; // Ajuste la taille du TImage à l'image chargée image.Width := 320; image.Height := 240; Image.Stretch := true; Image.Align := alNone; // Mettre à jour la position Top pour l'image suivante TopPos := TopPos + Image.Height + 10; // Espacement de 10 pixels entre les images except // Gérer les erreurs de chargement d'image si nécessaire Image.Free; end; until FindNext(SearchRec) <> 0; FindClose(SearchRec); end; // Important pour que le ScrollBox ajuste ses barres de défilement // en fonction de la taille totale de son contenu ScrollBox1.AutoScroll := True; end;
@+,
cincap






Répondre avec citation







Partager