RADIOBUTTON EN .NET SUR PLUSIEURS CONTENEURS DIFFÉRENTS

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 19 janv. 2006 à 16:56
blq Messages postés 97 Date d'inscription vendredi 22 octobre 1999 Statut Membre Dernière intervention 13 juin 2016 - 11 nov. 2010 à 17:21
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/35648-radiobutton-en-net-sur-plusieurs-conteneurs-differents

blq Messages postés 97 Date d'inscription vendredi 22 octobre 1999 Statut Membre Dernière intervention 13 juin 2016 1
11 nov. 2010 à 17:21
Excellente contribution, simple et efficace
nazavb Messages postés 1 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 22 janvier 2008
22 janv. 2008 à 14:28
ok
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
17 oct. 2006 à 23:44
merci, ça fait plaisir d'aider
cs_lucgod1 Messages postés 10 Date d'inscription dimanche 17 septembre 2006 Statut Membre Dernière intervention 24 janvier 2007
17 oct. 2006 à 14:02
Bravo DRAGON pour cette source bien utile ET qui fonctionne parfaitement.
BYE.
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
25 janv. 2006 à 13:29
c'est juste que c'est hors sujet.
j'ai fait une siource, juste sur l'itérateur, la conversation devrait plutot être là et non ici.

j'ai rien contre les commentaires, sauf quand c'est hors sujet et quand le niveau des commentaire est de loin le niveau de la source. ça fait fuir les débutant ce genre de commentaire
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
25 janv. 2006 à 09:48
faut pas prendre la mouche comme cela... mes remarques ne se veulent pas désobligeantes.
Il est intéressant de pouvoir comparer les différentes façons de travailler.

continue à poster des choses intéressantes...
cs_FraGag Messages postés 81 Date d'inscription jeudi 19 février 2004 Statut Membre Dernière intervention 18 avril 2008
25 janv. 2006 à 07:57
Moi non plus, j'aime pas ces discussions qui dérapent... et quand c'est moi qui les commence... :(

Bon, j'avais rien dit sur la source, mais c'est très bien. Tiens, un petit 10/10 ;) !

Désolé pour le dérangement...
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
25 janv. 2006 à 07:38
un for eatch est un iterateur déguisé premièrement
ça parcour une collection, mais ça défini pas les termes, sauf si la collection est défini, comme en java 1.5, ou que c'est un tableau défini.

Les collections sont beaucoup plus rapide qu'un tableau. Si on compare le for eatch et un itérateur en vitesse, le résultat est totallement identique.

Pour W3C, renseigne toi un peu. Les premier à avoir défini des patrons ont été les GoF. ensuite c,est devenu populaire. Mais maintenant, c'est W3C qui est rendu a faire la gestion et la validation des nouveaux patrons ... ou IBM, c'est pas clair rendu là. (http://www.google.ca/search?hl=fr&q=site%3Ahttp%3A%2F%2Fwww.w3.org+pattern&meta=)

Et arrêter donc avec ça, ça a aucun rapport avec la source. Le but de la source est l'utilisation des radiobutton sur plusieurs panel, pas de rester accrocher sur une partie qui va absolument rien changer au final. là vous faite juste mèler les débutants.

Cette source, je l'ai classé débutant, puisqu'il y a rien de compliquer dessus, sauf là, un débutant qui va se mettre à lire les commentaires, va rien comprendre et va abandonner la source. Si j'avais mis la source intermédiare, je comprendrais qu'il faudrais se poser ce genre de question, mais pas débutante. ce n'est pas un algo de trie, encription, compression où tout doit-être parfait et le moindre petit gain est appréciable.

Ça fini par devenir fatigant de voir du monde poster ce genre de commentaires sur une source qui parle pas dutout de ça. Faudrait pas que j'aille commencer chaque ligne de code de chacun de vos programme, vous aussi vous finiriez par trouver ça lassant à la fin. sur mes 4 dernières sources, il y en a 3 que j'ai pas arrêter de recevoir ce genre de commentaire, à cause d'un programmeur qui a pas la même philosophie qu'un autre programmeur.

si ça continu, je vais garder pour moi mes code source et je vais arrêter d'aider le monde
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
25 janv. 2006 à 06:20
je ne vois pas ce que vient faire le W3C dans l'histoire... mais bref.
L'instruction For Each permet de parcourir une collection d'objets (en fait tout ce qui est itérable). On retrouve aujourd'hui dans la plupart des langages (objet ou non) : vb6, vb.net, C#, java, php, javascript, python... je ne vois donc pas l'intérêt de la contourner... à la rigueur l'utilisation du For..Next est justifié pour des raisons de performances.
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
24 janv. 2006 à 23:57
Les patron de GoF ou de Grasp sont des patron haut niveau qui ont été inventer pour résoudre des problème défini dans n'importe quel language

j,ai fait 5 tutoriaux sur les premier patron. Puisque j'avais pas de réaction,sauf sur le singleton j'ai arrêté

P.S.: J'.ai été vite, mais ma source utilise une collection et toi un tableau. Une collection est de type object, donc même avec ton for each, tu vas avoir un type object et non radiobutton
cs_Kelpan Messages postés 70 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 17 septembre 2006
24 janv. 2006 à 20:12
Le fait que cela soit impossible que cela ne soit pas un CheckBox (Ou RadioButton) ne veut pas dire que tu ne peux pas te tromper sur la synthaxe du mot Checked (Ce que je te montre dans mon exemple). En cas d'erreur le compilateur ne voit rien.
Comme tu le dis (moi aussi dans mon post) à la limite, il faudrais caster en RadioButton.

Quand tu dis "moins de code, ne veut pas dire plus propre.", je suis entièrement d'accord, mais si tu as la possibilité de faire quelque chose de propre avec moins de ligne, je ne vois que des avantages...

Patrons GoF definis par WC3 !!?? Tu peux m'éclairer ? Je ne connais pas.

Pour info :
Le "For Each" n'est pas spécifique qu'à VB
Par exemple, on le retrouve aussi sous Java :
for(<Objet récupérant l'occurance suivante de la collection> : <Collection d'objets>){
instruction(s)
}
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
24 janv. 2006 à 00:37
sauf dans ma class, c'est totallament impossible que ça soit pas un checkbox. à la limite, il faudrait ajouter un ctype(iterator.Current,RadioButton).

mais bon
moins de code, veut pas dire plus propre.

mais là, c'est vraiment une question de goût. Moi je préfère suivre les patrons GoF qui a été défini par W3C que les normes définis par Microsoft
cs_Kelpan Messages postés 70 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 17 septembre 2006
23 janv. 2006 à 21:28
Le For Each permet de caster directement l'objet RadioButton et permet de detecter plus facilement des bugs non voulu

Dans le cas de l'iterateur, current renvoi un object et la propriété Checked n'est pas une propriété de la classe object.

Fais la comparaison entre ces 2 cas

Cas 1 :
Dim CtlRadio As RadioButton

For each CtlRadio in Collection
ctlRadio.Cheked = False ' Le c de Checked a été volontairement oublié
Next

Cas 2 :

Dim iterator As System.Collections.IEnumerator = Collection.GetEnumerator

While iterator.MoveNext
iterator.Current.cheked = False ' Le c de Checked a été volontairement oublié
End While

Dans le cas 1, l'erreur est detecté à la compilation, mais pas dans le cas 2.

Pour résoudre le problème dans le cas 2, il faudrait caster iterator.Current en RadioButton pour que ce soit plus propre.

Il en va de même pour l'objet "sender"...

Conclusion :

Le cas 1 demande moins de code que le cas 2 pour être plus propre.
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
20 janv. 2006 à 02:51
sauf que l'itérateur est considéré comme une meilleur programmation qu'un "for each"
en plus, ma class pourrait t'être adapter pour n'importe quel language et pas le "for each" qui est spécifique à VB.

je préfère toujours utiliser certain standart qu'utiliser des fonction spécifique et non transportable.

c'est come pourquoi mettre: add, remove et removeAll au lieu du français. C'est tout simplement pour garder les standarts appliqué à la programmation. C'est comme "get" et "set"
cs_FraGag Messages postés 81 Date d'inscription jeudi 19 février 2004 Statut Membre Dernière intervention 18 avril 2008
19 janv. 2006 à 23:55
Dans la procédure modification(), pourquoi utiliser l'itérateur au lieu de For Each ... Next ? Y a-t-il une raison qui empêche son utilisation ? À ce que je sache, For Each ... Next fait exactement la même chose. On aurait donc :

Private Sub modification(...)
For Each CheckBox As CheckBox In Collection
CheckBox.Checked = False
Next
sender.Checked = True
End Sub
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
19 janv. 2006 à 17:25
enlève le removeEvent et tu vas voir que les évênements sont gardé et pourtant, il est plus dans la collections, mais l'objet garde une référence d'un event dans cette class

le bug viens soit du remove, soit du clear, mais les 2 ne fond pas la même chose avec le event
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
19 janv. 2006 à 16:56
'On supprime tout les radioButtons
'Les évênements sont géré automatiquement
'C'est en quelques sorte un bug de .net,
'puisque les évênements auraient du être conservé
Public Sub removeAll()
Collection.Clear()
End Sub

non ce n'est pas un bug de .net... on ne garde pas un évènement d'un objet détruit !
c'est comme si tu gardais une assurance pour une voiture que tu n'as plus.
Rejoignez-nous