Re: [Gambas-user-fr] =?iso-8859-1?q?Petit_probl=E8me?=
Brought to you by:
gambas
From: Benoit M. <ga...@us...> - 2008-01-11 20:37:11
|
On vendredi 11 janvier 2008, Fabien Bodard wrote: > Le Friday 11 January 2008 00:39:41 Benoit Minisini, vous avez =E9crit=A0: > > On jeudi 10 janvier 2008, Fabien Bodard wrote: > > > Le Thursday 10 January 2008 23:16:30 Benoit Minisini, vous avez =E9cr= it=A0: > > > > On jeudi 10 janvier 2008, Fabien Bodard wrote: > > > > > DIM hTabStrip AS TabStrip > > > > > DIM hTab AS .Tab > > > > > > > > > > hTab =3D hTabStrip [ Index AS Integer ] > > > > > Return a tab virtual object from its index. > > > > > > > > > > heu dabord on ne peu pas utiliser de type commen=E7ant par un > > > > > point... > > > > > > > > > > comment je fait pour enum=E9rer le contenu d'un tabstrip ? > > > > > > > > > > voici la fonction : > > > > > > > > > > PUBLIC SUB SetObservers(hClass AS Object, hCont AS Container) > > > > > DIM hCtrl AS Object > > > > > DIM hOBS AS Observer > > > > > DIM hTab AS Container > > > > > FOR EACH hCtrl IN hCont.Children > > > > > IF hCtrl IS TextBox THEN > > > > > hOBS =3D NEW Observer(hCtrl) > > > > > object.Attach(hOBS, hClass, "OBS") > > > > > ENDIF > > > > > IF hCtrl IS Container THEN SetObservers(hClass, hCtrl) > > > > > IF hCtrl IS TabStrip THEN > > > > > FOR EACH hTab IN hCtrl > > > > > 'hCtrl =3D hCtrl[i] > > > > > SetObservers(hClass, hTab) > > > > > NEXT > > > > > ENDIF > > > > > > > > > > NEXT > > > > > > > > > > > > > > > END > > > > > > > > hTabStrip[] a une propri=E9t=E9 Children, donc il faut faire: > > > > > > > > FOR iTab =3D 0 TO hTabStrip.Count - 1 > > > > FOR EACH hCtrl IN hTabStrip[iTab].Children > > > > ... > > > > NEXT > > > > NEXT > > > > > > au cas ou tu n'aurait pas vu ... c'est d=E9ja une fonction r=E9curssi= ve... > > > SetObserver()... > > > > > > Donc je veut passer le container du tabs a cette fonction > > > > > > comment je fait... > > > > Il faut traiter le cas sp=E9cifique des "multi-container" comme TabStri= p et > > d'autres. Pour savoir si un Container est un "multi-container", il n'y a > > pas encore de propri=E9t=E9 malheureusement, c'est uniquement dit dans = le > > fichier *.component. C'est ce que fait l'=E9diteur de formulaires de l'= IDE > > pour parcourir r=E9cursivement un formulaire lors d'une sauvegarde ou d= 'un > > copiage. > > > > Dans ton cas, tu peux d=E9cider qu'un Container est un multi-container = s'il > > a une propri=E9t=E9 Index. Cette convention devrait suffire (en fait il= faut > > une propri=E9t=E9 Index, une propri=E9t=E9 Count, et une m=E9thode [] p= our renvoyer > > un sous-container). > > > > D=E9sol=E9 pour la complexit=E9 ! > > Ben disons que le plus logique ce serait au moins que TabGrid[n] me > retourne un object (.tab) qui soit un container manipulable dans une > variable typ=E9e container... ce qui n'est pas le cas me r=E9torquant que= c'est > une classe virtuelle... (me fait une belle jambe) > > Ce n'est pa logique au sens ou j'entend bien que un tabstrip est un array > de container. C'est tr=E8s logique ! Un TabStrip est un container, et donc un contr=F4le.= =20 Un .Tab n'est pas un contr=F4le, et donc pas un container. > > tu n'a toujours pas r=E9pondu a mon probl=E8me de handle... > object.Attach(hOBS, hClass, "OBS") ne semble pas fonctionner.. > > cette sub est dans un module et veut attacher des objet a un formulaire... > le formulaire a les Fonction d'ev=E8nement mais elles ne sembles pas =EAt= res > appel=E9es. > Il faudrait que tu me montres le code complet. =2D-=20 Benoit Minisini |