Bonjour à tous,

Je ne sais pas si ce problème a déjà été soulevé, car je ne sais pas comment faire de recherche, du moins comment formuler ce problème.

Je vous explique :

J'ai 2 cadres TFramePo et TFrameStructSoc que je souhaite afficher dans des onglet.

Voici le code.

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
 
procedure TFormPrincipale.FormCreate(Sender: TObject);
var
i:integer;
 
begin
Controle[0]:=TFramePo.Create(FormPrincipale);// j'ai changé les Owner et ça ne change rien
Controle[0].Name:='momo';
Controle[1]:=TFrameStructSoc.Create(self);
 
Controle[2]:=TFramePo.Create(self);
OldControl:=0;
Controle[0].Enabled:=true;
for I := 0 to 2 do
  begin
    PageControl1.InsertControl(Controle[i]);
    Controle[i].Hide;
  end;
Controle[0].Show;
end;
Et au changement d'onglet

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
procedure TFormPrincipale.TabControl1Change(Sender: TObject);
var
i:integer;
begin
Caption:=IntToStr(TabControl1.TabIndex);
Controle[OldControl].hide;
Controle[TabControl1.TabIndex].Show;
OldControl:=TabControl1.TabIndex;
end;
La chase particulière est que tout fonctionne bien tant que dans les TFrames il n'y a pas de composant TMemo ou TRichEdit. Dans ce cas le TFrame ne s'affiche pas.
Si j'ajoute un TMemo je dois faire un RemoveControle et un InsertControle pour qu'il s'affiche.

J'ai du oublie quelque chose, mais quoi ....