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

EDI Delphi Discussion :

Comment faire un point d'arrêt dans l'unité Classes ?


Sujet :

EDI Delphi

  1. #1
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut Comment faire un point d'arrêt dans l'unité Classes ?
    Bonjour tout le monde.

    J'utilise une ListBox, qui possède un item valant ''.
    Mais MyListBox.Items.IndexOf( '' ) retourne -1 et non le bon index.
    J'ai voulu mettre un point d'arrêt dans l'unité Classes, dans la fonction
    function TStrings.IndexOf(const S: string): Integer;
    Mais quand j'essaie de débugguer l'application, il ne rentre pas dans le point d'arrêt, d'ailleurs, quand je compile, le point d'arrêt et marqué d'une croix pour montrer qu'il n'est pas pris en compte.

    Peut-on d'une façon ou d'une autre arriver à rentrer dans les méthodes de l'unité Classes ?

    Merci.

    PS : << juste pour le plaisir, il me fait délirer.

  2. #2
    DMO
    DMO est déconnecté
    Membre averti
    Avatar de DMO
    Profil pro
    Inscrit en
    Février 2004
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 290
    Points : 343
    Points
    343
    Par défaut
    Salut Webpac,

    Ce n'est jamais un TStrings qui est instancié en réalité, mais un descendant.

    En ce qui concerne le TListbox, c'est un TListBoxStrings.

    Et le IndexOf y est fait ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function TListBoxStrings.IndexOf(const S: string): Integer;
    begin
      if ListBox.Style in [lbVirtual, lbVirtualOwnerDraw] then
        Result := ListBox.DoFindData(S)
      else
        Result := SendMessage(ListBox.Handle, LB_FINDSTRINGEXACT, -1, LongInt(PChar(S)));
    end;
    Pas de inherited !

    Ce qui explique que le TStrings.IndexOf ne soit pas lié.

    Bon dev'
    « La simplicité est la sophistication suprême » (Léonard de Vinci)

  3. #3
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    J'ajouterai que pour avoir les points d'arrêt utilisables dans les unités de Delphi, il faut cocher l'option "DCU de débogage" dans les "propriétés du projet", onglet "compilateur".
    "Si vous voulez être l’esclave des banques et payer pour financer votre propre esclavage, alors laissez les banquiers créer la monnaie" - Josiah Stamp, 1920, Gouverneur de la Banque d’Angleterre
    "Qui ne peut acheter ruine qui voudrait vendre" - Jacques Duboin.
    "Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants." - Antoine de Saint Exupéry

  4. #4
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    Merci pour ton aide.
    J'ai trouvé l'objet
    TListBoxStringsdans l'unité StdCtrls, j'ai voulu mettre un point d'arrêt dans la méthode IndexOf mais rebelotte, il est marqué d'une croix lors de la compilation. Et l'application ne s'arrête pas lors du débugage.

    Il n'y a pas un endroit qui définit que veut rentrer dans ces unités ?

  5. #5
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    Citation Envoyé par neilbgr
    J'ajouterai que pour avoir les points d'arrêt utilisables dans les unités de Delphi, il faut cocher l'option "DCU de débogage" dans les "propriétés du projet", onglet "compilateur".
    Et Reconstruire l'appli
    "Si vous voulez être l’esclave des banques et payer pour financer votre propre esclavage, alors laissez les banquiers créer la monnaie" - Josiah Stamp, 1920, Gouverneur de la Banque d’Angleterre
    "Qui ne peut acheter ruine qui voudrait vendre" - Jacques Duboin.
    "Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants." - Antoine de Saint Exupéry

  6. #6
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    Merci neilbgr, c'est exactement ce que je cherchais.

    C'est un truc de fou, je viens de faire les tests en utilisant les DCU débogage et maintenant il ne plante plus sur l'IndexOf.

    C'est bizarre, je me demande d'où ça peut provenir.

Discussions similaires

  1. Réponses: 11
    Dernier message: 05/04/2007, 13h13
  2. Point d'arrêt dans le programme
    Par jmde dans le forum Access
    Réponses: 9
    Dernier message: 20/10/2005, 21h06
  3. Comment faire un saut de ligne dans un IMG - Title ?
    Par jlbinfo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 19/10/2005, 18h28
  4. [Débutant]Comment faire des tranches de nombre dans une tabl
    Par Jedecouvreaccess dans le forum Access
    Réponses: 7
    Dernier message: 05/09/2005, 08h46
  5. Comment faire pour modifier une ligne dans une DBGrid?
    Par Nico62 dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/03/2005, 12h24

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