Convertir drawing.Image

ngarnier54 Messages postés 3 Date d'inscription vendredi 9 novembre 2018 Statut Membre Dernière intervention 5 décembre 2018 - 5 déc. 2018 à 16:51
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 - 9 déc. 2018 à 14:31
Public Function Carte(ByVal Couleur As Integer, ByVal Valeur As Integer) As Drawing.Image

b.MakeTransparent(Drawing.Color.Magenta)

bonjour


j'esseye de traduire de vb.net en c# un programme, j 'ai un problème avec Drawing qui fait une erreur en c# les traducteurs ne traduisent pas drawing de vb en c#
comment je dois traduire ces instruction
merci

3 réponses

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
5 déc. 2018 à 17:05
Bonjour
pour poster un code, à l'avenir merci de lire et appliquer ce qui est expliqué ici
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Pour répondre à ta question, peux tu donner la liste des Import en haut de la classe, parce que pour moi Drawing.Image est une erreur. Donc j'ai besoin de vérifier.

Ensuite, d'où vient ta variable b et de quel type est-elle?
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
Modifié le 6 déc. 2018 à 04:42
Bonjour à vous deux (ngarnier54 et Whismeril)

Le programme que tu tentes de traduire ne serait-il pas celui-ci : https://codes-sources.commentcamarche.net/source/100206-solitaire ?
Car je suis en train de le coder en VB Net correct : avec Option Strict sur On et suppression de la référence Microsoft Visual Basic ( cette dernière rajoute des fonctionnalités VB 6 : si on a VB Net autant faire du vrai DoNet !!!
Et j'aère le programme aussi : suppression de la sauvegarde de la partie et de sa restauration, suppression du redimensionnement de la Form ainsi que du comptage des points et diverses optimisations dans le code
Je veux juste garder le jeu en lui-même

Pour ta question voici la réponse

Public Function Carte(ByVal Couleur As Integer, ByVal Valeur As Integer) As Drawing.Image 

b.MakeTransparent(Drawing.Color.Magenta) 
 
à remplacer en VB net par

Public Function Carte(Couleur As Integer, Valeur As Integer) As Image 

b.MakeTransparent(Color.Magenta) 


et en C#
public Image Carte(int Couleur, int Valeur)
{ 
    // le code avant
    b.MakeTransparent(Color.Magenta);
    return b 
}



et rajouter en début de la classe tout en haut
using System.Drawing;  // en C#

Imports System.Drawing   ' en VB Net


Les Byval peuvent être supprimés en VB Net car Integer est une classe de base et est accessible par Valeur directement

0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
Modifié le 6 déc. 2018 à 07:25
Salut VB.

Drawing.Image comme ça, ça me surprenait.
Soit complet System.Drawing.Image soit juste Image, là oui je comprends.
0
garnier54 Messages postés 158 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 9 décembre 2018
9 déc. 2018 à 10:10
merci bcp
oui c'est bien ce programme que j’essaye de traduire en c# je voudrai m'en inspirer pour faire un jeux de bridge.
Si tu as fait déjà une traduction en vb.net je suis 100% preneur.
je rencontre de plus un problème pour crée card.dll en c# en effet si je veux ajouter une référence, a mon projet
je ne peux pas j'ai chaque fois ce message


0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169 > garnier54 Messages postés 158 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 9 décembre 2018
9 déc. 2018 à 14:31
bonjour garnier54
tu trouveras le jeu du solitaire avec des cartes en VB Net ici : https://codes-sources.commentcamarche.net/source/102862-jeu-du-solitaire-avec-des-cartes
Une version en C# va suivre bientôt

Maintenant pour ton problème : tu veux faire un jeu de bridge donc tu as un projet appelé Bridge par exemple . C'est ce projet qui a besoin de la dll Cards.dll que tu veux créer . Il te faut donc créer un autre projet appelé Cards par exemple qui va te créer les cartes avec leurs graphismes et les valeurs et couleurs . Ce projet tu vas le générer et en récupérer une dll Cards.dll que tu vas référencer dans le projet Bridge .
L'autre solution est de créer une class Carte dans le projet Bridge lui-même qui va contenir les caractéristiques et méthodes associées à un carte et de se servir de cette classe dans le projet Bridge . Ainsi plus besoin de dll Cards.dll
Dans les 2 cas les images des cartes sont mises en ressources ; dans le projet Cards si utilisation d'une dll ou dans le projet Bridge si ru n'utilises pas de dll
Mon projet en VB Net n'utilise pas de dll
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
6 déc. 2018 à 07:29
@ngarnier, malgré ce Drawing surprenant et l’utilisation de codes vb6, l’auteur de ce source a fait exactement ce que NHenry t’a dit il y a un moi, et qu’on t’as répété plusieurs fois depuis => mettre les images en ressources....
Après il en fait une dll, c’est un choix de réutilisation dans d’autres programme, mais vu la simplicité à refaire c’est pas obligé.

0
Rejoignez-nous