A noterCet article s'applique à un système d'exploitation différent de celui que vous utilisez. Le contenu de l'article qui ne vous concerne peut-être pas est désactivé.
Then vous générer cette application dans un fichier exécutable, créez une distribution avec l'Assistant installation ou InstallShield Express de Visual FoxPro version et installer votre application sur d'autres ordinateurs, lorsque vous tentez d'exécuter du code similaire au code précédent, vous recevez une erreur semblable à celui-ci :
Program Error
OLE error code 0x80040112: Appropriate license for this class not found.
Une distribution créée à l'aide de l'Assistant Installation de Visual FoxPro ou InstallShield Express permet uniquement une licence d'exécution, tandis que la méthode AddObject requiert une licence au moment du design.
Ajoutez le contrôle que vous souhaitez utiliser dans une classe qui est enregistrée dans une bibliothèque de classes Visual ou dans une classe créée à l'aide de la commande DEFINE CLASS. Ensuite, ajoutez une instance de la classe au moment de l'exécution au lieu d'ajouter le contrôle. Consultez la section «Informations complémentaires» pour plus d'informations.
Dans Visual FoxPro 7.0 et ultérieure, voir la rubrique du fichier d'aide ? AddObject ? pour une solution de contournement dans ces produits.
L'exemple suivant illustre l'utilisation de la commande DEFINE CLASS pour créer un OleControl sous-classé, puis ajoute la OleControl sous-classé au moment de l'exécution.
Collez le code suivant dans un fichier de programme (.prg):
PUBLIC oform1
oform1=CREATEOBJECT("form1")
oform1.Show
READ EVENTS
RETURN
DEFINE CLASS form1 AS form
AutoCenter = .T.
cNextKey = "1_"
Name = "Form1"
Caption = "Treeview Demo Form"
ADD OBJECT cmdExit AS commandbutton WITH ;
Top = 204, ;
Left = 276, ;
Height = 27, ;
Width = 84, ;
Caption = "E\<xit"
ADD OBJECT cmdAddLV AS commandbutton WITH ;
Top = 204, ;
Left = 10, ;
Height = 27, ;
Width = 106, ;
Caption = "Add Listview"
ADD OBJECT cmdAddLVClass AS commandbutton WITH ;
Top = 204, ;
Left = 130, ;
Height = 27, ;
Width = 136, ;
Caption = "Add Listview Subclass"
PROCEDURE Destroy
CLEAR EVENTS
ENDPROC
PROCEDURE cmdExit.Click
thisform.release()
ENDPROC
PROCEDURE cmdAddLV.Click
* The following AddObject causes the error.
Thisform.AddObject('Lv1','olecontrol','mscomctllib.listviewctrl.2')
Thisform.SetLVProps()
ENDPROC
PROCEDURE cmdAddLVClass.Click
* The following code shows the workaround. The class OC1 is
* defined in the last 3 lines of this program.
* Alternanely, you could use an object stored in a Visual Class
* library (.vcx) file.
Thisform.NewObject('LV1','OC1')
Thisform.SetLVProps()
ENDPROC
PROCEDURE SetLVProps
thisform.setall('enabled', .F.,'commandbutton')
WITH thisform.LV1
.visible = .t.
.height = 190
.left = 75
.width = 250
.view = 2
.listitems.add(,,"List Item 1",,)
.listitems.add(,,"List Item 2",,)
ENDWITH
thisform.cmdExit.enabled = .t.
thisform.cmdExit.setfocus()
ENDPROC
ENDDEFINE
DEFINE class OC1 as olecontrol
OleClass = 'mscomctllib.listviewctrl.2'
ENDDEFINE
Ajouter le programme à un projet et générer le projet dans un fichier exécutable (.exe) fichier. Nommez le fichier lvtest.exe.
Créez un répertoire nommé TestDir et placer une copie du fichier exécutable à partir de l'étape 2 ci-dessus dans le répertoire.
Exécuter l'Assistant de configuration Visual FoxPro.
Dans la boîte de dialogue Assistant installation, «Étape 1 Rechercher les fichiers» est affiché dans la zone de liste. Dans la zone de texte fichiers de Distribution Sélectionnez TestDir répertoire créé à l'étape 3, cliquez sur Sélectionner, puis cliquez sur Suivant.
Dans la boîte de dialogue Assistant installation, «Étape 2 spécifier Components» s'affiche dans la zone de texte. Dans le groupe d'options de composants d'application, cochez la case d'option «Visual FoxPro runtime».
Ensuite, sélectionnez la case à cocher des contrôles ActiveX. L'ajouter La boîte de dialogue contrôles ActiveX s'affiche.
Faites défiler la zone de liste «Sélectionnez Installer des contrôles ActiveX», sélectionnez «Contrôle de ListView de Microsoft, version 6.0», cliquez sur le bouton Fermer pour quitter la boîte de dialogue, puis cliquez sur Suivant.
Dans étape «Step 3 Create Disk Image Directory» de la Setup Wizard, sélectionnez ou tapez le nom de répertoire à utiliser pour la création de vos images disque, puis cliquez sur Suivant.
Dans «Étape 4 spécifiez Options d'installation», de la boîte de dialogue Assistant installation, tapez "ListView Test App" dans la zone de texte «Le programme d'installation boîte de dialogue zone caption» et "None" tapez dans la zone de texte de copyright d'informations, puis cliquez sur Suivant.
Remarque : Dans chaque cas, tapez le texte sans les guillemets.
Dans l'étape «Step 5 Specify Default Destination» de la Setup Wizard boîte de dialogue, cliquez sur Suivant.
Dans la zone de texte «Étape 6 modification paramètres», dans l'Assistant Configuration de la boîte de dialogue, activez la case de PM Item dans la grille en regard de Lvtest.exe (le nom du fichier exécutable).
Dans la boîte de dialogue «Élément de menu groupe de programme», tapez "ListView Test App" dans la zone de texte Description et "% s\lvtest.exe» dans la ligne de commande zone de texte.
Remarque Omettez les guillemets.
Cliquez sur OK pour fermer la boîte de dialogue de l'élément programme groupe menu, cliquez sur Suivant et cliquez sur Terminer pour terminer l'exécution de l'Assistant installation.
Dans la boîte de dialogue "Configuration Assistant disque statistiques", cliquez sur terminé.
Les fichiers de distribution seront dans un sous-répertoire du répertoire que vous avez répertoriés dans «Étape 3 - créer Disk Image Directory». Le sous-répertoire est nommé disk144. Vous pouvez installer la distribution que vous avez créé en copiant le contenu des répertoires de disque 1, 2, Disk3 et Disk4 disquettes et puis exécutez le programme Setup.exe à partir de la première disquette. Vous pouvez également vous connecter à l'ordinateur qui contient la distribution par le biais d'un réseau pour exécuter le programme d'installation. L'installation doit être sur un ordinateur qui ne dispose pas encore de Visual FoxPro 6.0 ou Visual Studio 6.0 est installé.
Sur l'ordinateur d'installation, dans la barre des tâches Windows, cliquez sur Démarrer, pointez sur Programmes, puis pointez aux Visual FoxPro Applications. Cliquez sur l'élément de programme ListView Test App.
Lorsque l'application démarre, cliquez sur le bouton Ajouter ListView. Une erreur est similaire à celle qui est répertorié dans la section «Symptômes» se produit.
Sélectionnez Annuler et répétez l'étape 16. Cette fois, cliquez sur le ListView Ajouter bouton Subclass et l'erreur ne se produit pas.
L'exemple précédent utilise une sous-classe de la classe OleControl appelée OC1. Cette sous-classe est créée par programme à l'aide de la commande DEFINE CLASS contenue dans les trois dernières lignes de code dans l'exemple de programme.
Vous pouvez également créer une sous-classe de la classe OleControl avec le Concepteur de classes Visual. Voici les étapes à suivre pour accomplir cette tâche :
Dans la fenêtre commande, tapez :
CREATE CLASS
Dans la boîte de dialogue nouvelle classe, tapez un nom de classe. Vous pouvez utiliser OC1 pour être cohérent avec l'exemple précédent.
Sélectionnez OleControl dans la zone de liste basé sur.
Dans la zone de texte Enregistrer dans, tapez le nom d'un fichier .vcx dans lequel stocker la classe, ou sélectionnez un fichier .vcx après avoir appuyé sur l'ellipse bouton [...]. Utilisez OCTest pour les besoins de cet exemple.
Cliquez sur le bouton OK pour créer la classe.
Dans la boîte de dialogue Insérer un objet, sélectionnez la case d'option créer un contrôle. Dans la liste type d'objet, sélectionnez le contrôle ActiveX à utiliser. Pour être cohérent avec l'exemple précédent, sélectionnez le «Microsoft contrôle ListView, version 6.0», puis cliquez sur OK. La nouvelle classe affiche dans le Concepteur de classes. Vous pouvez maintenant enregistrer la classe.
Le code suivant devrait ajouter une instance de l'objet au moment de l'exécution dans l'exemple précédent :
Thisform.NewObject('LV1','OC1', 'OCTest.vcx')
Vous devez être sûr que le fichier .vcx a été ajouté à votre projet avant de générer votre .exe pour que la commande NouvelObjet fonctionne correctement.
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 192693
(http://support.microsoft.com/kb/192693/en-us/
)
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Ces informations vous ont-elles aidé ?
Oui
Non
Plutôt
Quel niveau d'effort avez-vous dû personnellement fournir pour utiliser cet article ?
Très faible
Faible
Moyen
Elevé
Très élevé
Dites-nous pourquoi et ce que nous pouvons faire pour améliorer ces informations.
Merci ! Vos commentaires sont très utiles pour l'amélioration de notre contenu d'aide et de support. Si vous avez besoin d'aide complémentaire, veuillez consulter la page d'accueil d'aide et support.