jean_marc_n2
Messages postés170Date d'inscriptionjeudi 11 décembre 2003StatutMembreDernière intervention24 janvier 2009
-
25 mai 2006 à 21:39
Erat78
Messages postés3Date d'inscriptionsamedi 16 juillet 2005StatutMembreDernière intervention 7 octobre 2006
-
10 août 2006 à 03:25
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Erat78
Messages postés3Date d'inscriptionsamedi 16 juillet 2005StatutMembreDernière intervention 7 octobre 2006 10 août 2006 à 03:25
Salut,
L'auteur parle de comander une lumière avec un transistor... Ce la (si je ne m'abuse) equivaut à utiliser une carte tout ou rien (la carte en moins!...). QQ pourrait il m'aiclairer a ce sujet...
Bonne journée
cs_ABF
Messages postés227Date d'inscriptionsamedi 21 mai 2005StatutMembreDernière intervention26 avril 2012 29 mai 2006 à 13:25
Salut, Je ne pense pas que cette personne ait besoin de 3 commentaires ayant la même idée mais d'1 encouragement ou du suggestion, critique... du contenu de la source, de la matière.
Pour ma part je n'ais pas trop regardé : continue.
jean_marc_n2
Messages postés170Date d'inscriptionjeudi 11 décembre 2003StatutMembreDernière intervention24 janvier 2009 26 mai 2006 à 14:09
Hello Katsankat,
j'aurais adopté exactement la même approche :o); Au final, 2 fonctions sur command1 et command2 plus une ou 2 fonctions de service.
katsankat
Messages postés571Date d'inscriptionvendredi 30 décembre 2005StatutMembreDernière intervention12 juillet 20123 26 mai 2006 à 13:52
Salut, autre suggestion: récupérer l' index dans option_click() puis l' utiliser pour éviter la redondance du code. Voici comment j'aurais fait
private ID as integer
private sub option_click()
ID = index
end sub
private sub command_click()
dim FLAG as boolean
If MSComm(index).PortOpen = True Then
MsgBox "Port déja ouvert"
Else
MSComm(index).PortOpen = True
if ID=1 or ID=2 or ID=3 then FLAG=true
Pov.Visible = FLAG
Po.Visible = FLAG
Pfr.Visible = not FLAG
Pf.Visible = not FLAG
End If
end sub
Cette approche évite les tests de condition inutiles.
Le mieux étant de factoriser le code redondant avec une petite fonction:
private sub Ouverture(id as integer)
If MSComm(id).PortOpen = True Then
MsgBox "Port déja ouvert"
else
Pov.Visible = true
Po.Visible = true
Pfr.Visible = false
Pf.Visible = false
end if
end sub
le code en est simplifié:
private sub command_click()
Ouverture(ID)
end sub
Reste à intégrer le command2_click dans la fonction Ouverture() !
jean_marc_n2
Messages postés170Date d'inscriptionjeudi 11 décembre 2003StatutMembreDernière intervention24 janvier 2009 25 mai 2006 à 21:39
Hello,
Tes End If sont mal indentés, chaque Endif doit être sous son IF:
If tutu then
If toto then
' coucou
End If
End If
Ton code est inutilement dupliqué: Dans ce cas, on fait un tableau de controle:
MSComm(1), MScomm(2), etc ..
Il suffit de leur donner le même nom et de changer la propriété index: 0, 1, 2, 3.
10 août 2006 à 03:25
L'auteur parle de comander une lumière avec un transistor... Ce la (si je ne m'abuse) equivaut à utiliser une carte tout ou rien (la carte en moins!...). QQ pourrait il m'aiclairer a ce sujet...
Bonne journée
29 mai 2006 à 13:25
Pour ma part je n'ais pas trop regardé : continue.
26 mai 2006 à 14:09
j'aurais adopté exactement la même approche :o); Au final, 2 fonctions sur command1 et command2 plus une ou 2 fonctions de service.
26 mai 2006 à 13:52
private ID as integer
private sub option_click()
ID = index
end sub
private sub command_click()
dim FLAG as boolean
If MSComm(index).PortOpen = True Then
MsgBox "Port déja ouvert"
Else
MSComm(index).PortOpen = True
if ID=1 or ID=2 or ID=3 then FLAG=true
Pov.Visible = FLAG
Po.Visible = FLAG
Pfr.Visible = not FLAG
Pf.Visible = not FLAG
End If
end sub
Cette approche évite les tests de condition inutiles.
Le mieux étant de factoriser le code redondant avec une petite fonction:
private sub Ouverture(id as integer)
If MSComm(id).PortOpen = True Then
MsgBox "Port déja ouvert"
else
Pov.Visible = true
Po.Visible = true
Pfr.Visible = false
Pf.Visible = false
end if
end sub
le code en est simplifié:
private sub command_click()
Ouverture(ID)
end sub
Reste à intégrer le command2_click dans la fonction Ouverture() !
25 mai 2006 à 21:39
Tes End If sont mal indentés, chaque Endif doit être sous son IF:
If tutu then
If toto then
' coucou
End If
End If
Ton code est inutilement dupliqué: Dans ce cas, on fait un tableau de controle:
MSComm(1), MScomm(2), etc ..
Il suffit de leur donner le même nom et de changer la propriété index: 0, 1, 2, 3.
Comme ça, plus de code dupliqué :-)
Bonne suite!