IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

Utiliser ArcGis Engine 10 et delphi 7 ou Xe


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 120
    Par défaut Utiliser ArcGis Engine 10 et delphi 7 ou Xe
    Bonjour

    Je dispose d'une appli écrite avec delphi 7.Nous envisageons de changer
    le visualisateur carto pour ArcGis engine 10.

    ArcGis Engine ne fournit pas à proprement parlé de sdk delphi mais un sdk .net.

    J'ai tenté sans succès d'importer un assembly Arcgis sans succès ; j'ai depuis
    trouvé la possibilité d'importer un activeX (il existe un composant com dans
    le sdk arcgis). L'import fonctionne mais impossible d'avoir une carte dans
    ma fenêtre. L'ajout d'un TMapControl dans une fenetre provoque un "ClassFactory
    ne peut fournir la classe demandée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    [500BDB00]{rtl150.bpl  } ComObj.OleError (Line 1457, "ComObj.pas" + 1) + $11
    [500BDB0F]{rtl150.bpl  } ComObj.OleCheck (Line 1464, "ComObj.pas" + 0) + $7
    [50387486]{vcl150.bpl  } OleCtrls.LicenseCheck (Line 817, "OleCtrls.pas" + 3) + $0
    [50387599]{vcl150.bpl  } OleCtrls.TOleControl.CreateInstance (Line 830, "OleCtrls.pas" + 10) + $39
    [50386A8D]{vcl150.bpl  } OleCtrls.TOleControl.Create (Line 596, "OleCtrls.pas" + 23) + $2
    [21B9B4C7]{delphicoreide150.bpl} CompPalMgr.TComponentPalettePageItemDelegate.CreateComponent (Line 2564, "CompPalMgr.pas" + 2) + $7
    [21079D8A]{designide150.bpl} ComponentDesigner.TComponentRoot.DoCreateComponent (Line 2322, "ComponentDesigner.pas" + 10) + $17
    [21082FBE]{designide150.bpl} ComponentDesigner.TComponentRoot.CreateComponentPos (Line 5871, "ComponentDesigner.pas" + 26) + $22
    [51B21CC6]{vcldesigner150.bpl} VCLSurface.TVCLDesignerOleDropTarget.DropComponentStream (Line 5045, "VCLSurface.pas" + 17) + $25
    [51B2141D]{vcldesigner150.bpl} VCLSurface.TVCLDesignerOleDropTarget.Drop (Line 4868, "VCLSurface.pas" + 7) + $17
    [20AA7B05]{coreide150.bpl} ToolFrm.TToolForm.BeginOleDrag (Line 2137, "ToolFrm.pas" + 46) + $1F
    [20AA77DA]{coreide150.bpl} ToolFrm.TToolForm.BeginOleDrag (Line 2069, "ToolFrm.pas" + 3) + $C
    [20AA7C85]{coreide150.bpl} ToolFrm.TToolForm.PaletteBeginDrag (Line 2167, "ToolFrm.pas" + 0) + $9
    [211E14FA]{vclide150.bpl} IDECategoryButtons.TIDECategoryButtons.DoBeginDrag (Line 103, "IDECategoryButtons.pas" + 3) + $A
    [503AB636]{vcl150.bpl  } CategoryButtons.TCategoryButtons.MouseMove (Line 1874, "CategoryButtons.pas" + 24) + $9
    [5003A480]{rtl150.bpl  } System.@CallDynaInst (Line 11595, "System.pas" + 3) + $0
    [5027E892]{vcl150.bpl  } Controls.TControl.WMMouseMove (Line 7306, "Controls.pas" + 8) + $22
    [5003A52B]{rtl150.bpl  } System.TObject.Dispatch (Line 11813, "System.pas" + 11) + $0
    [5027DF6C]{vcl150.bpl  } Controls.TControl.WndProc (Line 7074, "Controls.pas" + 91) + $6
    [502820C3]{vcl150.bpl  } Controls.TWinControl.IsControlMouseMsg (Line 9608, "Controls.pas" + 1) + $9
    [50278AA6]{vcl150.bpl  } Controls.FindControl (Line 3378, "Controls.pas" + 6) + $9
    [50282830]{vcl150.bpl  } Controls.TWinControl.WndProc (Line 9831, "Controls.pas" + 144) + $6
    [503AD05F]{vcl150.bpl  } CategoryButtons.TCategoryButtons.WndProc (Line 2822, "CategoryButtons.pas" + 24) + $4
    [50281ED0]{vcl150.bpl  } Controls.TWinControl.MainWndProc (Line 9552, "Controls.pas" + 3) + $6
    [500AFA64]{rtl150.bpl  } Classes.StdWndProc (Line 13491, "Classes.pas" + 8) + $0
    [20AA57CC]{coreide150.bpl} ToolFrm.TToolForm.PaletteHook (Line 1103, "ToolFrm.pas" + 14) + $12
    [500AFA64]{rtl150.bpl  } Classes.StdWndProc (Line 13491, "Classes.pas" + 8) + $0
    [50358AF7]{vcl150.bpl  } Forms.TApplication.ProcessMessage (Line 9760, "Forms.pas" + 23) + $1
    [50358B3A]{vcl150.bpl  } Forms.TApplication.HandleMessage (Line 9790, "Forms.pas" + 1) + $4
    [50358E65]{vcl150.bpl  } Forms.TApplication.Run (Line 9927, "Forms.pas" + 26) + $3
    Quelqu'un a déjà tenté cette opération ?

    Merci
    Julien

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 090
    Par défaut
    C'est vraiment un ActiveX COM ou cela reste une Assembly .net
    Je n'avais jamais vu ce message, hormis le classique "classe non enregistrée", on a rarement plus de problème !

    As-tu essayé d'instancier TMapControl en RunTime et non de l'utiliser en DesignTime ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 120
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    C'est vraiment un ActiveX COM ou cela reste une Assembly .net
    Je n'avais jamais vu ce message, hormis le classique "classe non enregistrée", on a rarement plus de problème !

    As-tu essayé d'instancier TMapControl en RunTime et non de l'utiliser en DesignTime ?
    Bonjour

    J'ai l'impression qu'il y a les deux : un assembly .net et un activeX COM.

    J'ai depuis fait un test avec D7. J'arrive à placer le composant sur la fiche
    mais j'obtiens le mm message (classfactory...) lors de l'exécution, à la
    création de la fiche.

    Julien

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 120
    Par défaut
    L'instanciation run-time donne le mm résultat.

  5. #5
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 090
    Par défaut
    l'Objet COM n'est peut-être qu'une encapsulation de l'assembly pour permettre l'interop !
    tu as bien installé tout ce qu'il faut ?
    cet outil ArcGis fonctionne-t-il en autonome ?
    En général, un sdk ne fonctionne que si l'on a installé le produit ... j'utilise des COM plus classique comme Excel, Adobe... et c'est toujours comme cela
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 120
    Par défaut
    Pas certain que l'objet com soit une encapsulation dans la mesure où, historiquement, l'objet com existait avant le framework .net.

    Sinon oui tout semble bien installé vu que le sdk .net fonction en c#.

Discussions similaires

  1. utiliser une variable déclaré en delphi dans un sql
    Par jamdinhe dans le forum Bases de données
    Réponses: 12
    Dernier message: 28/06/2018, 09h32
  2. utiliser des classes C++ en delphi
    Par Guigui_ dans le forum Delphi
    Réponses: 6
    Dernier message: 07/07/2006, 10h29
  3. Comment utiliser les fichiers *.PNG avec Delphi ?
    Par HopeLeaves dans le forum Composants VCL
    Réponses: 2
    Dernier message: 17/09/2005, 20h59
  4. [D2005]Comment utiliser des assembly développées en delphi
    Par Valéry dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 16/08/2005, 18h36
  5. (Problème) Utilisation de l'API mySQL [Delphi 2005 Perso]
    Par will-scs dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/08/2005, 18h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo