<< Retour au sommaire

 

La fonction NewTextEvent

 

 

 

Table des matières

1.      Rappel de la définition d’une fonction évènementielle ;

2.      Présentation de la fonction NewTextEvent ;

3.      Un exemple.

 

Rappel de la définition d’une fonction évènementielle

 

Le déclenchement de l’exécution d’une fonction évènementielle n’est pas réalisé par le programmeur.

En effet, habituellement, les fonctions classiques sont exécutées lorsque leur nom est écrit dans un script ou dans une autre fonction, ce type de programmation est d’ailleurs appelé « appel de fonction ».

 

La fonction évènementielle, quant à elle, est associée à un évènement, elle est exécutée à chaque fois que l’évènement qui lui est associé survient.

Si une fonction évènementielle contient des paramètres, ces paramètres seront automatiquement renseignés par le programme…

 

Présentation de la fonction NewTextEvent

 

Cette fonction est naturellement exécutée lorsqu’un nouveau texte apparaît à l’écran.

 

La syntaxe :

Void Function NewTextEvent (handle hwnd, string buffer, int nAttributes,

int nTextColor, int nBackgroundColor, int nEcho, string sFrameName)

; ici le contenu de la fonction

EndFunction

 

La description :

Void signifie que la fonction ne retourne aucune donnée après son exécution.

 

En paramètres, sept déclarations de variables de passages qui seront automatiquement renseignées par le système au moment de l’exécution de la fonction.

 

Voici les 7 paramètres :

 

Hwnd, c’est une variable de type « Handle » qui retourne la poignée du contrôle qui vient de recevoir une modification de texte.

 

Buffer, C’est une variable de type « String » qui correspond au nouveau texte qui vient d’apparaître à l’écran. « Buffer » est en quelle que sorte une mémoire tampon…

 

nAttributes, C’est une variable de type « Int » qui correspond au numéro des propriétés du nouveau texte.

 

nTextColor, C’est une variable de type « Int » qui correspond à un numéro indiquant la couleur du nouveau texte.

 

nBackgroundColor, C’est une variable de type « Int » qui correspond au numéro de la couleur du fond de l’écran à l’endroit exact où le texte vient d’apparaître.

 

nEcho, C’est une variable de type « Int » qui indique le mode de « l’écho écran » actuellement actif.

Remarque :

Manuellement, le mode « écho » se modifie par l’intermédiaire du raccourci clavier Insère +S.

La variable nEcho contiendra 0 pour le mode « aucun », 1 pour « Surligné » et 2 pour « Tout ».

 

sFrameName, C’est une variable de type « String » qui contient le nom du « Fram » dans lequel le texte vient d’apparaître.

 


Un exemple

 

Ici, dans ce chapitre, nous allons nous amuser dans le bloc notes !

Nous allons créer une fonction « NewTextEvent » qui lira automatiquement l’horloge dès qu’une nouvelle minute sera écoulée.

 

En effet, dès lors qu’une minute vient de s’écouler, l’heure affichée par l’horloge système dans la barre des tâches change.

 

Analysons bien la situation…

 

Pour commencer, nous devons repérer la poignée de l’horloge afin d’être en mesure de l’identifier.

 

Par conséquent, nous devons créer la fonction « NewTextEvent » dans le fichier source du bloc notes, et pour l’instant, lui demander de lire la poignée de l’horloge, et ce, en passant en paramètre à un « SayInteger » le premier paramètre de la fonction de « NewTextEvent ».

 

Ouvrez l’application « bloc notes ».

 

Réalisez le raccourci clavier insère +0 du pavé alphanumérique afin d’ouvrir l’éditeur Script-manager.

 

Maintenant nous devons placer le curseur à la fin du fichier source, réalisez le raccourci clavier CTRL +Fin et pressez 2 ou 3 fois la touche entrée pour aérer votre code.

 

Activez l’option de menu :

« ALT +Script/Nouveau script ou CTRL +E.

Dans la boîte de dialogue qui apparaît à l’écran, vous êtes directement positionnés sur la zone d’édition dans laquelle vous devez saisir le nom de la fonction, saisissez :

NewTextEvent

Maintenant faites tabulation, vous êtes sur la case à cocher intitulée : « Peut être assigné à une touche », comme il ne s’agit pas d’un script, ne cochez pas cette option.

 

Faites tabulation, vous êtes sur la zone d’édition intitulée « résumé », saisissez :

Fonction évènementielle associée à l’apparition d’un texte à l’écran.

 

Faites tabulation, vous êtes sur la zone d’édition intitulée « description », saisissez :

Dès que la fonction repèrera un changement de texte dans l’horloge, le contenu de cette dernière sera lu…

 

Faites tabulation, vous êtes maintenant dans une liste intitulée « catégories », pressez flèche basse jusqu’à atteindre la catégorie :

« Say », « Say » comme « dire ».

 

Faites tabulation, vous arrivez dans une liste contenant le type de la donnée retournée par la fonction, avec les flèches verticales, choisissez :

« Void », « Void » comme « vide » car la fonction ne retourne aucune donnée.

 

Faites CTRL +TAB afin d’activer l’onglet « Paramètres ».

Ce que je vais vous présenter maintenant, doit être réalisé autant de fois qu’il y aura de paramètres à définir dans votre fonction…

En l’occurrence ici dans la fonction « NewTextEvent », il va falloir déclarer 7 variables.

Faites tabulation pour atteindre la zone d’édition intitulée « Nouveau paramètre ».

Saisissez le nom d’une variable de passage.

Par exemple, IdentifiantObjet.

 

Faites tabulation jusqu’à la zone d’édition intitulée « Description », vous devez saisir la description, enfin le rôle de la variable. Saisissez :

« Contiendra la poignée de l’objet qui sera affecté par l’apparition du texte ».

Faites tabulation, vous êtes sur une liste intitulée « Types disponibles », il s’agit du type de la variable de passage que l’on est en train de définir, choisissez :

« Handle », « Handle » comme « poignée ».

 

Faites tabulation pour atteindre le bouton intitulé « Ajouter » et pressez la touche entrée.

 

Maintenant, ajoutez les 6 autres variables en suivant scrupuleusement la démarche décrite au-dessus.

LeNouveauTexte de type « String »,

AttributTexte de type « Int »,

CouleurTexte de type « Int »,

CouleurFondEcran de type « Int »,

ModeEchoEcran de type « Int »,

Et environnement de type « String ».

 

Bravo, nous pouvons maintenant valider la création de la fonction, faites tabulation jusqu’au bouton « Ok » et pressez la touche entrée.

 

Vous êtes de retour dans le fichier script, le curseur est à l’intérieur des lignes de début et de fin de votre fonction.

 

Voici le code inséré :

Void Function NewTextEvent (handle IdentifiantObjet, string LeNouveauTexte, int AttributTexte, int CouleurTexte, int CouleurFondEcran, int ModeEchoEcran, string environnement)

 

EndFunction

 

Maintenant, je vous propose que nous rajoutions le code qui va permette d’obtenir la poignée de l’horloge.

 

Voici ce que ça donne :

 

Void Function NewTextEvent (handle IdentifiantObjet, string LeNouveauTexte, int AttributTexte, int CouleurTexte, int CouleurFondEcran, int ModeEchoEcran, string environnement)

; Lecture de la poignée

SayInteger (IdentifiantObjet)

EndFunction

 

Voilà, compilez, retournez dans le bloc notes et patientez…

Vous n’attendrez pas longtemps !

Et oui, dès que l’horloge passera à la minute suivante, JAWS vous annoncera la poignée de l’horloge, information à retenir bien sûr…

 

D’ailleurs, si vous avez bien retenu la poignée comme un grand ou une grande, voici le script que vous pourrez élaborez.

 

Void Function NewTextEvent (handle IdentifiantObjet, string LeNouveauTexte, int AttributTexte, int CouleurTexte, int CouleurFondEcran, int ModeEchoEcran, string environnement)

; Vérifie si la poignée est celle de l'horloge

If IdentifiantObjet==131274 Then

 ; Il s'agit bien de l'horloge !

 ; Lecture du nouvel affichage de l'horloge

 SayString (LeNouveauTexte)

EndIf

EndFunction

 

Philippe BOULANGER