Convertir drawing.Image

Signaler
Messages postés
3
Date d'inscription
vendredi 9 novembre 2018
Statut
Membre
Dernière intervention
5 décembre 2018
-
Messages postés
2171
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
11 juillet 2020
-
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

Messages postés
14492
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 juillet 2020
420
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?
Messages postés
2171
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
11 juillet 2020
110
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

Messages postés
14492
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 juillet 2020
420
Salut VB.

Drawing.Image comme ça, ça me surprenait.
Soit complet System.Drawing.Image soit juste Image, là oui je comprends.
Messages postés
160
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
9 décembre 2018

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


Messages postés
2171
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
11 juillet 2020
110 >
Messages postés
160
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
9 décembre 2018

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
Messages postés
14492
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 juillet 2020
420
@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é.