Dernière modification : 30-04-2016

Flash dans Sharpdevelop

J'ai longtemps cherché comment ajouter des outils ou utiliser des éléments externes à SharpDevelop sans succès. Il y a peu, j'ai appris comment on peut incorporer un OCX sur notre formulaire et j'ai utilisé l'information dans un petit projet, toujours en cours de programmation, d'écran de veille qui lirait aléatoirement les fichiers SWF contenu dans un dossier spécifié.

Bon, revenons à #Dev. Comme vous le savez surement, cet IDE open-source est parfois très peu compatible avec l'IDE très connu de Microsoft, Visual Studio. En effet, des actions qui fonctionnent facilement dans VS.net ne fonctionneront pas dans #Dev. Dans VS.net, ajouter un OCX à la boîte à outils est apparemment automatisé. Dans #Dev, il faudra faire manuellement toutes les étapes qui sont faites pour vous par VS.net.

Attention ! Si vous n'avez pas le Net Framework 2.0 et SharpDevelop installés, ce tutoriel ne vous servira à rien. Vous aurez aussi besoin que le SDK du Net Framework 2.0 soit installé sur votre ordinateur.

Il faut dans un premier temps savoir où réside le fichier dont on a besoin. Le fichier .ocx de Flash, si le lecteur gratuit est installé sur votre ordinateur, devrait se trouver dans un sous-dossier de « C:\WINDOWS\system32\ ». Je ne suis pas certain que ce soit exactement le même emplacement sur un autre système que Windows XP. Il vous faudra peut-être rechercher le fichier «  Flash10c.ocx » (ou « Flash*.ocx » pour trouver toutes les versions, s'il y a lieu).

Avec le SDK, plusieurs utilitaires sont fournis et la plupart d'entre eux se trouve dans le sous-dossier « bin » de l'emplacement où vous avez installé le SDK. Donc, normalement dans « C:\Program Files\Microsoft.NET\SDK\v2.0\bin\ ». Malheureusement, beaucoup ne présentent pas d'interface Windows et fonctionnent en ligne de commande. C'est le cas de l'utilitaire qui nous intéresse. Il se nomme « aximp.exe ». Cet exécutable accepte le nom d'un fichier .ocx (ou .dll) contenant un contrôle ActiveX et produit un contrôle Windows Forms qui contiendra (ou sera lié à) l'ActiveX et permettra de l'insérer dans un projet Visual Basic .Net ou C#. L'utilitaire du SDK produira deux fichiers .dll.

Ainsi, dans la fenêtre de l'invite de commandes de Windows, en cliquant sur l'icône dans le coin gauche de la fenêtre et via la commande « Modifier » puis « Coller », vous pourriez entrer « C:\Program Files\Microsoft.NET\SDK\v2.0\bin\aximp.exe » puis un espace suivit de « C:\WinXP\system32\Macromed\Flash\Flash10c.ocx » (ajutez les chemins selon votre configuration) et obtenir d'une pression sur la touche « Entrée » les deux fichiers en question au même emplacement que le fichier de Flash. Ensuite, tout ce qu'il reste à faire est d'ajouter le contrôle créé dans la boîte à outils de SharpDevelop.

Pour ce faire, faites un clic droit sur l'un des onglets de la barre d'outils et sélectionnez « Configure la Sidebar... » (petite erreur de traduction dans ma version de SharpDevelp; il manque un « r » à la fin du premier mot). La fenêtre qui apparaît affiche une liste de catégories à gauche. Dans mon cas il y en a seulement trois. Il est possible d'en créer autant que l'on souhaite. Si vous ajoutez beaucoup de contrôles à votre boîte à outils, rester bien organisé peut être nécessaire. Pour ma part, j'ai simplement sélectionné la troisième catégorie nommée « Components ». Une fois votre catégorie sélectionnée, cliquez sur le bouton « Ajouter des composants ».

Dans la fenêtre qui apparait, cliquez sur l'onglet « Personnalisé ». Cliquez le bouton « ... » pour choisir un fichier. Naviguez jusqu'à l'emplacement du fichier .ocx de Flash. C'est là que devrait se trouver un fichier nommé « AxActivex_Flash10c.ocx.dll » qui a été créé par l'utilitaire du SDK. Cliquez sur le bouton « Montre les composants » pour voir dans la liste de droite les composants qui seront ajoutés. Cliquez sur OK pour fermer la fenêtre en validant les changements.

Le contrôle ActiveX de Flash devrait maintenant être disponible dans votre barre d'outils de #Dev. Attention toutefois, vous ne pouvez apparemment pas ajouter ce contrôle à votre application Windows Forms avant d'avoir changé un paramètre sur celle-ci. Sur votre formulaire (MainForm), repérer la propriété « Font ». Cliquez sur son petit + pour voir ses sous-propriétés. La propriété « Unit » doit être réglée sur « Point ».

Voilà.

C'est là où j'en suis resté dans le développement de mon petit écran de veille car lorsque que j'essais de terminer le programme en utilisant ou non la commande « .Dispose() » de l'objet Flash, il y a un bogue. Si quelqu'un sait pourquoi, je suis preneur.

 

Des questions ? Vous pouvez communiquer avec moi à partir de la page Contact en cliquant sur la petite enveloppe bleue. Merci.

 

 

© Tulip Vorlax