Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 2016
-
11 oct. 2008 à 17:58
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 2021
-
12 oct. 2008 à 17:28
Bonjour,
il y a quelques instants, pour le fun, je me suis amusé à mettre des panels dans des panels (1 panel dans chaque nouveau panel).
Mais au bout de 47 panels imbriqués, je reçois une erreur :
-- Erreur --
> Erreur système. Code : 87
> Paramètre incorrect
[OK]
Quelqu'un a-t-il une explication ?
J'ai déjà formulé une hypothèse : un composant ne peut pas être imbriqué plus de 48 fois dans ce même composant récursivement ...
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 11 oct. 2008 à 20:32
Oui j'aurais d'abord pensé à ce que j'appelle un nombre "repère binaire" (8, 16, 32, 64, 128, 256, 512, 1024, etc ...) ... mais non c'est 47.
Alors logiquement (ou pas) je me suis dit 47 ... + 1 = 48, qui représente 16*3 ... 6 octets ...
Mais ça ne doit pas être ça.
Sinon je ne comprends pas ta blague ^^' désolé de te la briser ...
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
try
setlength(PanTest, 300);
for i := 0 to 300 do
begin
PanTest[i] := TPanel.Create(self);
if i = 0 then
PanTest[i].Parent := Panel1
else
PanTest[i].Parent := PanTest[i - 1];
PanTest[i].Height := 100;
PanTest[i].Width := 100;
PanTest[i].Top := 100;
PanTest[i].Left := 100;
end;
except
showmessage(IntToStr(i));
end;
end;
end.
et devinez ce qu'affiche le showmessage : 46
ce qui donne 46 + 1 = 47.
On retrouve le chiffre annoncé par Bacterius...
Mais c'est qu'il a raison le petit !
quant à l'explication ???????????