Comment puis-je faire pour réussir une fonction par paramètre, plus tard à être appelée dans VB6?
serait quelque chose comme ce que j'ai besoin, peut être n'importe laquelle de ces options:
3 Réponses :
IIRC Il y a une adresse Le moyen SOP de gérer cela est avec Enfin, vous pouvez également prendre la route haute, en utilisant la solution Standard OO à cette option: Au lieu de passer la fonction, écrivez votre propre classe qui implémente une interface spéciale de votre propre conception de la fonction code> dans VB6 pour obtenir des adresses de fonction, mais vous aurez probablement une grande difficulté en réalité en réalité l'adresse de cette fonction de VB6. P>
callbyname () code> qui vous permet de, vous savez, appelle des fonctions, etc. par leurs noms. P>
myFunkerface code>. Cette interface n'a qu'une méthode
fioletocall (..) code>, que vous pouvez implémenter dans différentes classes pour appeler les différentes fonctions dont vous avez besoin. Ensuite, vous passez une instance de l'une de ces classes à votre routine, ce qui le reçoit comme
myfunCtonInterface CODE> et appelle la méthode code> mode de fonctionnement code> sur elle. Bien sûr, cela prend beaucoup de changements de conception mineurs ... p>
OK, étant donné que je choisirai une autre structure, car j'ai besoin d'une autre solution, merci
Votre commentaire que vous utilisez Microsoft.XMLHTTP OnReadyStatechange est intéressant. Le page MSDN pour OnReadyStatechange dit qu'il "est Conçu pour une utilisation dans les environnements de script et n'est pas facilement accessible dans Microsoft® Visual Basic® ".
La même page dit que dans Visual Basic 6, vous devriez le faire. Mettre cette déclaration de variable au niveau du module p> et ensuite vous pourrez gérer l'événement de manière habituelle comme celle-ci. P> Private Sub xmldoc_onreadystatechange()
' Deal with the event here '
End Sub
Merci, toutes les 3 réponses m'a beaucoup aidé à décider de la décision de faire.
Vous ne pouvez pas passer une fonction, mais vous pouvez transmettre un objet qui se comporte en fonction (appelé un "foncteur" parfois). Je l'utilise tout le temps. Si votre classe "Fonction" implémente une interface, l'appel sera sécurisé. Par exemple:
Classe abstraite (interface) iaction.cls: p> foncteur qui affiche une URL dans le navigateur par défaut: p> Vous pouvez maintenant créer un tas de ces classes, les enregistrer dans une collection, les transmettre à une fonction ou une méthode qui s'attend à une iration, etc ... p> p>
Merci, toutes les 3 réponses m'a beaucoup aidé à décider de la décision de faire.
Cela doit-il être l'objet de fonction elle-même? Pourquoi ne pas transmettre une chaîne, utilisez-la une instruction de cas pour appeler la fonction appropriée?
J'utilise "microsoft.xmlhttp" puis appelant la méthode nécessite myHTTP.OneReadyStatechange = xfunction. Et xfunction doit être transmis par le paramètre
Je ne me souviens pas trop bien VB6, mais je pense que vous devez utiliser l'adresse de pour enregistrer un rappel. Et la fonction doit être déclarée dans un module.