PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → méthode virtuelles
méthode virtuelles
Started by Sébastien, Feb., 02 2005 4:50 PM - No answer
Posted on February, 02 2005 - 4:50 PM
Bonjour,

Je définit une classe dans un composant et j'appelle ce composant depuis un autre projet.

Dans ce composant, j'ai une classe SimpleScanListener qui contient une méthode update() qui ne fait rien. La classe possède également la variable globale: listenerEtatScanner est un SimpleScanListener dynamique = Null
et la méthode setListener(listener):
listenerEtatScanner = listener

Depuis l'autre projet, j'effectue la chose suivante:
listener est un SimpleScanListener dynamique
listener = allouer un SimpleScanListener
composant.setListener(listener)

donc là, pas de problème. Mais maintenant je veux étendre la classe SimpleScanListener et je crée ÉtenduScanListener, je définit la méthode update() comme étant virtuelle et je place un trace("Dans étenduScanListener") dans la méthode redéfinie.

Je change donc le code du projet appelant le composant:

listener est un ÉtenduScanListener dynamique
listener = allouer un ÉtenduScanListener
composant.setListener(listener)

Mais meme en placant un "breakpoint" dans la méthode update de la classe ÉtenduScanListener, le trace ne s'affiche pas. La procédure update est déclarée comme VIRTUELLE. (automatiquement par WinDev). Je voudrais que le code de la classe redéfinie soit exécuté bien entendu. Pourtant, tout marche bien si j'utilise SimpleScanListener

Merci pour votre aide !!

Sébastien