[WD 12 EXPRESS] Utilisation Assemblage .NET d'ESRI
Stagiaire WDF
Inscrit:
07/12/2009 11:16
Post(s): 2
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.

Contribution le : 07/12/2009 11:25

Edité par drcharly93 sur 7/12/2009 15:18:25
Edité par drcharly93 sur 7/12/2009 15:19:24
Créer un fichier PDF de la contribution Imprimer


Re: [WD 12 EXPRESS] Utilisation Assemblage .NET d'ESRI
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
bonjour,

essayer avec l'indice 1
MyWorkspaceEXPRESS = MyFactoryEXPRESS:OpenFromFile("D:\Esri BeLux\1516 SIGA 2006\PYL\Internet 2007\arbor2002\",1)


Windev gere ses objets avec un indice qui commence à 1 ici je ne connait pas ce que représente la valeur 0 indice ou pas !

Contribution le : 07/12/2009 15:25
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: [WD 12 EXPRESS] Utilisation Assemblage .NET d'ESRI
Stagiaire WDF
Inscrit:
07/12/2009 11:16
Post(s): 2
Bonjour,

Voici la description de la méthode OpenFromFile fournie par Windev :

// OpenFromFile
//
// Paramètres :
// fileName : chaîne
// hWnd : entier
// Valeur de retour :
// IWorkspace

[ <Résultat> = ] OpenFromFile (LOCAL fileName est un(e) chaîne, LOCAL hWnd est un(e) entier)

Le premier paramètre est un chemin d'accès à un répertoire qui contient un certain type de données.
Le deuxième paramètre est un entier qui correspond au hWnd de la fenêtre appelante, "0" signifie juste qu'on ne fournit pas de hWnd, ce qui n'empêche pas la méthode fonctionner.

Mon problème ici est que la méthode ne semble pas renvoyer le bon type de donnée, un IWorkspace.

Contribution le : 07/12/2009 15:40
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


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