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 :

Erreur TOpenDialog depuis peu


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de hlmhv
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 212
    Par défaut Erreur TOpenDialog depuis peu
    Bonjour à toutes et à tous!

    Je tombe systématiquement sur un blocage du fichier compilé ET de Lazarus lorsque j'utilise un TOpenDialog du menu "Dialogs".
    Lorsque je réalise en mode "débogage" un OpenDialog.Execute, la fenêtre habituelle de cet objet commence à s'ouvrir, puis stoppe, et Lazarus s'avère incapable de stopper la procédure en cours (je dois arrêter Lazarus via le gestionnaire de tâches. Il m'est arrivé aussi que celui-ci refuse mon ordre, voire se bloque).

    Je précise que j'utilise un antivirus sérieux (Eset) et que j'ai vérifié la bécane: aucun virus détecté..


    Pour tester au plus facile j'ai réalisé ce code ultra-banal:

    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
    unit Unit1;
    {$mode objfpc}{$H+}
    interface
    uses
      Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;
     
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        OD: TOpenDialog;
        procedure Button1Click(Sender: TObject);
        private
        public
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.lfm}
     
    procedure TForm1.Button1Click(Sender: TObject);
    Var
      Temp: String;
    begin
      If OD.Execute Then Begin
        Temp:=OD.FileName;
        Edit1.Text:=Temp;
        Edit1.Repaint;
      end;
    end;
     
    end.

    Vous avouerez qu'il n'y a guère plus basique..

    Je propose ici une copie d'écran de ce qui se passe lorsque je clique sur le bouton "Button1":

    Nom : Erreur.jpg
Affichages : 137
Taille : 36,3 Ko



    J'utilise Windows 10 (22H2) & la dernière version de Lazarus (2.2.6, FPC 3.2.2) et ma foi ce genre d'erreur ne m'arrivais pas auparavant.

    C'est énervant car je n'ose plus toucher à mes anciens codes utilisant un Opendialog..

    PS: j'ai exactement la même erreur si j'utilise un TSaveDialog. : bogue dans la routine de fenêtrage qui doit être commune?

    Merci à vous et bon dimanche!

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 155
    Par défaut
    Salut,

    j'ai utilisé ton code mais sans la dernière ligne de Button1Click, qui ne sert strictement à rien (à part mettre la pagaille ?)1, et tout fonctionne très bien.

    Mais je suis sous Linux,ça fait peut-être une différence ?

    1 : c'est peut-être sa présence qui fait tourner en boucle ? Pas testé.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    Je suis en même version de Windows, j'ai la version
    Lazarus 2.2.7 (rev lazarus_2_2_6-1-gada7a90f86) FPC 3.2.3 i386-win32-win32/win64
    qui est la dernière version stable avec ses correctifs , installé avec fpcupdeluxe et je n'ai pas le problème avec exactement le même code. Soit c'est lié à un correctif, soit au debugger (essaye fpdebug si tu es sur GDB ou l'inverse).

  4. #4
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 650
    Par défaut
    Bonjour,

    Même si je ne pense pas que ce soit la cause du problème, dans la gestion de l'événement onclick du bouton :
    • Temp ne sert à rien
    • Le repaint non plus (ne faisant rien, le programme à tout le temps de traiter les rafraichissements que la modification de Edit1 entraîne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.Button1Click(Sender: TObject);
    begin
       If OD.Execute Then Edit1.Text := OD.FileName;
    end;
    Il faudrait voir les propriétés de OD.

    Salutations

  5. #5
    Membre confirmé Avatar de hlmhv
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 212
    Par défaut
    Citation Envoyé par thierrybo Voir le message
    Je suis en même version de Windows, j'ai la version
    Lazarus 2.2.7 (rev lazarus_2_2_6-1-gada7a90f86) FPC 3.2.3 i386-win32-win32/win64
    qui est la dernière version stable avec ses correctifs , installé avec fpcupdeluxe et je n'ai pas le problème avec exactement le même code. Soit c'est lié à un correctif, soit au debugger (essaye fpdebug si tu es sur GDB ou l'inverse).
    Oufti!
    Où diable as-tu trouvé cette dernière version?? Sur la page Lazarus/Download je ne puis que charger la 2.2.6 avec FPC 3.2.2, ou alors je dois changer de cerveau ou de lunettes.
    Sinon je note tes infos..

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 137

  7. #7
    Membre confirmé Avatar de hlmhv
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 212
    Par défaut
    Citation Envoyé par thierrybo Voir le message
    Merci beaucoup pour FPCDeluxe, mais la version corrigée de Lazarus dont tu parles?

  8. #8
    Membre confirmé Avatar de hlmhv
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 212
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Salut,

    j'ai utilisé ton code mais sans la dernière ligne de Button1Click, qui ne sert strictement à rien (à part mettre la pagaille ?)1, et tout fonctionne très bien.

    Mais je suis sous Linux,ça fait peut-être une différence ?

    1 : c'est peut-être sa présence qui fait tourner en boucle ? Pas testé.
    Si tu parles du Repaint, je sais que théoriquement il est inutile, mais en pratique je remarque que si je ne le mets pas et que l'ordi est "chargé" Windows - car c'est bien ce sacripant que j'utilise - l'affichage se fait quand l'ordi a le temps..
    Alors je pense bien que Linux, ce serait mieux. Et j'y penses..
    De toute façon si je retire cette ligne c'est la même chose.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    Dans le guide il faut suivfre "fixes", ca installera la branche des correctifs de la version stable. Attention omme indiqué dàns le guide ça installe une version complètement indépendante de celle déjà installée.

  10. #10
    Membre confirmé Avatar de hlmhv
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 212
    Par défaut
    Ok merci! :-)

Discussions similaires

  1. Erreur 3061 : Trop peu de paramètres.1 attendu
    Par deglingo37 dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 05/12/2014, 19h55
  2. Erreur 401 depuis peu de temps
    Par FoxDeltaSierra dans le forum ASP.NET
    Réponses: 2
    Dernier message: 13/06/2010, 10h25
  3. J'ai vista depuis peu - je galère!
    Par Invité dans le forum Windows Vista
    Réponses: 15
    Dernier message: 09/12/2007, 15h38
  4. OpenRecordset erreur 3061 trop peu de paramètres
    Par fafabzh6 dans le forum Access
    Réponses: 4
    Dernier message: 26/09/2006, 16h15

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