#1 Mon 05 August 2002 19:26
- Gc
- Invité
[VBA] Language objet ?
Bonjour,
Je voudrais juste une petite precision au sujet de VBA est ce un langage orientee objet.
Moi je pensais que oui mais on me dit que non alors quel type de langage est-ce ?
Merci
#2 Fri 02 August 2002 12:09
- MEUNIER Thibaud
- Invité
Re: [VBA] Language objet ?
Sauf erreur de ma part, il faut une reponse de normand : oui et non.
Oui, c'est un langage objet dans la mesure ou on developpe grace a un ensemble de composants.
En fait, on a acces a tous les objets COM legalement enregistres sur le PC.
Non car le developpeur ne peut pas creer lui-meme des objets.
Il lui est impossible de creer des classes metiers adaptees a son besoin.
Thibaud MEUNIER
Communaute Urbaine de Brest.
#3 Mon 05 August 2002 08:25
- Didier Caillon
- Invité
Re: [VBA] Language objet ?
Je penche de meme pour le NON : il se veut OO, mais n'implemente pas les concepts de base de l'Oriente Objet : heritage entre classes (il faut a chaque fois recopier le code de l'hyper-classe dans la classe elle-meme, cad dupliquer a l'infini le code alors que l'interet des classes est la !).
Il l'est pas non plus possible d'avoir de variables communes a toutes les instances d'une meme classe (ex nbre d'instance de cette classe) sans passer par des bidouilles a cote...
De plus, quand on modifie une hyper-classe, on est oblige de reporter les modifications dans les sous-classes. Bref, c'est une tentative vers l'OO , il n'en reste pas moins que l'on atteint pas les mecanismes offerts en C++ ou mieux Java !
#4 Mon 05 August 2002 19:29
- Gaëtan LAVENU
- Invité
Re: [VBA] Language objet ?
VBA est clairement plus proche d'un langage oriente objet qu'Avenue meme si, effectivement, il ne supporte pas (pas plus que VB 6) la notion d'agregation entre l'hyper-classe et les classes heritantes (voir mail de Didier Caillon).
En revanche, contrairement a Avenue, VBA est capable d'utiliser tous les composant COM enregistres sur le poste.
C'est pour cela que VBA permet d'incorporer dans son code des elements comme les controles ActiveX ou referencer des DLL ActiveX. VBA permet egalement, contrairement a Avenue, de creer ses propres classes d'objets et de les instancier dans d'autres partie de son projet VBA, d'un autre projet VBA ou meme dans un projet VB. Ainsi, VBA peut utiliser tout developpement compatible avec la norme COM (VBA, VB, Delphi, VC++, ...). A l'inverse vos developpements de classes avec VBA sont donc reutilisables dans d'autres environnements de developpement.
J'espere que la synthese de ces differents mail vous permettra d'y voir un peu plus clair...
Gaetan LAVENU
Responsable du Service Formation
ESRI France