Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 2008
-
16 juin 2006 à 15:11
gbourgeois0019
Messages postés152Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention 2 juin 2008
-
23 juin 2006 à 15:31
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
gbourgeois0019
Messages postés152Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention 2 juin 20081 23 juin 2006 à 15:31
effectivement c'est moi qui a fait une erreur en lisant l'aide des fonction sur le net. L'aide dit ceci :
Initializes the cards.dll library for your application. You must supply the addresses of two variables, in which cards.dll stores the width and height (in pixels) of a card.
On ne peut donc decider de la taille de la carte qu'avec la fonction cdtDrawEx.
Je vais corriger ca dans pas long ...
Merci ;)
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 23 juin 2006 à 14:11
on est donc finallement tombés d'accord ^^
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 23 juin 2006 à 12:48
(c'est la fonction cdtDrawExt qui permet de choisir la taille des cartes à dessiner)
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 23 juin 2006 à 12:46
En fait cdtInit récupère la taille des cartes, qu'on ne peut donc pas choisir (apparemment 71x96)
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 23 juin 2006 à 12:13
à Initialiser la librairie, oui, je ne discute pas ce point.
la fonction en profite juste pour fournir les dimensions des cartes...
le code :
SetDefaultCardSize(30,20);
est donc faux...
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 23 juin 2006 à 11:40
Le retour de cdtInit est pour test d'erreur a mon avis. Mais cette fonction sert bien a initialiser la librairie (grace au deux paramètres Height et Width)
Je vois pas trop non plus pourquoi on passe leur adresse plutot que leur valeur (a moins que les valeurs puissent être modifiées par cdtInit, si par exemple toutes les tailles ne sont pas possibles)
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 23 juin 2006 à 11:33
y'a une mauvaise compréhension de
return cdtInit(&Height,&Width);
cdtInit renvoie la taille des cartes que la dll sais dessiner....
elle ne permet aucunement de la personnaliser...
gbourgeois0019
Messages postés152Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention 2 juin 20081 16 juin 2006 à 21:41
Ah ok merci ! J'arrange ca et j'update dans pas long ! ;)
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 16 juin 2006 à 19:55
Il te reste encore une méthode getDC() qui traine...
Je vois que tu essaie de fournir pas mal de méthodes DrawCard
Je pense que tu pourrais en donner une qui prend en paramètre un RECT (qui contiendra donc la position et la taille)
gbourgeois0019
Messages postés152Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention 2 juin 20081 16 juin 2006 à 16:40
Merci pour vos commentaires et j'ai apporté les midifications nécessaires :)
J'ai suivi ton conseil vecchio56 et j'ai mis le HDC en argument comme je l'avais fait au tout debut.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 16 juin 2006 à 15:16
Ah je me suis fait grillé, ca m'apprendra a écrire de longs messages!
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 16 juin 2006 à 15:15
Pourquoi retourner 0 ou 1 dans une fonction bool, et pas true/false.
Ca change pas grand chose, mais dans ce cas autant mettre le fonction en int
Je suis pas sûr que garder un m_hDC soit une bonne solution. Je l'aurais plutot demandé en argument. Du coupr, m_hWnd n'est plus utile non plus
# if ( !ret )
# return 0;
#
# return 1;
Tu peux remplacer ca par return ret; c'est plus joli
Et dans SetDefaultCardSize, j'ai pas compris pourquoi tu utiliser des pointeurs et des new
N'est-ce pas équivalent a ca?
bool MyCards::SetDefaultCardSize(int Height, int Width)
{
return cdtInit(Height, Width);
}
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 16 juin 2006 à 15:11
# bool MyCards::SetDefaultCardSize(int Height, int Width)
# {
# int *i;
# int *j;
# BOOL ret;
#
# i = new int;
# j = new int;
#
# (*i)=Height;
# (*j)=Width;
#
# ret = cdtInit(i,j);
# if ( !ret )
# return 0;
#
# return 1;
# }
23 juin 2006 à 15:31
Initializes the cards.dll library for your application. You must supply the addresses of two variables, in which cards.dll stores the width and height (in pixels) of a card.
On ne peut donc decider de la taille de la carte qu'avec la fonction cdtDrawEx.
Je vais corriger ca dans pas long ...
Merci ;)
23 juin 2006 à 14:11
23 juin 2006 à 12:48
23 juin 2006 à 12:46
23 juin 2006 à 12:13
la fonction en profite juste pour fournir les dimensions des cartes...
le code :
SetDefaultCardSize(30,20);
est donc faux...
23 juin 2006 à 11:40
Je vois pas trop non plus pourquoi on passe leur adresse plutot que leur valeur (a moins que les valeurs puissent être modifiées par cdtInit, si par exemple toutes les tailles ne sont pas possibles)
23 juin 2006 à 11:33
return cdtInit(&Height,&Width);
cdtInit renvoie la taille des cartes que la dll sais dessiner....
elle ne permet aucunement de la personnaliser...
16 juin 2006 à 21:41
16 juin 2006 à 19:55
Je vois que tu essaie de fournir pas mal de méthodes DrawCard
Je pense que tu pourrais en donner une qui prend en paramètre un RECT (qui contiendra donc la position et la taille)
16 juin 2006 à 16:40
J'ai suivi ton conseil vecchio56 et j'ai mis le HDC en argument comme je l'avais fait au tout debut.
16 juin 2006 à 15:16
16 juin 2006 à 15:15
Ca change pas grand chose, mais dans ce cas autant mettre le fonction en int
Je suis pas sûr que garder un m_hDC soit une bonne solution. Je l'aurais plutot demandé en argument. Du coupr, m_hWnd n'est plus utile non plus
# if ( !ret )
# return 0;
#
# return 1;
Tu peux remplacer ca par return ret; c'est plus joli
Et dans SetDefaultCardSize, j'ai pas compris pourquoi tu utiliser des pointeurs et des new
N'est-ce pas équivalent a ca?
bool MyCards::SetDefaultCardSize(int Height, int Width)
{
return cdtInit(Height, Width);
}
16 juin 2006 à 15:11
# {
# int *i;
# int *j;
# BOOL ret;
#
# i = new int;
# j = new int;
#
# (*i)=Height;
# (*j)=Width;
#
# ret = cdtInit(i,j);
# if ( !ret )
# return 0;
#
# return 1;
# }
Ca ne revient pas au même de faire ça ?
# bool MyCards::SetDefaultCardSize(int Height, int Width)
# {
# return cdtInit(&Height,&Width);
# }
Je n'ai pas encore essayé mais ça a l'air sympathique.
Ca facilite grandement le bouleau de ceux qui veulent faire des jeux de cartes quelconques.