Salut à tous !
Voila j'ai un projet C++ Builder 6 dans lequel j'utilise une liste chainée qui crée des Label. Lorsque je déclare ma classe et l'implément dans un unité et que j'utilise ma classe dans la Form correspondant à cette unité tout fonctionne, mais lorsque je déclare le header de cette unité dans une autre unité afin d'utiliser cette classe lors que je veus l'uitiliser, mes Label ne s'affiche plus.
Je vais mettre mon code pour illustrer les choses :
Ceci est le code dans lequel mes Label devrait s'afficher : Display_page.cpp
Ceci est la déclaration de ma classe : Label_list.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 //--------------------------------------------------------------------------- #include <vcl.h> #include <string> #pragma hdrstop #include "Display_page.h" #include "Label_list.h" #include "Main_page.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" Tdisplay *display; //--------------------------------------------------------------------------- __fastcall Tdisplay::Tdisplay(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall Tdisplay::FormShow(TObject *Sender) { //Cette partie devrati afficher le Label label test(-2147483621,"tutu",120,120); } //---------------------------------------------------------------------------
Cette partie contient l'implémentation de ma classe Label : Label_list.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 //--------------------------------------------------------------------------- #ifndef Label_listH #define Label_listH //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ExtCtrls.hpp> //-------------------------------------------------------------------------- class label { private : TLabel * MyLabel; long int color; char * text; int MyTop; int MyLeft; label * nextlabel; public : label(long int this_color, char * this_text, int My_Top, int My_Left); }; //--------------------------------------------------------------------------- #endif
Pour une question de l'isibilité je n'ai pas mit tout le code, mais seulement celui qui pose problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- #include "Label_list.h" #include "Main_page.h" #include "Display_page.h" label::label(long int this_color, char * this_text, int My_Top, int My_Left): color(this_color), text(this_text), MyTop(My_Top), MyLeft(My_Left) { nextlabel = 0; MyLabel = new TLabel(Application); MyLabel->Parent = display; MyLabel->Caption = text; MyLabel->Left = MyTop; MyLabel->Top = MyLeft; MyLabel->Show(); } //--------------------------------------------------------------------------- #pragma package(smart_init)
Je tien juste préciser que le nom de la Form qui contiendra mon Label s'appelle display
Merci à ceux qui liront ce post et qui m'apporteront leur aide
Partager