Bonjour à toutes et à tous,

Dans une "TForm" : "MaForm", je place un "TPanel" : "MonPanel" dans lequel j'ai déposé plusieurs composants.

A l'exécution, aussi bien sous Windows que sous Linux, je vois bien ces composants.

Maintenant, dans le "TPanel", je vais y placer des "TShape" que l'appelle "CoulCrb" (ou autre composant, le problème est le même), mais en les créant suite à l'appui sur un bouton . Le code ressemble à ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
    SetLength(CoulCrb, N);
    for i:= 0 to N-1 do
    begin
      CoulCrb[i]:= TShape.Create(Self); // Les CoulCrb[i] sont des TShape
      with CoulCrb[i] do
      begin
        Parent:= TWinControl(Self);
        SetBounds(710+40*i, InfoCrbs.Top+33, 20, 20);
        Brush.Color:= Couleur[i];
        Pen.Width:= 2;
        Pen.Color:= clWhite;
      end;
    end;
Pas de problème sous Windows.

A noter que Self représente "MaForm" et non "MonPanel".

Si je remplace Self par le MonPanel dans le Create ou le parent ou dans les deux, il n'y a plus d'affichage.

Maintenant, quelle que soit la combinaison des Self et/ou MonPanel, sous Linux, je n'ai jamais d'affichage.

Une idée du problème ?

Cordialement.

Pierre.