Salut,
C'est assez facile de créer des pages(TabSheet) de PageControl de facon dynamique, puis d'y ajouter toujours dynamiquement des StringGrid.
Mon probleme est que j'utilise l'évenement OnDrawCell pour les StringGrid, et là rien ne vas plus, j'obtiens l'erreur suivante :
[BCC32 Erreur] Unit1.cpp(65): E2109 Ce n'est pas un type autorisé.
a l'endroit ou j'affecte ma routine OnDrawCell.
voici mon code : Fichier header
Fichier 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 class TForm1 : public TForm { __published: // IDE-managed Components TPageControl *PC; TButton *Button1; TButton *Button2; TButton *Button3; TButton *Button4; void __fastcall Button1Click(TObject *Sender); void __fastcall PCChange(TObject *Sender); void __fastcall Button2Click(TObject *Sender); void __fastcall FormDestroy(TObject *Sender); void __fastcall Button3Click(TObject *Sender); void __fastcall Button4Click(TObject *Sender); private: // User declarations TStringGrid* SG; void __fastcall SGOnDrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State); public: // User declarations __fastcall TForm1(TComponent* Owner); };
Je précise que c'est un petit programme de test, pour essayer de comprendre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 void __fastcall TForm1::SGOnDrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { // } Utilisation: TRect Rect; TGridDrawState State; SG = new TStringGrid(this); SG->Parent = PC->Pages[PC->ActivePageIndex]; SG->DefaultDrawing = false; SG->OnDrawCell = SGOnDrawCell(Sender, 0, 0, Rect, State);
malheureusement je ne comprends pas.
Quelqu'un saurait?
Pense aux balises de code le # ce sera plus lisible![]()
Partager