Bonjour à tous,
j'ai un problème pour de faire un free sur un TTabSheet.
Je crée des onglets(TTabSheet) dynamiquement et lorsque je souhaite les fermer et faisant FenetrePrincipalZoneOnglets.ActivePage.Free, j'ai une erreur
EAccessViolation.
Voici le code pour la création d'onglets dynamique:
procedure TFenetrePrincipal.NouvelOnglet(Adresse: String);
var
NouveauItem : TMenuItem;
Tab:TTabSheet;
Memo:TMemo;
List:TListBox;
begin
assert(Self is TComponent, 'L''objet Self n''est pas un descendant de TComponent');
// Création dynamique d'un nouvel onglet
Tab:=TTabSheet.Create(self);
with Tab do
begin
PageControl:=FenetrePrincipalZoneOnglets;
PageControl.ActivePage:=Tab;
Tab.Caption:=Adresse;
end;
// creation dynamique de la zone d'affichage de conversation
Memo:=TMemo.Create(self);
with Memo do
begin
//Memo:=Memo ;
parent:= Tab;
left:=8;
top:=0;
height:=289;
width:=689;
bevelinner:=bvraised;
bevelkind:=bksoft;
bevelouter:=bvraised;
color := cl3DLight;
align:=alnone;
Lines.Text:='Connexion au serveur ' + Adresse + ' en cours...';
end;
// creation dynamique de la zone de liste des pseudonymes
List:=TListBox.Create(self);
with List do
begin
parent:= Tab;
left:=712;
top:=0;
height:=289;
width:=137;
bevelinner:=bvraised;
bevelkind:=bksoft;
bevelouter:=bvraised;
color := cl3DLight;
align:=alnone;
end;
Tab.InsertComponent(Memo);
Tab.InsertComponent(List);
end;
Il me semble que se sont les lignes en rouge qui provoquent l'erreur. Mais, elles me sont obligatoires afin de pouvoir utiliser la méthode ComponentCount de l'objet TTabSheet.
Si, vous avez une autre méthode pour le comptage des composants dans l'onglet, ou si vous avez une idée pour faire le free, je suis preneur.![]()
Merci d'avance
Partager