MesFonctionsUtiles est une classe statique (abstract sealed en C++/CLI) : Tu ne peux l'employer que de cette façon:
Code:retour = ClasseStatique::UneFonction(paramètres)
Version imprimable
MesFonctionsUtiles est une classe statique (abstract sealed en C++/CLI) : Tu ne peux l'employer que de cette façon:
Code:retour = ClasseStatique::UneFonction(paramètres)
OKi
mais dans mon cas ou cette fonction sert à afficher les items d'un combobox, il n'y a pas de retour (ou bien ?)
Donc mon appel est :
Il faudrait donc que je modifie alors... au minimum le titre de ce topic !Code:
1
2 String^proj = this-comboBox1->SelectedItem_>ToString(); MesFonctionsUtiles::FillCombobox(combobox2, projet);
Cdlt
Fred
et si je passais le statut à void au lieu de static.... non non !!!
cdlt
fred
bon ben donne rien de plus... il faut donc que je modifie mon appel.... objet du jour donc si une bonne âme passe par ici.....
Ou comment modifier la classe pour pouvoir lancer des appels avec paramètres comme montré en amont....
Fred
Là, je ne comprends plus ce que tu cherches à faire.
ben simplement à appeler ma methode FillCombobox....
si je comprend bien tout mon appel actuel ne correspond pas à une classe abstract, mais je ne vois pas comment transformer
correction :
enCode:
1
2 String^proj = this-comboBox1->SelectedItem_>ToString(); MesFonctionsUtiles::FillCombobox(combobox2, proj);
je sais que ça doit être tout bête mais je ne vois plus comment faireCode:retour = ClasseStatique::UneFonction(paramètres)
Merci encore à toi
Fred
Je ne vois toujours pas le problème, à part le conflit de nom entre "proj" et "projet".
le conflit est enlevé, mais je n'ai pas corrigé le post...
bon une fois corrigé, l'envoi (debug) me plante et m'affiche la même erreur deux fois
donc...Citation:
error C3622 'marre5::MesFonctionsUtils' : une classe décalrée comme 'abstract' ne peut pas être instanciée MesfonctionsUtiles.h 7
Fred
Poste tout le code, s'il te plait.
Medinoc je te remercie par avance pour ta patience et ton expertise,
ci après : la classe rebelle (.h et .cpp)
en pj Form1.h : la classe qui a besoin des service de FillCombobox
Code:
1
2
3
4
5
6
7
8
9 //MesFonctionsUtiles.h namespace marre5 { public ref class MesFonctionsUtiles abstract sealed { public: static MesFonctionsUtiles FillCombobox(System::Windows::Forms::ComboBox^ cmb, System::String^ projet); }; }
Encore merciCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 // MesFonctionsUtiles #include "StdAfx.h" #include "MesFonctionsUtiles.h" using namespace System; using namespace System::IO; using namespace System::Text; using namespace System::Windows::Forms; namespace marre5 { Void FillCombobox(ComboBox^ cmb,String^ proj) { String^ projet = proj; try { String^ line2; FileStream^ fs = gcnew FileStream("C:\\Documents and Settings\\LPTIC\\My Documents\\Visual Studio 2008\\Projects\\marre5\\Projets\\"+projet+"\\PLT.txt",FileMode::Open); StreamReader^ srd = gcnew StreamReader(fs); while (line2 = srd->ReadLine()) { cmb->Items->Add(line2); } srd->Close(); } catch(FileNotFoundException^fnfe) { MessageBox::Show("Fichier plateforme introuvable"); } catch(DirectoryNotFoundException^dnfe) { MessageBox::Show("Répertoire projet non valide"); } } }
Fred
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 //MesFonctionsUtiles.h namespace marre5 { public ref class MesFonctionsUtiles abstract sealed { public: //Ceci est une déclaration au sein de la classe //de fonction membre statique ne retournant rien et prenant deux paramètres. static Void FillCombobox(System::Windows::Forms::ComboBox^ cmb, System::String^ projet); }; }//namespace marre5
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 using namespace System; using namespace System::IO; using namespace System::Text; using namespace System::Windows::Forms; namespace marre5 { //Ceci est une définition hors de la classe //de fonction membre (statique ou non) ne retournant rien et prenant deux paramètres. Void MesFonctionsUtiles::FillCombobox(ComboBox^ cmb,String^ proj) { String^ projet = proj; try { String^ line2; FileStream^ fs = gcnew FileStream("C:\\Documents and Settings\\LPTIC\\My Documents\\Visual Studio 2008\\Projects\\marre5\\Projets\\"+projet+"\\PLT.txt",FileMode::Open); StreamReader^ srd = gcnew StreamReader(fs); while (line2 = srd->ReadLine()) { cmb->Items->Add(line2); } srd->Close(); } catch(FileNotFoundException^fnfe) { MessageBox::Show("Fichier plateforme introuvable"); } catch(DirectoryNotFoundException^dnfe) { MessageBox::Show("Répertoire projet non valide"); } } }//namespace marre5
Yahooooooo
c'est où que je t'envoie la bouteille ????? Tu es ... magique... MERCI !!!!!
ça marche.... maintenant je vais décortiquer et comprendre car tu te doutes bien que MesFonctionsUtiles vont avoir d'autres méthodes et que d'autres classes spécialisées vont naître... grâce à toi (oh un deviantartist.... !)
MERCI Encore
Fred