1 | |
Auteur | Messages |
---|---|
spheris | #1 Posté le 26/4/2010 à 09:31:00 |
bonjour, Lors d'un clic sur un bouton, je crée une picturebox nommé toto1 lors d'un deuxieme clic sur ce bouton je crée une autre picturebox nommé toto2 lors d'un troisieme clic sur ce bouton je crée une autre picturebox nommé toto3 maintenant je veux pouvoir déplacer,supprimer, ou autre évènement sur mes picturebox. Comment m'y prendre ? Avez vous une idée ? Merci de vos réponses. | |
jeanyvon | #2 Posté le 26/4/2010 à 10:00:00 |
Gambas? Ma! Et gusto | Hello! Pour déplacer aucun problème, c'est du drag and drop et tu es le meilleur Pour supprimer et autres choses, si tu créais un menu attaché à chaque picturebox activé par le bouton droit, ça te laisse le choix du code attaché au menu. JY Vieillir? On peut retarder mais pas y échapper! |
gambix | #3 Posté le 26/4/2010 à 20:51:00 |
Faire simple ! | bon jean yvon a encore répondu a coté mdr Tu fait pointer tes picturesbox ver le même event handler Et dans le gestionnaire : Public sur pbImage_Click() Print Last.Tag End ça c'est pour gérer les évènements Tu peux stocker les variable objet dans un tableau d'objet générale en gb2 : Private hMyPic as new Object[] Public sub AddPicbox() dim hPic as PictureBox hPic = new Picturebox(me) as "pbImage" hMyPic.Add(hPic) end en gb3 Private hMyPic as New PictureBox[] Public sub AddPicbox() dim hPic as PictureBox hPic = new Picturebox(me) as "pbImage" hMyPic.Add(hPic) end et tu peu ensuite utiliser hMyPic[1].Move(x,y) etc Moins de texte dans une signature c'est agrandir son espace. |
jeanyvon | #4 Posté le 27/4/2010 à 07:08:00 |
Gambas? Ma! Et gusto | bon jean yvon a encore répondu a coté mdr :) C'est pour ça que je ne serais jamais de ta classe j'ai une autre façon d'appréhender les problèmes qui fait qu'en informatique comme en math malgré tous mes efforts je reste à bas niveau.... Ce qui ne m'empêche pas de m'amuser comme un fou avec Gambas! A+ JY Vieillir? On peut retarder mais pas y échapper! |
spheris | #5 Posté le 28/4/2010 à 20:45:00 |
Gambix,Tu fait pointer tes picturesbox ver le même event handler Peux tu préciser ceci ? je ne comprend pas. | |
gambix | #6 Posté le 28/4/2010 à 21:59:00 |
Faire simple ! | event handler c'est le gestionnaire d'évènement cad le nom préfix donné aux fonction qui vont gérer les évènement dudit objet hMyPic = New picturebox(ME) AS "MonGestionnaire" hMyPic2 = New picturebox(ME) AS "MonGestionnaire" Public sub MonGestionnaire_Click() End Donc ces deux objets vont appeler la même fonction ... c'est un groupe Quand on utilise l'IDE , et qu'on sélectionne un évènement a gérer pour un objet gambas utilise le nom de celui-ci pour préfixer la fonction... mais le soucis c'est que les noms serve aussi au variable d'acces aux objets...donc il y a Groupe qui prédomine sur le nom pour préfixer ces fonction et surtout il peux y avoir plusieurs objet avec le même groupe. Voila c'est simple mais pas évident a entrevoir. Moins de texte dans une signature c'est agrandir son espace. |
jeanyvon | #7 Posté le 29/4/2010 à 06:53:00 |
Gambas? Ma! Et gusto | Hello! Le seul truc c'est qu'on ne récupère pas le bouton de la souris C'est quand même ennuyeux.... A+ JY Vieillir? On peut retarder mais pas y échapper! |
gambix | #8 Posté le 29/4/2010 à 07:35:00 |
Faire simple ! | C'est bon jean yvon ... tu as trouvé un autre bug :/... sous gb3 c'est un bug avec qt4... si tu utilise gb.gui et que tu as gb.gtk de compilé ce que tu peux faire en attendant c'est de forcer l'utilisation de gb.gtk a gb.gui en ajoutant une variable d'environnement pour cela tu vas dans les option du projet. et dans l'onglet environnement a variable d'envirronnement tu ajoute la clé "GB_GUI" et en valeur "gb.gtk". ça va forcer gb.gui a utiliser gb.gtk. gb.gui est un méta composant qui a juste la capacité de selectionner le composant en fonction de l'envirronnement (kde ou gnome) Moins de texte dans une signature c'est agrandir son espace. |
spheris | #9 Posté le 29/4/2010 à 07:42:00 |
Ok gambix, mais dans la fonction hMyPic = New picturebox(ME) AS "MonGestionnaire" comment saura t on que l'on a cliqué hmypic ou hmypic2 ? Admettons que si l'on clique sur hmypic on affiche print "clic sur hmypic" et si on clique sur hmypic2 on affiche "clic sur hmypic2", comment par l'exemple écrirais tu ce code ? | |
jeanyvon | #10 Posté le 29/4/2010 à 07:57:00 |
Gambas? Ma! Et gusto | en version 3 c'est facile: quand je créé mes objet, je leur donne un indice for i = 0 to x monbouton = New bouton as "mongroupe" next public sub mongroupe_mouseup() for i = 0 to x if monbouton.hasfocus then Action à faire endif next end en version 2 je ne sais pas faire.... A+ JY Vieillir? On peut retarder mais pas y échapper! |
gambix | #11 Posté le 29/4/2010 à 08:40:00 |
Faire simple ! | ben faicle ... il suffit de donner un identifiant a chaque image ... dans tag tu met 1 pour la prière et 2 pour la deuxième. ensuite : Public sub mongetionnaire_click() if last.tag=1 then print "Click sur image 1" if last.tag=2 then print "Click sur image 2" endif Last est un des key word a connaitre par coeur en gambas .. il représente l'objet qui envoie l'évènement. Il faut faire attention car comme il est global il peut ètre perverti par un autre évènement si votre fonction de traitement est trop longue. Dans ce cas il suffira de la stocké dès le début de la fonction dans une variable locale... mais bon c'est rarement nécéssaire, je tenait juste a le souligner. Tag est une propriété de stockage variant que possède tout widget ... il me sert souvent pour identifier les objet ou pour les coupler. Il faut retenir que gambas ne passe pas les objet par argument mais par propriété. c'est une des différence avec vb. la c'est le cas pour l'objet c'est le cas pour les bouton des sourie, pour les touche du clavier... etc c'est un choix de desing Moins de texte dans une signature c'est agrandir son espace. |
spheris | #12 Posté le 7/5/2010 à 23:01:00 |
Oui mais le truc qui cloche c'est que dans ton exemple le TAG est vide et si je fais un print last.tag, j'ai des lignes vides. Ou dois je remplir mes tag dans ton exemple? | |
gambix | #13 Posté le 7/5/2010 à 23:04:00 |
Faire simple ! | Private hMyPic as new Object[] Public sub AddPicbox() dim hPic as PictureBox dim i as integer for i= 0 to 10 hPic = new Picturebox(me) as "pbImage" hpic.tag=i hMyPic.Add(hPic) next end Moins de texte dans une signature c'est agrandir son espace. |
1 |