Message de rapport:
 

[WD 12 EXPRESS] Utilisation Assemblage .NET d'ESRI

Sujet: [WD 12 EXPRESS] Utilisation Assemblage .NET d'ESRI
par hgoethe sur 7/12/2009 11:25:19

Bonjour,

Je suis nouveau dans l'environnement Windev, et je suis actuellement en train de tester l'utilisation d'assemblage .NET de la gamme de logiciel ESRI dans Windev.

J'ai ajouté les assemblages dont j'ai besoin dans mon projet Windev via le menu "Atelier->.NET->Utiliser un assemblage .NET dans ce projet". Je peux voir dans la section "Assemblage .NET" de la fenêtre flottante "Projet" les classes ESRI que je compte manipuler.

J'ai écrit une procédure derrière un bouton qui doit me permettre d'utiliser l'assemblage .NET pour me connecter à une source de données.

Voici le code Windev :
MyFactoryEXPRESS est un WorkspaceFactoryClass dynamique
MyFactoryEXPRESS = allouer un ShapefileWorkspaceFactoryClass

MyWorkspaceEXPRESS est un WorkspaceClass dynamique
MyWorkspaceEXPRESS = MyFactoryEXPRESS:OpenFromFile("D:\Esri BeLux\1516 SIGA 2006\PYL\Internet 2007\arbor2002\",0)

IF MyWorkspaceEXPRESS=Null THEN
	Info("workspace null")
ELSE
	Info(MyWorkspaceEXPRESS:pathName)
END

La méthode OpenFromFile doit me renvoyer un objet de type WorkspaceClass, mais je reçois un message d'erreur sur la ligne "Info(MyWorkspaceEXPRESS:pathName)" qui doit simplement me donner le répertoire auquel l'objet est connecté qui est une chaîne.

Voici l'erreur : Echec lors de la lecture du champ <PathName> du type <__ComObject>

Je sais que mon objet MyFactoryEXPRESS est bien alloué, car je peux utiliser une méthode de cet objet qui teste si le répertoire que je vais utiliser dans la méthode OpenFromFile est correct. Mais on dirait que lorsque j'utilise la méthode OpenFromFile, l'objet renvoyé dans la variable MyWorkspaceEXPRESS n'est pas du bon type.

Voici une version du code en VB.NET qui fonctionne très bien :
        Dim pWSFClass As WorkspaceFactory
        pWSFClass = New ShapefileWorkspaceFactory

        Dim pWSClass As Workspace
        pWSClass = pWSFClass.OpenFromFile("D:\Esri BeLux\1516 SIGA 2006\PYL\Internet 2007\arbor2002\", 0)

        If pWSClass Is Nothing Then
            MessageBox.Show("workspace null")
        Else
            MessageBox.Show(pWSClass.PathName)
        End If

Y a-t-il une manière particulière d'initialiser un objet dans windev à partir de l'appel d'une méthode d'un autre objet (comme c'est le cas ici) ? Je ne peux pas utiliser l'instruction "allouer un" pour mon objet MyWorkspaceEXPRESS parce que le constructeur de la classe WorkspaceClass est protégé. L'objet doit être dérivé d'une autre classe, en appelant une méthode de celle-ci.

Existe-t-il une méthode de casting d'objet en Windev ?

Merci pour toute l'aide que vous pourrez m'apporter.
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2