|
|
|||||||||||||||||||||||||||||||||||||||||||
|
Une librairie ActiveX est une DLL qui utilise pour communiquer avec le programme qui l'utilise le protocole ActiveX, appellé aussi COM (Component Object Model). Ce protocole de communication entre le client (programme utilisateur) et le serveur (la DLL) permet au client de créer des objets et d'en invoquer les méthodes, d'en lire et d'en modifier les propriétés et d'en recevoir des événements. Avec un serveur ActiveX (DLL ou exécutable) le programmeur a l'impression de travailler avec des objets inclus dans son application, et c'est plutôt confortable.
Odyssey software est une société qui développe des composants ActiveX pour Pocket PC. Cette société a eu la très bonne idée de créer une DLL ActiveX qui, utilisée avec eVB, lui ajoute des fonctions extrêmement utiles, et comme une bonne nouvelle ne vient jamais seule, sachez que cette librairie est 100% gratuite !!!
Pour commencer il vous faut télécharger le programme d'installation qui placera sur votre PC et sur votre Pocket PC la librairie. La libraire installée sur le PC n'est là que pour permettre à eVB de vous donner la liste des objets, méthodes et propriétés dans l'IDE.
OSIUTIL publie 4 objets :
L'instanciation de l'objet 'Win32' s'effectue comme pour les autres objets ActiveX, en utilisant la méthode 'CreateObject' fournie par eVB : Dim wWin32 As OSIUTIL.Win32 Cet objet fournit une nouvelle méthode 'CreateObject' qui ne provoque pas de perte de mémoire. En effet, la méthode 'CreateObject' fourni par eVB réagit très mal lorsqu'elle est utilisée pour créer un objet qui publie des énumérations, comme par exemple certains objets fournis par ADOCE. Ce que les développeurs d'Odyssey Software préconisent est d'utiliser le 'CreateObject' de eVB pour instancer l'objet 'Win32' de leur librairie, puis d'utiliser uniquement le 'CreateObject' fourni par cet objet 'Win32' : Dim wWin32 As OSIUTIL.Win32
Dim wRecordset As ADOCE.Recordset Set wWin32 = CreateObject("OSIUTIL.Win32") Set wRecordset = wWin32.CreateObject("ADOCE.Recordset.3.0")
Lorsqu'on a l'habitude de développer avec VB (le grand frère de eVB), on est vraiment frustré de ne pouvoir utiliser les 'Collections' avec eVB. Il faut rappeler que les collections sont des sortes de tableaux de pointeurs vers des objets avec la possibilité d'avoir pour chaque entrée ce pseudo tableau une clé qui permet de retrouver un élément par cette clé. Si vous éliminez un élement, il n'y a pas de trou, les éléments qui suivaient celui que l'on enlève remontent tous d'un cran et l'objet pointé par cet élément n'est pas détruit, sauf si la collection était la dernière à faire référence à cet objet, dans ce cas, il est automatiquement détruit par les mechanismes de gestion de la mémoire de eVB. L'objet 'Collection' fourni par la librairie OSIUTIL permet de gérer une collection avec : 3 propriétés
et 4 méthodes
Nous allons par exemple créer une collection à laquelle nous allons ajouter 3 objets de type TextBox (présents sur la feuille où s'execute le code), puis nous allons modifier ces objets au travers de la collection : Sub TestCollection() Dim wCollection As OSIUTIL.Collection Rem Instanciation de
la collection, avec le CreateObject de eVB, car l'objet Rem On ajoute les 3
Textbox à la collection Rem Comme les collection
peuvent stocker tous types de données, Rem Nous allons maintenant
modifier la propriété .Text des 3 Textboxs Rem Nous allons passer
par une variable intermédiaire Rem Nous allons afficher
la chaine stockée Rem Pour finir nous
éliminons l'item "PREMIER" End Sub
L'objet 'File' permet de lire et d'écrire des tableaux d'octets. Cet objet publie 2 méthodes :
Ces méthodes permettent de gérer des fichiers binaires : Dim wFile As OSIUTIL.File Set wFile = CreateObject("OSIUTIL.File")
Cet objet permet de manipuler la base de registre. Cet objet publie 6 méthodes :
Important : Un objet 'Registry' permet de travailler avec une seule clé à la fois, si vous devez travailler sur plusieurs clés en même temps, il vous faudra utiliser (donc instancier) plusieurs objets de type 'Registry'. Dans l'exemple qui suit, nous allons lire le contenu d'une clé (fictive), et en créer une autre. Comme l'objet 'Registry' publie des énumérations, nous devons utiliser les services du 'CreateObject' proposé par la libraire afin d'éviter les pertes de mémoire : Dim wWin32 As OSIUTIL.Win32 Rem Instanciation des
objets nécessaires Rem Lecture du contenu
d'une clé, si elle n'existe pas, il faut la créer Rem On écrit
cette valeur dans une autre clé Important : Le paramètre 'Value' de la méthode 'SetValue' est un variant. C'est le type interne de se variant qui détermine si la clé est de type chaine ou long (DWORD).
Cette librairie est vraiment très utile, elle apporte des fonctions qui simplifient vraiment la dure vie des petits développeurs que nous sommes ;) et en plus elle est 100% gratuite ! Si vous l'utilisez dans vos applications il faudra juste ne pas oublier de l'inclure correctement au package d'installation ! |
|||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||
|
Copyright 2001-2004 - Tous droits réservés
|
|||||||||||||||||||||||||||||||||||||||||||
|
iPAQ
est un produit de COMPAQ.
|