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
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);
};
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
 
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);
Je précise que c'est un petit programme de test, pour essayer de comprendre
malheureusement je ne comprends pas.
Quelqu'un saurait?

Pense aux balises de code le # ce sera plus lisible