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

C++Builder Discussion :

Plantages avec SetFocus


Sujet :

C++Builder

  1. #1
    Membre chevronné
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Par défaut Plantages avec SetFocus
    Comme mon application peut être réduite dans le systray ou la machine mise en veille, etc., il y a un risque que les manipulations des fontions Focus génèrent un plantage du genre "violation d'accès à l'adresse 0012FD8C. lecture de l'adresse FFFFFFFF". Jusqu'à récemment, le code suivant faisait l'affaire, mais il ne fonctionne pas sur toutes les machines :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      try
      {
        if (Form1->Visible)
        {
          if (!ListView1->Focused())
            ListView1->SetFocus();
          if (ListView1->Items->Count)
            if (ListView1->ItemFocused > 0)
              ListView1->ItemFocused->Selected = true;
        }
      }
      catch(...) { ; }
    Que me conseillez-vous de faire pour éviter les plantages indiqués ?

  2. #2
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut
    salut !

    Tu peux améliorer ça en utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if(!ListView1->Focused())
            if(ListView1->CanFocus())
                    {
                    ListView1->SetFocus();
                    if (ListView1->Items->Count>0)
                            if (ListView1->ItemFocused > 0)
                                    ListView1->ItemFocused->Selected = true;
                    }
    Espérant t'aider.

    A+

Discussions similaires

  1. Probleme avec SetFocus
    Par monsurf dans le forum Access
    Réponses: 14
    Dernier message: 07/06/2006, 17h37
  2. probleme avec SetFocus
    Par firejocker dans le forum MFC
    Réponses: 4
    Dernier message: 05/12/2005, 12h34
  3. Réponses: 9
    Dernier message: 17/03/2005, 17h02
  4. Plantage avec la fonction InvalidateRect
    Par SebCBien dans le forum OpenGL
    Réponses: 3
    Dernier message: 20/01/2004, 20h32
  5. Pb de configuration postgre -> plantage avec DB error
    Par liv dans le forum Installation
    Réponses: 6
    Dernier message: 05/11/2003, 18h07

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