Gambas France BETA


Pas de compte ? Incription

Pas d'evenement sur un DataBrowser1 en DB3

1
AuteurMessages
lolo69#1 Posté le 10/10/2010 à 20:10:00
Bonsoir,

Voila je n'arrive pas à déclencher un evenement sur un DataBrowser ?

je pointe sur une vue ou sur une table même combat.

merci par avance.
lolo
gambix#2 Posté le 22/10/2010 à 16:08:00
Faire simple !quel evenement cherche tu a capturer ?
Moins de texte dans une signature c'est agrandir son espace.
lolo69#3 Posté le 22/10/2010 à 19:50:00
Bonsoir,
en fait evenement clic, dblclick....

ce genre de chose.

Lolo.
Prokopy#4 Posté le 22/10/2010 à 21:18:00
Kinder PinguiSalut lolo,

Je me souviens d'une discussion similaire sur la mailing-list.

En fait le DataBrowser est un conteneur qui contient une GridView et une barre d'outils. Quand tu cliques dessus, tu cliques sur le GridView, non pas sur le conteneur. C'est donc l'évènement du GridView qu'il faut aller surveiller, pas celui du DataBrowser.
Tu peux pour cela accéder au GridView via la propriété Children du DataBrowser ou sa fonction Find() (comme c'est un conteneur), puis ensuite lui attacher un nom d'évènement grâce à la méthode Object.Attach() :

1
DIM monDataBrowser AS NEW DataBrowserObject.Attach(monDataBrowser.Children[0], ME, "GrilleDataBrowser")


Voilà. :)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
jeanyvon#5 Posté le 23/10/2010 à 16:44:00
Gambas? Ma! Et gustoSalut à tous!
Et dans ce cas si j'écris:
1
PUBLIC SUB grilledatabrowser_click()fait-ce-quil-y-ya-a-faireend sub

c'est bon?
Merci prokopy
A+
JY
Vieillir? On peut retarder mais pas y échapper!
gambix#6 Posté le 23/10/2010 à 17:35:00
Faire simple !prok il vaut mieux utiliser un objet observer...

quand on fait un object.attach on détourne l'evènement de sa cible initiale ... dans notre cas le datagrid. Ce qui rique de rendre le composant instable voir le planter carrément ... donc on attache un widjet d'observation d'évènement qui lui aussi réagira au même évènement que l'objet observé


Private myObs as Observer


Public sub Main()

MyObs = new Observer(ObjetaObserver) as "Obs"

end

Public sub Obs_Click()

Cet event est apellé lorsque ObjetaObserver emet un event click

end
Moins de texte dans une signature c'est agrandir son espace.
1