Bonjour,
Je fabrique des composants suivant le principe suivant :
J'ai un TList qui stocke d'autre Tlist qui eux pointent vers les composants que je cr�e (un TList contient tous les composants d'un nouvel onglet d'un pagecontrol).
Voici un bout du code :
Dans le .h :
Dans le cpp :
Code : S�lectionner tout - Visualiser dans une fen�tre � part TList *PageList;
Jusque la pas de probl�me mais pour supprimer les composants dans le FormClose :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 TList *ListeComp = new TList(); TTabSheet *pTabSheet = new TTabSheet(PageControl1); pTabSheet->PageControl = PageControl1; //je ne sais pas si cette ligne est utile ListeComp->Add(pTabSheet); TScrollBox *TempScrollBox3 = new TScrollBox(pTabSheet); ListeComp->Add(TempScrollBox3); PageList->Add(ListeComp); PageControl1->ActivePage = pTabSheet;
Toutes ces lignes passent correctement mais le programme plante jusqte apr�s. J'ai essay� de mettre un bouton qui supprime mes composants avec ce bout de code, mais les composants ne disparaissent pas et le programme plante :
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 TList *TempList; for (int A = 0; A < PageList->Count; A++) { TempList = (TList *)PageList->Items[A]; for (int I = 0; I < TempList->Count; I++) { delete TempList->Items[I]; } } TempList = NULL; for (int I = 0; I < PageList->Count; I++) { delete (TList *)PageList->Items[I]; } delete PageList;
Je ne comprend plus. Comment faire pour garder les pointeur et d�truire les composants point� par ceux-ci sachant que je ne connait pas par avance le nombre de composants ni leur type, ni leur nom?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10 TList *TempList; for (int A = 0; A < PageList->Count; A++) { TempList = (TList *)PageList->Items[A]; for (int I = 0; I < TempList->Count; I++) { delete TempList->Items[I]; } } TempList = NULL;
Merci
Partager