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

Lazarus Pascal Discussion :

Actualisation d'une FileListBox [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité
    Secteur : Service public

    Informations forums :
    Inscription : Août 2017
    Messages : 30
    Points : 17
    Points
    17
    Par défaut Actualisation d'une FileListBox
    Bonjour,

    Je construis un programme qui m'affiche les images d'un répertoire à partir de la liste des fichiers affichés dans un FileListBox.
    Quand je veux changer de réperoire, je reçois, par moments, un message : 'Unable to open file <nom du répertoire>...'.

    Nom : Capture.JPG
Affichages : 421
Taille : 21,2 Ko

    Le compte d'items est faux, il garde le nombre du répertoire précédent.
    Ce n'est pas bloquant mais gênant.

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure TForm1.BtnRepClick(Sender: TObject);
    begin
      if SelectDirectoryDialog1.Execute() then
         begin
             nb:=0; //nombre d'item
             scr := SelectDirectoryDialog1.FileName;
             FileListBox1.Directory:=scr;
             FileListBox1.Refresh;
             nb := FileListBox1.Count;
             edit1.Text := inttostr(nb);
         end;
    end;
    Qui connaît ce problème ?

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 132
    Points
    15 132
    Par défaut
    Citation Envoyé par bern59 Voir le message
    FileListBox1.Refresh;
    Le refresh sert à rafraîchir l'affichage de l'objet, mais pas du tout son contenu !

    J'ai testé ça, qui a l'air correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TForm1.Button2Click(Sender: TObject);
    begin
      if sdd.Execute then begin
    //    nb:=0; //nombre d'item // inutile
    //     scr := SelectDirectoryDialog1.FileName; // inutile
        flb.Clear; // ! \\
        flb.Directory := sdd.FileName;
    //     FileListBox1.Refresh; // inutile
    //     nb := flb.Count; // inutile
        Caption := inttostr(flb.Count);
      end;
    end;
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité
    Secteur : Service public

    Informations forums :
    Inscription : Août 2017
    Messages : 30
    Points : 17
    Points
    17
    Par défaut rafraichissement
    Désolé,
    J'ai testé, j'ai toujours le même problème.

  4. #4
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 132
    Points
    15 132
    Par défaut
    Citation Envoyé par bern59 Voir le message
    Désolé,
    J'ai testé, j'ai toujours le même problème.
    Alors sa source est ailleurs.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  5. #5
    Membre chevronné

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 035
    Points : 2 053
    Points
    2 053
    Par défaut
    S'il y a une espace dans le nom du répertoire Retouches Faites, ça pourrait venir de là.

  6. #6
    Rédacteur

    Avatar de naute
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2009
    Messages
    708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2009
    Messages : 708
    Points : 2 924
    Points
    2 924
    Par défaut
    Bonjour .

    Citation Envoyé par mm_71 Voir le message
    Si il y-a un espace dans le nom du répertoire Retouches Faites ça pourrait venir de là.
    Non, ce n'est pas ça. TFileListBox accepte les espaces dans les noms de dossier, du moins chez moi. Le problème est ailleurs.

    Amicalement,
    naute.

  7. #7
    Membre chevronné

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 035
    Points : 2 053
    Points
    2 053
    Par défaut
    Citation Envoyé par naute Voir le message
    Bonjour .



    Non, ce n'est pas ça. TFileListBox accepte les espaces dans les noms de dossier, du moins chez moi. Le problème est ailleurs.

    Amicalement,
    naute.
    Mais Windows ou Linux ? Sous Linux je n'ai pas le problème non plus mais d'anciennes versions de Windows ont du mal avec ça.

  8. #8
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 953
    Points : 9 283
    Points
    9 283
    Par défaut
    hello,
    Citation Envoyé par bern59 Voir le message
    Quand je veux changer de répertoire, je reçois, par moment, un message : 'Unable to open file <nom du répertoire>...'.
    par moment --> C'est à dire ? de façon aléatoire ? toujours avec les mêmes répertoires ?
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  9. #9
    Rédacteur

    Avatar de naute
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2009
    Messages
    708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2009
    Messages : 708
    Points : 2 924
    Points
    2 924
    Par défaut
    Citation Envoyé par mm_71 Voir le message
    Mais Windows ou Linux ? Sous Linux je n'ai pas le problème non plus mais d'anciennes versions de Windows ont du mal avec ça.
    Effectivement, je suis sous GNU-Linux, mais vu la capture d'écran, bern59 semble être sous Windows 10, qui n'est pas à proprement parler une ancienne version.

    @ bern59
    Au lieu du Refresh, tu peux essayer un UpdateFileList, pour voir.

    Amicalement,
    naute.

  10. #10
    Membre chevronné

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 035
    Points : 2 053
    Points
    2 053
    Par défaut
    mais vu la capture d'écran, bern59 semble être sous Windows 10, qui n'est pas à proprement parler une ancienne version.
    Comme quoi il faut toujours préciser quel OS et quelle version quand on pose une question.
    Pour faire echo à jurassic pork ça aiderait sans doute si bern59 notait tous les répertoires ou ça coince et en poste la liste complète.

    Un truc aussi: "Unable to open file" dans le contexte ça devrait plutôt être "Unable to open directory". Message d'erreur mal rédigé à l'origine ou qui nous montre que lazarus veut trouver un fichier là ou il y-a un répertoire.

    Et quiz des permissions de lecture des fichiers ? L'utilisateur courant à t-il le droit d'entrer dans le répertoire et d'y lire les fichiers ?

  11. #11
    Rédacteur

    Avatar de naute
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2009
    Messages
    708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2009
    Messages : 708
    Points : 2 924
    Points
    2 924
    Par défaut
    Citation Envoyé par mm_71 Voir le message
    Comme quoi il faut toujours préciser quel OS et quelle version quand on pose une question.
    Pour faire echo à jurassic pork ça aiderait sans doute si bern59 notait tous les répertoires ou ça coince et en poste la liste complète.
    C'est évident.

    Citation Envoyé par mm_71 Voir le message
    Et quiz des permissions de lecture des fichiers ? L'utilisateur courant à t-il le droit d'entrer dans le répertoire et d'y lire les fichiers ?
    Bonne remarque! Cela dit, toujours d'après la capture d'écran, le chemin du dossier "C:\Users\bernw\..." semble indiquer que bern59 en est le propriétaire. Mais je ne sais pas comment sont gérées les permissions sous Windows 10.

  12. #12
    Membre chevronné

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 035
    Points : 2 053
    Points
    2 053
    Par défaut
    Cela dit, toujours d'après la capture d'écran, le chemin du dossier "C:\Users\bernw\..." semble indiquer que bern59 en est le propriétaire.
    Pas forcément, passe ton répertoire $User en root et il ne changera pas de nom pour autant, de plus il suffit que ce soit le dernier répertoire de la chaîne qui n'aie pas les permissions nécessaires.
    Mais je ne sais pas comment sont gérées les permissions sous Windows 10.
    Moi non plus.

  13. #13
    Membre chevronné

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 035
    Points : 2 053
    Points
    2 053
    Par défaut
    Je viens de refaire un autre essai sous Linux Mint 18.3 et la listbox récupère bien les noms de fichiers dans /usr/bin qui a l'utilisateur root en écriture et le groupe root en lecture.
    Le seul répertoire non listable est /root et l'erreur de lecture est renvoyée par selectdirectorydialog pas par filelistbox.

    A moins que Lazarus ait vraiment un fonctionnement différent sous windows je ne vois aucune raison pour qu'un répertoire trouvé par selectdiretorydialog ne soit pas lisible avec filelistbox.

    J'ai le sentiment que ce truc va tous nous faire tourner en bourrique.

  14. #14
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité
    Secteur : Service public

    Informations forums :
    Inscription : Août 2017
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par naute Voir le message
    Effectivement, je suis sous GNU-Linux, mais vu la capture d'écran, bern59 semble être sous Windows 10, qui n'est pas à proprement parler une ancienne version.
    @ bern59
    Au lieu du Refresh, tu peux essayer un UpdateFileList, pour voir.

    Amicalement,
    naute.
    A tous je précise :
    Que j'utilise Window 10,
    Que le problème survient avec n'importe quel répertoire (espace ou non),
    que UpdateFileList ne fonctionne pas.

    Merci.

  15. #15
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 953
    Points : 9 283
    Points
    9 283
    Par défaut
    hello,
    Citation Envoyé par mm_71 Voir le message
    Comme quoi il faut toujours préciser quel OS et quelle version quand on pose une question.
    Bern59 Tu ne nous as toujours pas dit sous quelle version de Lazarus, tu travailles.
    Et dans ton code on ne voit pas la déclaration des variables scr et nb ce qui voudrait dire qu'elles sont globales ?
    Moi je n'ai pas de souci sous Windows 10 avec Lazarus 1.8.2 32 bits, que ce soit en utilisant en utilisant un TSelectDirectoryDialog pour choisir le répertoire ou un TDirectoryEdit.
    voici le code pour le bouton qui appelle le TselectDirectoryDialog :
    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
    procedure TForm1.Bt_SelectDirClick(Sender: TObject);
    Var
    scr : String;
    nb : integer;
    begin
       if SelectDirectoryDialog1.Execute() then
         begin
             nb:=0; //nombre d'item
             scr := SelectDirectoryDialog1.FileName;
             FileListBox1.Directory:=scr;
             FileListBox1.UpdateFileList;
             nb := FileListBox1.Count;
             LabeledEdit1.Text := inttostr(nb);
         end;
    end;
    et le code pour le OnChange du TDirectoryEdit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.DirectoryEdit1Change(Sender: TObject);
    begin
             FileListBox1.Directory:=DirectoryEdit1.Directory;
             FileListBox1.UpdateFileList;
             LabeledEdit1.Text := inttostr(FileListBox1.Count);
    end;
    et voici le résultat :
    Nom : Lazarus_SelectDir.png
Affichages : 365
Taille : 14,2 Ko

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  16. #16
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité
    Secteur : Service public

    Informations forums :
    Inscription : Août 2017
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    Bonjour,
    J'ai essayé le TDirectoryEdit, j'ai le même résultat.
    Je me demande si le problème ne viendrait pas de la taille des fichiers.
    Merci.

  17. #17
    Membre chevronné

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 035
    Points : 2 053
    Points
    2 053
    Par défaut
    Citation Envoyé par bern59 Voir le message
    Bonjour,
    J'ai essayé le TDirectoryEdit, j'ai le même résultat.
    Je me demande si le problème ne viendrait pas de la taille des fichiers.
    Merci.
    Tests à faire:

    Créer un répertoire vide. Si il est lu y copier tous les fichiers du répertoire qui coince et voir ce que ça fait. Si ça coince supprimer progressivement les fichiers et réessayer le filelist à chaque fois. Si ça vient d'un fichier spécifique ça permettra de l'identifier.
    Si aucun fichier ne coince ça vient du répertoire. Renommer le dernier répertoire de la chaîne pour voir.

  18. #18
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Salut à tous,

    Petit truc bête LazUTF8 et LazFileUtils sont-ils présents dans les Uses ?

    Peux-tu nous fournir un exemple complet avec lequel on pourrait tester ?

    Merci

    Bonne journée
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  19. #19
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité
    Secteur : Service public

    Informations forums :
    Inscription : Août 2017
    Messages : 30
    Points : 17
    Points
    17
    Par défaut rafraichissement
    Citation Envoyé par BeanzMaster Voir le message
    Salut à tous,

    Petit truc bête LazUTF8 et LazFileUtils sont-ils présents dans les Uses ?

    Peux-tu nous fournir un exemple complet avec lequel on pourrait tester ?

    Merci

    Bonne journée
    Désolé, le problème persiste.
    Ci-joint code (en cours de fignolage).
    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    unit Unit1;
     
    {$mode objfpc}{$H+}
     
    interface
     
    uses
      Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
      FileCtrl, StdCtrls, EditBtn, Buttons, LazUTF8,LazFileUtils;
     
    type
     
      { TVisio }
     
      TVisio = class(TForm)
        BitBtn1: TBitBtn;
        Button1: TButton;
        DirectoryEdit1: TDirectoryEdit;
        Edit1: TEdit;
        Edit2: TEdit;
        FileListBox1: TFileListBox;
        Image1: TImage;
        procedure BitBtn1Click(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure DirectoryEdit1Change(Sender: TObject);
        procedure FileListBox1Change(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
     
      public
     
      end;
     
    var
      Visio: TVisio;
      pos, nb : integer;
      nom : string;
    implementation
     
    {$R *.lfm}
     
    { TVisio }
     
    procedure TVisio.FileListBox1Change(Sender: TObject);
    begin
    nom:=FileListBox1.Directory+'\'+FileListBox1.GetSelectedText;
    image1.Picture.LoadFromFile(nom);
    pos:=filelistbox1.ItemIndex;
    nb := FileListBox1.Count;
    edit1.Text := inttostr(filelistbox1.ItemIndex+1)+'/'+inttostr(nb);
    end;
     
    procedure TVisio.FormCreate(Sender: TObject);
    begin
      pos:=-1;
      nb:=filelistbox1.Count;
      edit1.Text:=inttostr(nb);
    end;
     
    procedure TVisio.Button1Click(Sender: TObject);   // suivant
    begin
      pos:=pos+1;
      if pos>nb-1 then pos:=0;
      filelistbox1.ItemIndex:=pos;
      nom:=FileListBox1.Directory+'\'+FileListBox1.Items[FileListBox1.ItemIndex];
      Image1.Picture.LoadFromFile(nom);
      edit1.Text := inttostr(filelistbox1.ItemIndex+1)+'/'+inttostr(nb);
      edit2.Text := inttostr(pos);
    end;
     
    procedure TVisio.DirectoryEdit1Change(Sender: TObject);
    begin
      FileListBox1.Directory:=DirectoryEdit1.Directory;
      FileListBox1.UpdateFileList;
    end;
     
    procedure TVisio.BitBtn1Click(Sender: TObject);  // précédant
    begin
      pos:=pos-1;
      if pos<0 then pos:=nb-1;
      filelistbox1.ItemIndex:=pos;
      nom:=FileListBox1.Directory+'\'+FileListBox1.Items[FileListBox1.ItemIndex];
      Image1.Picture.LoadFromFile(nom);
      edit1.Text := inttostr(filelistbox1.ItemIndex+1)+'/'+inttostr(nb);
    end;
     
     
    end.

  20. #20
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 132
    Points
    15 132
    Par défaut
    Citation Envoyé par bern59 Voir le message
    Désolé, le problème persiste.
    Je persiste à dire que si tu as un problème d'ouverture de fichier, c'est plus lié au fichier qu'au code.

    Ci-dessous une version améliorée, pour y voir clair j'ai viré le FormCreate qui ne sert à rien et les TEdit, tu les remettras :
    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
    procedure TVisio.proc_commune;
    begin
      filelistbox1.ItemIndex:=pos;
      nom:=FileListBox1.Directory+'\'+FileListBox1.Items[pos];
      Image1.Picture.LoadFromFile(nom);
    end;
     
    procedure TVisio.DirectoryEdit1Change(Sender: TObject);
    begin
      FileListBox1.Directory:=DirectoryEdit1.Directory;
    //??  FileListBox1.UpdateFileList;  // sert à rien, fait automatiquement
      nb := FileListBox1.Count; // de FLB.Change, mieux ici
    end;
     
    procedure TVisio.FileListBox1Change(Sender: TObject);
    begin
      nom:=FileListBox1.Directory+'\'+FileListBox1.GetSelectedText;
      image1.Picture.LoadFromFile(nom);
      pos:=filelistbox1.ItemIndex;
    //  nb := FileListBox1.Count;  // stupide ici
    end;
     
    procedure TVisio.Button1Click(Sender: TObject);   // suivant
    begin
      inc(pos);
      if pos>nb-1 then pos:=0;
      proc_commune;
    end;
     
    procedure TVisio.BitBtn1Click(Sender: TObject);  // précédent
    begin
      dec(pos);
      if pos<0 then pos:=nb-1;
      proc_commune;
    end;
    sans oublier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      private
        { private declarations }
        procedure proc_commune;
      public
    EDIT : et pour y voir bien clair, tu rajouteras un TEdit et dans le FLB.Change tu rajouteras EditX.Text := nom; comme ça tu verras parfaitement le nom du fichier sélectionné, à toi d'analyser ensuite ceux qui partent en erreur. /EDIT
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

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

Discussions similaires

  1. actualisation d'une base de données automatiquement
    Par klimero dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 19/01/2006, 18h07
  2. Site qui vérifie les actualisations d'une page web
    Par LFC dans le forum Autres langages pour le Web
    Réponses: 4
    Dernier message: 01/12/2005, 18h47
  3. Actualisation d'une barre d'outil
    Par zoom61 dans le forum IHM
    Réponses: 2
    Dernier message: 07/03/2005, 10h28
  4. [MFC] Probleme d'actualisation d'une listbox
    Par Robleplongeur dans le forum MFC
    Réponses: 5
    Dernier message: 13/05/2004, 14h15
  5. Actualisation d'une liste "dépendante".
    Par Trilby dans le forum ASP
    Réponses: 6
    Dernier message: 19/11/2003, 18h39

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