IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Charger des images depuis un dossier !


Sujet :

Delphi

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut Charger des images depuis un dossier !
    Bonjour à toutes et à tous,

    J'ai une procédure qui me permet d'afficher mes images en utilisant un TopenDialog.

    Ma question pour une facilité, dès l'appel de ma forme avec la propriété "On show" serait t'il possible d'afficher automatiquement les images contenues dans un dossier par défaut sans utiliser le TopenDialog?

    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
     
    procedure TFmain.AjouterDesImagesClick(Sender: TObject);
    var
    i,nbi : integer;
    noma, chappli : string;
    begin
     chappli := ExtractFilePath(Application.ExeName);
     Opdlg.initialdir:=chappli+'Detection';
     
      if OPDlg.Execute then
      begin
        nbi := OPDlg.Files.Count;
        FileBox.Clear;
        FileBox.Items.Assign(OPDlg.Files);
        if Nbima = 0 then debima := Nbima+1;
        for i := 1 to nbi do
        begin
          ImaFile := FileBox.Items[i-1];
          Ajouter;
        end;
        AfficherLesImages(debima);
        AfficheValeurs;
      end;
    end;
    Merci d'avance si quelqu'un a une idée.

    @+,

    Cincap

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 302
    Points
    11 302
    Billets dans le blog
    6
    Par défaut
    regarde du côté de la FAQ Delphi avec FindFirst/FindNext sans oublier FindClose pour retrouver les fichiers d'un dossier donné avec une extension donnée.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    @ tourlourou,

    Merci pour le rappel de la faq, mais sur mon application j'ai déjà une procédure de recherche (CompteFichiers) qui me permet de voir le nombre de fichiers *.jpg qui se trouve dans le dossier.

    Ce qui ne va pas c'est d'interpréter ce nombre dans la listbox.

    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
     
    procedure TFmain.FormShow(Sender: TObject);
    var
    NbJpeg, i,nbi : integer;
    begin
     chappli := ExtractFilePath(Application.ExeName);
     chemin := ValiderPath(chappli + 'Detection\');
     
       Try
        NbJpeg := CompteFichiers(chemin) ;  // Integer
        lab_nbi.text := inttostr(NbJpeg); //Affiche le nombre de jpg dans le dossier
     
      Finally
        nbi := nbjpeg;
        FileBox.Clear;
        FileBox.Items.Add(chemin) ; // Fonctionne pas
     
        if Nbima = 0 then debima := Nbima+1;
        for i := 1 to nbi do
        begin
          ImaFile := FileBox.Items[i-1];
          Ajouter;
        end;
        AfficherLesImages(debima);
        AfficheValeurs;
      end;
     end;
    @+,

    Cincap

  4. #4
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,

    Pour commencer, ils manquent quelques informations pour faciliter la compréhension du sujet : les types de FileBox (TListBox ?), ImaFile et debima.

    Dans FileBox si c'est un TListBox, il faut ajouter les fichiers uns à uns...
    Est ce qui est fait dans CompteFichiers ?
    Philippe.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    @ Ph. B. bonsoir, ce sont des variables.

    imafile : TFilename

    Debima : Integer

    Voiçi la fonction en question :

    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
     
    // Procédure pour compter les fichiers
    Function CompteFichiers(Chemin:String):Integer;
    Var S:TSearchRec;
    Begin
      Chemin:=IncludeTrailingPathDelimiter(Chemin);
     
      Result:=0;
      // Recherche de la première entrée du répertoire
      If FindFirst(Chemin+'*.jpg',faAnyFile,S)=0
      Then Begin
        Repeat
          // Il faut absolument dans le cas d'une procédure récursive ignorer
          // les . et .. qui sont toujours placés en début de répertoire
          // Sinon la procédure va boucler sur elle-même.
          if (S.Name<>'.')And(s.Name<>'..')
          Then Begin
            If (S.Attr And faDirectory)<>0
              // Dans le cas d'un sous-repertoire on appelle la même procédure
              Then Result:=Result+CompteFichiers(Chemin+S.FindData.cFileName)
              // Sinon on compte simplement le fichier
              Else Inc(Result);
          End;
        // Recherche du suivant
        Until FindNext(S)<>0;
        FindClose(S);
      End;
    End;
    J'ai essayé pas mal de trucs sans succès, avec le TopenDialog, je sélectionne un ou plusieurs fichiers naturellement.

    @+,

    Cincap

  6. #6
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Ouh la, ouh la (comme dirait un oiseau à la morphologie particulière)
    Il y a plusieurs erreurs dans le code !
    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
     
    // Procédure pour compter les fichiers
    Function CompteFichiers(Chemin:String):Integer;
    Var S:TSearchRec;
    Begin
      Chemin:=IncludeTrailingPathDelimiter(Chemin);
     
      Result:=0;
      // Recherche de la première entrée du répertoire
      //If FindFirst(Chemin+'*.jpg',faAnyFile,S)=0
      If FindFirst(Chemin+'*.*',faAnyFile,S)=0
      Then Begin
        Repeat
          // Il faut absolument dans le cas d'une procédure récursive ignorer
          // les . et .. qui sont toujours placés en début de répertoire
          // Sinon la procédure va boucler sur elle-même.
          if (S.Name<>'.')And(s.Name<>'..')
          Then Begin
            //If (S.Attr And faDirectory)<>0
            If (S.Attr And faDirectory) = faDirectory
              // Dans le cas d'un sous-repertoire on appelle la même procédure
              Then Result:=Result+CompteFichiers(Chemin+S.FindData.cFileName)
              // Sinon on compte simplement le fichier
              //Else Inc(Result);
              Else If LowerCase(ExtractFileExt(S.Name)) = '.jpg'
              Then Begin
                Inc(Result);
                FileBox.Items.Add(Chemin + S.Name);// en supposant que FileBox est dans la zone de visibilité...
              End;
          End;
        // Recherche du suivant
        Until FindNext(S)<>0;
        FindClose(S);
      End;
    End;
    Avec TOpenDialog, à conditions d'avoir bien choisi les conditions de filtre et sans récursivité, on peut avoir quelque chose qui ressemble à ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      if OpenDialog1.Execute then
      begin
        FileBox.Items.Clear;
        for i := 0 to OpenDialog1.Files.Count - 1 do
          FileBox.Items.Add(OpenDialog1.Files[i]);
      end;
    Philippe.

  7. #7
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 302
    Points
    11 302
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileBox.Items.Add(Chemin + S.Name); // en supposant que FileBox est dans la zone de visibilité...
    s'il ne l'est pas, à passer en paramètre de CompteFichiers : limiter les variables globales peut être gage de sécurité et de lisibilité.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    @ Ph. B, tu oublies que c'est une fonction, donc filebox n'est pas considéré sauf en ajoutant le nom de la fiche Fmain. FileBox.Items.Add(Chemin + S.Name);// en supposant que FileBox est dans la zone de visibilité...

    Ceci étant dit, la fonction d'origine fonctionne très bien et cela ne change rien au problème car j'aimerai ne pas utiliser un Topendialog.

    @ tourlourou, ta suggestion ne fonctionne pas.

    Merci,

    @+,

    Cincap

  9. #9
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Citation Envoyé par cincap Voir le message
    @ Ph. B, tu oublies que c'est une fonction, donc filebox n'est pas considéré sauf en ajoutant le nom de la fiche Fmain. FileBox.Items.Add(Chemin + S.Name);// en supposant que FileBox est dans la zone de visibilité...
    Non je n'ai pas oublié, d'où ma supposition sur la visibilité...
    Sinon, comme l'a dit @tourlourou, on peut passer un paramètre de type TStrings à la fonction, FileBox.Items étant de ce type...
    Citation Envoyé par cincap Voir le message
    Ceci étant dit, la fonction d'origine fonctionne très bien et cela ne change rien au problème car j'aimerai ne pas utiliser un Topendialog.
    Je ne vois pas comment FindFirst(Chemin+'*.jpg',faAnyFile,S) pourra renvoyer un répertoire sans extension et donc faire une recherche récursive !!! d'où les modifications que j'avais indiquées.
    Philippe.

  10. #10
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 302
    Points
    11 302
    Billets dans le blog
    6
    Par défaut
    Le code de Ph. B. semble de bonne facture : ne fournit-il pas le résultat attendu ?

    Il doit retourner le nombre de fichiers jpg et JPG d'un dossier fourni en paramètre (et de ses sous-dossiers) tout en les ajoutant à une ListBox.

    Qu'est-ce qui se passe autrement ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    Bonjour à toutes et à tous,

    @ tourlourou, en effet le code de Ph. B. est de bonne facture mais si j'applique ce code dans mon application, je n'obtiens rien dans le chargement de mes images avec le TopenDialog.

    La fonction "comptefichier" avait été rajoutée pour utiliser dans le Onshow de la fiche le chargement automatique des images du dossier en question, elle peut donc être annulée

    Avec ce code cela fonctionne soit une image soit des images :

    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
     
    procedure TFmain.AjouterDesImagesClick(Sender: TObject);
    var
    i,nbi : integer;
    begin
      chappli := ExtractFilePath(Application.ExeName);
     Opdlg.initialdir:=chappli+'Detection';
     
      if OPDlg.Execute then
      begin
        nbi := OPDlg.Files.Count;
        FileBox.Clear;
        FileBox.Items.Assign(OPDlg.Files);
        if Nbima = 0 then debima := Nbima+1;
        for i := 1 to nbi do
        begin
          ImaFile := FileBox.Items[i-1];
          Ajouter;
        end;
        AfficherLesImages(debima);
        AfficheValeurs;
      end;
    end;
    Il faudrait donc interpréter ce code dans le Onshow sans utiliser le TopenDialog et c'est la que je butte.

    Edit : je viens de vérifier si dans le onshow, avec la fonction, le nombre de fichier était exact dans le dossier en l'affichant et c'est correct, j'obtiens 11 images, la difficulté est donc d'afficher tous ces fichiers comme dans la procédure avec le Topendialog.

    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
     
    // Procédure pour compter les fichiers Ph. B.
    Function CompteFichiers(Chemin:String):Integer;
    Var S:TSearchRec;
    Begin
      Chemin:=IncludeTrailingPathDelimiter(Chemin);
     
      Result:=0;
      // Recherche de la première entrée du répertoire
      If FindFirst(Chemin+'*.*',faAnyFile,S)=0
      Then Begin
        Repeat
          // Il faut absolument dans le cas d'une procédure récursive ignorer
          // les . et .. qui sont toujours placés en début de répertoire
          // Sinon la procédure va boucler sur elle-même.
          if (S.Name<>'.')And(s.Name<>'..')
          Then Begin
            //If (S.Attr And faDirectory)<>0
            If (S.Attr And faDirectory) = faDirectory
              // Dans le cas d'un sous-repertoire on appelle la même procédure
              Then Result:=Result+CompteFichiers(Chemin+S.FindData.cFileName)
              // Sinon on compte simplement le fichier
              //Else Inc(Result);
              Else If LowerCase(ExtractFileExt(S.Name)) = '.jpg'
              Then Begin
                Inc(Result);
                Fmain.FileBox.Items.Add(Chemin + S.Name);// en supposant que FileBox est dans la zone de visibilité...
              End;
          End;
        // Recherche du suivant
        Until FindNext(S)<>0;
        FindClose(S);
      End;
    End;
     
    procedure TFmain.FormShow(Sender: TObject);
    begin
     chappli := ExtractFilePath(Application.ExeName);
     chemin := chappli + 'Detection';
     
     NbJpeg := CompteFichiers(chemin) ;  // Integer
     lab_nbi.text := inttostr(NbJpeg);
     
    end;
    @+,

    Cincap

  12. #12
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 302
    Points
    11 302
    Billets dans le blog
    6
    Par défaut
    Voici une idée, adaptée de ton code qui utilisait l'OpenDialog.
    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
    procedure TFmain.FormShow(Sender: TObject);
    var
      chemin: string;
      NbJpeg, i: integer;
    begin
      chemin := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) + 'Detection';
      NbJpeg := CompteFichiers(chemin) ; 
      lab_nbi.text := inttostr(NbJpeg);
    // début de code non commenté => suppositions 
      // nbi := FileBox.Items.Count; nbi doit être égal à NbJpeg
      if NbJpeg = 0 then debima := 1; // où est-il déclaré et initialisé ?
      for i := 1 to NbJpeg do
      begin
        ImaFile := FileBox.Items[i-1];
        Ajouter; // mieux : Ajouter(FileBox.Items[i-1]) en modifiant la procédure et supprimant la variable globale ImaFile
      end;
      AfficherLesImages(debima); // j'espère qu'il y en a au moins une chargée, au cas où NbJpeg=0 !
      AfficheValeurs;
    end;
    Dans un souci de clarté et de lisibilité, il est important de limiter les variables globales et d'utiliser le passage de paramètres aux fonctions.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  13. #13
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    @ tourlourou, je viens de tester et à l'exécution, j'ai un avertissement "indice de liste hors limite (0)" et ensuite aucun fichier n'est repris dans le listbox que je rend visible pour le test.

    Si j'utilise le Topendialog, je retrouve les fichiers images dans la liste

    En fait j'aimerai adapter une source à mon application car elle permet d'afficher des vignettes depuis un dossier, mais je ne sais pas si je peux l'afficher peut être en MP.

    Je te remercie pour ta patience.

    @+,

    Cincap

  14. #14
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    @ tourlourou, ton dernier code fonctionne avec la fonction remaniée par Ph. B. :

    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
     
    procedure TFmain.FormShow(Sender: TObject);
    var
      chemin: string;
      NbJpeg, i, nbi: integer;
     begin
      chemin := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) + 'Detection';
      NbJpeg := CompteFichiers(chemin) ;
     
      lab_nbi.text := inttostr(NbJpeg);
     
    // début de code non commenté => suppositions
      //nbi := FileBox.Items.Count; //nbi doit être égal à NbJpeg
      if NbJpeg = 0 then debima := 1; // où est-il déclaré et initialisé ?
      for i := 1 to NbJpeg do
      begin
        ImaFile := FileBox.Items[i-1];
        Ajouter; // mieux : Ajouter(FileBox.Items[i-1]) en modifiant la procédure et supprimant la variable globale ImaFile
      end;
      AfficherLesImages(debima); // j'espère qu'il y en a au moins une chargée, au cas où NbJpeg=0 !
      AfficheValeurs;
    end;
    Merci à toi pour ta patience, je vais marquer "Résolu" mais je devrai vérifier si sans image dans le dossier, il n'y aura pas d'exception, ce qui me forcerai a afficher ma fiche si il y a au moins une image.

    Merci aussi à Ph. B.

    @+,

    Cincap

  15. #15
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    Après test, il y a un petit souci, en effet si le dossier comporte 2 images, elles s'affiche lors du 1er onshow et ensuite lors du 2ième onshow, la fiche affiche 4 images, puis 6 etc..a chaque onshow malgré que le dossier ne contient que 2 images et que le compteur indique bien 2.

    Le conteneur est un Tpaintbox ?

    Y a t'il une explication logique, dois je raffraichir ce conteneur ?

    @+,

    Cincap

  16. #16
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Citation Envoyé par cincap Voir le message
    Y a t'il une explication logique, dois je raffraichir ce conteneur ?
    Il faut vider la liste avant toute réactualisation sinon les éléments vont se cumuler. si c'est une TListBox ou un descendant, FileBox.Clear; devrait suffire.
    Philippe.

  17. #17
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    @ Ph. B., je l'avais fait a plusieurs endroits, mais c'est pareil, les images se double ou se triple à chaque onshow, je vais revérifier tout le code.

    @+,

    Cincap

  18. #18
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    bonjour à toutes et à tous,

    @ Ph. B., j'ai préféré faire en sorte que l'appel de la fiche se fasse par Shellexecute comme cela, cette fiche est devenue un exe et plus de problèmes de répétitions des images.

    Néanmoins, je constate qu'avec la fonction remaniée, si il y a 3 images dans le dossier, une supplémentaire s'affiche sans nom (image 0) mais qui est une copie de la 1ère image, ce qui fait 4 images affichées.

    Y a t'il une explication.

    Merci,

    @+,

    Cincap

  19. #19
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par cincap Voir le message
    Néanmoins, je constate qu'avec la fonction remaniée, si il y a 3 images dans le dossier, une supplémentaire s'affiche sans nom (image 0) mais qui est une copie de la 1ère image, ce qui fait 4 images affichées.
    On peut voir le code ou un mini projet qui reproduit le problème ?
    Philippe.

  20. #20
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 427
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 427
    Points : 1 326
    Points
    1 326
    Par défaut
    @ Ph. B. bien entendu, je vais poster un zip si je sais.

    A ta meilleure convenance bien entendu.

    @+,

    Cincap
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/03/2014, 08h51
  2. Charger des images de types différents depuis un dossier
    Par bluerequin dans le forum VB.NET
    Réponses: 6
    Dernier message: 25/03/2009, 16h49
  3. Charger des image a partir d'un dossier
    Par joannak20 dans le forum Flash
    Réponses: 1
    Dernier message: 02/11/2008, 17h38
  4. Charger une image depuis un textfield [noob]
    Par yodark dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/04/2006, 08h36
  5. [Formulaire] intégrer des images de différents dossiers
    Par julien_t_m dans le forum Access
    Réponses: 2
    Dernier message: 16/10/2005, 20h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo