TOpenPictureDialog

VALEYRE39 Messages postés 6 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 7 mars 2013 - 6 mars 2013 à 11:31
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 - 7 mars 2013 à 13:21
Bonjour,
Dans un composant de type TOpenPictureDialog, il est possible de fixer l'option ofAllowMultiSelect à true, ce qui permet effectivement de sélectionner une série d'images sous forme de liste de fichiers encadrés de guillemets. Par contre, le composant ne retourne apparemment qu'un seul nom de fichier. Est-il possible de récupérer et de traiter les autres fichiers sélectionnés et si oui, comment faire.
Mon but étant de faire un outil de traitement par lot d'images jpeg devant toutes soit être passée en niveaux de gris, soit inversées.

Merci d'avance

Roger

6 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
6 mars 2013 à 12:09
Salut,

[quote=VALEYRE39]Est-il possible de récupérer et de traiter les autres fichiers sélectionnés et si oui, comment faire. /quote
oui et c'est très simple:
procedure TForm4.Button4Click(Sender: TObject);
var
  I: Integer;
begin
  with OpenPictureDialog1 do
  if Execute then
  begin
    for I:= 0 to Files.Count-1 do
    begin
      Memo1.Lines.Add(Format('N°%d : %s', [I, Files[I]]));
    end;
  end;
end;


pour l'exemple les fichiers sélectionnés sont affichés dans un TMemo.

[hr]@+Cirec
[hr]
0
VALEYRE39 Messages postés 6 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 7 mars 2013
6 mars 2013 à 12:36
Merci beaucoup,
Je teste ça dès que possible, à priori ça devrait convenir à ce que je veux faire

Roger
0
korgis Messages postés 420 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 6 mai 2019 17
7 mars 2013 à 09:42
Salut,

La propriété TOpenDialog.Files (pareil pour TOpenDialog dont il dérive) est de type TStrings et contient les chemins complets des fichiers sélectionnés.
Pour les afficher dans un Memo, on pourrait également faire :

procedure TForm1.Button1Click(Sender: TObject);
begin
  with OpenPictureDialog1 do
    if Execute then
      Memo1.Lines.Assign(Files);
end;
0
VALEYRE39 Messages postés 6 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 7 mars 2013
7 mars 2013 à 09:47
Encore mieux, c'est super. Merci !!!!


Roger
0

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

Posez votre question
korgis Messages postés 420 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 6 mai 2019 17
7 mars 2013 à 11:45
Je ne sais pas si c'est mieux : c'était juste pour compléter l'information donnée par Cirec...
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
7 mars 2013 à 13:21
Salut,

Korgis a tout à fait raison ... dans l'hypothèse d'un affichage, d'un bloc, de tous les fichiers sans traitement.


Mais ici ce n'est pas le cas ... le TMemo n'est là que pour l'exemple (j'allais pas mettre un exemple complet de traitement individuel de fichier).

on voit bien dans l'exemple que je donne que l'on accède aux fichiers un après l'autre ... c'est exactement ce que VALEYRE39 a besoin.

Trop d'informations tue l'information ... ici c'est VALEYRE39 qui en fait les frais.


sinon on pouvait aussi écrire l'exemple comme ceci:
procedure TForm4.Button4Click(Sender: TObject);
var
  I: Integer;
begin
  with OpenPictureDialog1 do
  if Execute then
    for I:= 0 to Files.Count-1 do
      Memo1.Lines.Add(Format('N°%d : %s', [I, Files[I]]));
end;


mais j'avais opté pour l'autre version qui est moins perturbante quand on est débutant.

Donc pour ton cas je te conseille de te pencher sur le premier exemple qui te convient parfaitement.


[hr]@+Cirec
[hr]
0
Rejoignez-nous