2017-06-21 2 views
-1

Préface & Raisonnement:

Je suis intéressé à gagner un peu de connaissances sur le sujet, je l'ai toujours voulu éviter, dans Events vb.Appeler un sous-programme d'un événement

Je n'utilise pas VBA, mais la langue est très similaire (sans les références propres à un office), et en fait, les états de documentation ceci:

« AccuTerm comprend un puissant langage de script similaire à la populaire système de programmation Microsoft Visual Basic , édition Applications (VBA) ... »

J'ai été réprimandé ici avant d'appeler le langage de script avant « VBA », mais ce serait pourquoi. Toute réponse qui utilise le langage VBA fonctionnera, tant qu'elle n'a pas de réponses spécifiques à l'application, telles que: Application. ou ActiveSheet. ainsi que ses constantes. (Je vais aussi devoir utiliser Late Binding pour la plupart des objets, si nécessaire, mais je ne vois pas pourquoi ce serait.)

Obtenons lui

Fondamentalement tout ce que je voulais savoir si un Event peut tirer sur la base d'une action d'un utilisateur, telle que taper 205 et Chr$(13) ensemble. L'objet ActiveSession autorise les événements et cette session (objet) est l'endroit où l'événement se produira.

Lors de l'augmentation de l'événement, pourrait-il appeler un sous-programme avec des paramètres supplémentaires? Tels que:

Sub TestSub(Param1 as String, Param2 as Object) 
    ' Perform some action 
End Sub 

Question

  • Quelle serait la syntaxe appropriée pour être l'événement: Event1 qui se déclenche lorsque l'utilisateur saisit la chaîne "205" & Chr$(13) dans l'objet ActiveSession?
  • Comment Event1 appel TestSub?
+0

Il n'y a rien d'évident dans la référence (http://www.zumasys.com/atfiles/manuals/at7/AccuTerm-7-VBA-Language-Reference-Manual.pdf) qui suggère que votre application supporte tout type d'événement programmation basée sur la base (au moins du type que vous semblez rechercher) –

+0

@TimWilliams cela aiderait-il? http://www.zumasys.com/atfiles/manuals/at2k2/AccuTerm-2K2-Programmers-Guide.pdf –

+0

On dirait que c'est quelque chose que vous pourriez avoir à payer quelqu'un pour vous aider à comprendre. Il est peu probable que quelqu'un ici connaisse la réponse à votre problème. –

Répondre

0

J'ai trouvé beaucoup sur les événements dans le manual

page 14

Dim WithEvents objSession As AccuTermClasses.Session 

Voici deux événements que j'ai trouvé rapidement:

page 28

DataReady événement
objet _DataReady()
Cet événement est déclenché lorsque la propriété InputMode est non nulle de la session, et données ont été reçues de l'hôte et est prêt à être lu en utilisant la méthode Input.

page 31

événement Extension
objet _Extension (texte String)
Cet événement est déclenché lorsque l'un des caractères de préfixe d'extension et suffixe ont été reçus par le moteur d'émulation. Cet événement est utilisé pour étendre la fonctionnalité du moteur d'émulation. Utilisez la méthode SetExtension à spécifiez les caractères de préfixe et de suffixe.

j'imagine que l'un de ces événements pourrait fonctionner, et vous pouvez ajouter des gestionnaires d'événements pour eux, respectivement:

Private Sub objSession_DataReady() 
    ' ??? 
    TestSub 
End Sub 

Private Sub objSession_Extension(text As String) 
    ' maybe with this one, you can see if text contains your desired string 
    TestSub 
End Sub 

(en savoir plus sur les événements VB here)

Et je a renoncé à chercher plus d'événements parce que le terme «événement» apparaît 235 fois dans le fichier d'aide.

Maintenant pour cela:

J'ai grondé ici avant d'appeler le langage de script avant « VBA », mais ce serait pourquoi.

VBA (Visual Basic pour Applications) est pas un langage de script. C'est une implémentation de Visual Basic 6 incluse avec Microsoft Office, et d'autres applications, avec lesquelles on peut écrire du code VB6. Il est compilé dans une DLL lorsqu'il est exécuté avec des applications Office. Mais ...

AccuTerm comprend un puissant langage de script similaire à le populaire système de programmation Microsoft Visual Basic, ...

Édition Applications (VBA) ... qui n'est pas la même comme le VBA utilisé par 99,9% des utilisateurs de VBA! C'est similaire à VBA qui vient avec MS Office, mais il est scripté. Il existe une différence. Pratiquement, cependant, la différence n'est pas assez grande pour faire une distinction en ce qui concerne les étiquettes de votre question - VBA est très bien. Comprenez simplement pourquoi vous avez été "grondé". En outre, l'étiquette vb.net est encore moins appropriée. Pas du tout, en fait.