jm2mars
Messages postés11Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention12 janvier 2005
-
5 janv. 2005 à 05:44
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 2006
-
5 janv. 2005 à 11:49
Bonjours à tous !
J'ai créée un tableau de TWebBrowser de longueur 15.
A Chaque fois que je crée un TWebBrowser je rempli mon tableau avec.
Cependant ces derniers peuvent etre détruits aléatoirement (ex: je crée 10 TWebBrowser et rempli mon tableau avec de 1 à 10, puis je supprime le 2nd, le 5eme et le 8eme).
Comment est il possible de parcourir ce tableau afin de connaitre les emplacements vides et ceux contenant mes TWebBrowser restants ???
En gros comment tester les emplacements vides sans faire planter l'appli ???
Mes procédures principales :
var ArrayWBrowser : array[1..15] of TWebBrowser;
CustomWB : TWebBrowser;
I : Integer; //Compteur
procedure TForm1.FormCreate(Sender: TObject);
begin
I:= 1;
end ;
//Crée un WebBrowser.
Procedure TForm1.CreateWB; //Appelée par un Button1.Click
begin
CustomWB : = TWebBrowser.Create(TForm1);
With CustomWB do begin
...
end;
I:= I+1;
AddInArray(CustomWB);
end ;
//Ajoute un WebBrowser dans le ArrayWBrowser.
Procedure TForm1.AddInArray(WB : TWebBrowser);
begin
ArrayWBrowser[I]: =WB;
end;
//Supprime un WebBrowser.
Procedure TForm1.DelWB(N : integer); //N reçoit inttostr(Edit1.Text) puis est appelé par Button2.Click.
begin ArrayWBrowser[N].free;
end;
//Lecture du tableau.
procedure TForm1.ReadArray; //Appelé par Button3.Click
var m : integer; //Compteur
begin
For m:=0 to Length(ArrayWBrowser) do Showmessage(ArrayWBrowser[m].Name); //C'est ici que ça plante si ArrayWBrowser est vide !!!
end;
Pour info : Je sais que j'aurais pu utiliser un TComponentList ou TObjectList pour stocker mes WebBrowser mais je voulais absolument travailler avec un tableau.
jm2mars
Messages postés11Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention12 janvier 2005 5 janv. 2005 à 05:49
Oups désolé pour le titre qui est trompeur !
Puisqu'il s'agit de TWebBrowser et non de <STRIKE>TButton</STRIKE> !!
Veuillez m'excuser de l'erreur, faut dire qu'il est presque 6 h00 du mat' est je suis un peu creuvé.
cs_Kenavo
Messages postés702Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention 1 octobre 20095 5 janv. 2005 à 10:57
oui tu as vu JMP77,
Aussi étrange que cela puisse parraître, l'appel à free ne remet pas
l'élément d'un tableau d'objet à nil (contrairement à l'appel à free
d'un objet qui remet celui-ci à nil). Donc le test déconne :
ArrayWBrowser[m] existe encore après free, par contre il pointe sur un "squelette" d'objet totalement "décharné" ; d'où erreurs !
jm2mars
Messages postés11Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention12 janvier 2005 5 janv. 2005 à 11:46
Merci beaucoup à tous pour vos réactions rapides !
Si j'aurais pu, j'aurais cliqué sur "Réponse acceptée" de tous tant vos réponses furent explicites et bien évidement correctes !