oximoron
Messages postés149Date d'inscriptionmercredi 23 juillet 2003StatutMembreDernière intervention30 janvier 2009
-
9 févr. 2005 à 17:49
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 2010
-
10 févr. 2005 à 03:39
Bonjour,
J'ai un petit problème en asp.net (c#), j'ai une classe qui gère une ligne (c'est un exemple) que voici :
class CMaLigne
{
private int m_nX1; private int m_nY1;
private int m_nX2; private int m_nY2;
public CMaLigne();
{
m_nX1=1; m_nY1=1; m_nX2=100; m_nY2=100;
}
public TestTailleImage()
{
//l'image est la zone ou je veux dessiner
int nLongImg=Convert.ToInt16(Image1.Width.Value);
int nLongImg=Convert.ToInt16(Image1.Height.Value);
}
}
Voila ca ne marche pas quand je veut recupérer le taille de mon image, Image1 n'est pas reconnu dans la classe mais si je le met par exemple dans l'événement OnLoad de la page, ca marche. J'ai une erreur à la compilation qui parle d'une mauvaise réference.
WebForm1.Image1.Width.Value ne marche pas nont plus, je ne sias plus quoi faire.
Si quelqu'un peut m'aider à résoudre ce petit problème. Merci d'avance.
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 10 févr. 2005 à 00:41
C'est normal qu'il y ait une erreur, Image1 est déclaré nul part en
plus quel est le type de TestTailleImage ?elle sert à quoi cette
fonction ? elle t'initialie deux variables et puis hop, terminé j'espere plutot que tu n'as pas mis la fin du code
Pour arriver à recuperer Image1 sans le passer en paramètre il faudrais
utiliser la reflection, et encore je suis pas sur que ce soit possible.
Si tu veux te servir de Image1 dans ton code, il faut le passer, soit
par reference si tu veux le modifier soit par valeur si tu veux juste
une copie (ByRef ou Byval en VB en C# aucune idée)
donc fait un truc comme ca.
class CMaLigne
{
private Point m_n1;
private Point m_n2;
private ImageButton Image1;
public CMaLigne(ImageButton image1)
{
Image1 = image1;
m_n1.X 1; m_n1.Y 1 ;
m_n2.X 100 ; m_n2.Y 100;
}
public void TestTailleImage()
{ //l'image est la zone ou je veux dessiner
int nLongImg=Convert.ToInt16(Image1.Width.Value);
int nHautImg=Convert.ToInt16(Image1.Height.Value);
}
}
J'ai pris la liberté de remplacer tes quatres int par deux Point, ce type la est fait pour ce genre de chose
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 9 févr. 2005 à 21:20
Je comprend ton erreur, mais pour te l'expliquer et resoudre le problème j'aurais besoin de plus d'info sur ton code.
En gros cela vient de la structure des pages, si tu construit ta classe
dans le page_init, c'est evident que ca plante, car le controle sera
pas encore instancié, par contre dans le page_load il n'y aura pas
d'erreur car ton image existera.
oximoron
Messages postés149Date d'inscriptionmercredi 23 juillet 2003StatutMembreDernière intervention30 janvier 2009 10 févr. 2005 à 00:14
Déjà merci de m'avoir répondu. Donc voila mon code avec un peu plus de détail : (et avec quelques fautes de frappes en moins...) J'ai essayé de mettre ma classe à plusieurs endroits, et c'est toujours pareil ...
oximoron
Messages postés149Date d'inscriptionmercredi 23 juillet 2003StatutMembreDernière intervention30 janvier 2009 10 févr. 2005 à 01:52
Merci, ca marche enfin, j'avais pas pensé à passer les contrôles en paramètres et mes toutes petites notions de MFC m'on embrouilé car là, on récupère un pointeur sur la feuille pour ecrire dessus... bref ca marche mais (ce n'est pas mon cas ) si on à plein de contrôles faudra passer plein de contrôles en paramètres ? Ca risque d'être long non ?
Sinon, pour ma fonction bien sur qu'elle fait autre chose mais je ne voulais pas mettre des lignes de codes fonctionnelles. Pour la class point tu as parfaitment raison, je l' avais au début mais je l'ai supprimé pour bien identifier mon (ex)problème, et c'est aussi cette simplificattion qui m'a fait oublié le petit void devant TestTailleImage().
Je te remercie vivement pour cette aide prècise est rapide, Merci beaucoup.
oximoron
Vous n’avez pas trouvé la réponse que vous recherchez ?