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

Langage Delphi Discussion :

Erreur Application.ProcessMessages


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut Erreur Application.ProcessMessages
    Bonjour à tous,

    Lors de l'exécution de mon programme, j'obtiens le message d'erreur suivant :

    'Violation d'accès à l'adresse 008E04A8 dans le module 'vcl90.bpl'
    Lecture de l'adresse 00000004'


    Pour information, mon programme est un petit utilitaire de gestion des connexions internet (adresse IP, statut de connexion, gestion du VPN, des cartes réseaux, du proxy...).
    Le pas à pas dans Delphi m'a permis de situer la procédure "incriminée" (plus particulièrement, la ligne en rouge) :

    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 TForm1.RafraichirProxies();
    var
      CurrProxy : String;
      ProxyActive: boolean;
       i: integer;
    begin
      // Si une sauvegarde des proxies existe
      if FileExists(FICHIERPROXY) then
      begin
        // Récupère si le proxy est actif dans Internet Explorer
        ProxyActive := LireIntegerDansRegistre(INTERNETSETTINGSREGPATH, 'ProxyEnable') = 1;
        // On récupère l'adresse du proxy
        CurrProxy := LireStringDansRegistre(INTERNETSETTINGSREGPATH, 'ProxyServer');
        // Pour chaque adresse de la liste des proxies
       for i := 0 to ListView1.items.count - 1 do
        begin
           //On coche la case du proxy actuel (si actif) et décoche les autres
         ListView1.Items.Item[i].Checked := (ListView1.Items.Item[i].Caption = CurrProxy) and ProxyActive;
        end;
      end;
     Application.ProcessMessages;
    end;
    J'aimerais donc avoir votre avis sur cette la cause possible de cette erreur, qui reste pour moi assez mystérieuse...

    Merci d'avance pour votre aide !

  2. #2
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    à tu des événement liée à la listview?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut
    Euh, oui : un évènement PopupMenu et un évènement SmallImages.
    Du coup, je ne peux pas utiliser Application.ProcessMessages ?

  4. #4
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    et si tu met le processe message dans la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       for i := 0 to ListView1.items.count - 1 do
        begin
           //On coche la case du proxy actuel (si actif) et décoche les autres
         ListView1.Items.Item[i].Checked := (ListView1.Items.Item[i].Caption = CurrProxy) and ProxyActive;
          Application.ProcessMessages;
        end;

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut
    Non, même en le mettant dans la boucle, j'ai la même erreur

  6. #6
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    alors remet là au tout début de la procedure, car je crois que t'a l'erreur dans le code appelant de celle ci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur de Application->ProcessMessages()
    Par megamario dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/11/2009, 10h15
  2. Application.ProcessMessages dans une table
    Par sondo dans le forum Bases de données
    Réponses: 11
    Dernier message: 04/02/2007, 14h16
  3. Blocage même avec Application.ProcessMessages
    Par Sub0 dans le forum Delphi
    Réponses: 7
    Dernier message: 31/01/2007, 05h13
  4. ERREUR : Application mal configuré
    Par picsou33 dans le forum C++
    Réponses: 7
    Dernier message: 19/06/2006, 21h51
  5. problème avec Application->ProcessMessages()
    Par petitours dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/08/2005, 10h27

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