Creer une fonction

Résolu
vivaviva Messages postés 17 Date d'inscription mercredi 9 août 2006 Statut Membre Dernière intervention 25 novembre 2008 - 25 janv. 2008 à 09:47
vivaviva Messages postés 17 Date d'inscription mercredi 9 août 2006 Statut Membre Dernière intervention 25 novembre 2008 - 22 févr. 2008 à 18:53
j'aimerai que vous m'aidiez à créer une fonction dans un module vb6 et l'ppeler a chaque fois pour remplacer le code suivant qui n'est pas encore achervé et il est déjà tres long :

Private Sub mn_mfour_Click()
Frm_cl.Enabled = False
Frm_cl.Visible = False
Frm_four.Enabled = True
Frm_four.Visible = True
Frm_prod.Enabled = False
Frm_prod.Visible = False
End Sub


Private Sub mn_mpro_Click()
Frm_cl.Enabled = False
Frm_cl.Visible = False
Frm_four.Enabled = False
Frm_four.Visible = False
Frm_prod.Enabled = True
Frm_prod.Visible = True
End Sub


Private Sub mn_nfour_Click()
Frm_cl.Enabled = False
Frm_cl.Visible = False
Frm_four.Enabled = True
Frm_four.Visible = True
Frm_prod.Enabled = False
Frm_prod.Visible = False
End Sub


Private Sub mn_npro_Click()
Frm_cl.Enabled = False
Frm_cl.Visible = False
Frm_four.Enabled = False
Frm_four.Visible = False
Frm_prod.Enabled = True
Frm_prod.Visible = True
End Sub


Private Sub mn_spro_Click()
Frm_cl.Enabled = False
Frm_cl.Visible = False
Frm_four.Enabled = False
Frm_four.Visible = False
Frm_prod.Enabled = True
Frm_prod.Visible = True
End Sub

merci d'avance et je dis codes-sources c ce qui arrive de meilleur pour un programmeur

12 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
25 janv. 2008 à 10:02
Bonjour

private sub SetVisible(byref pFrm as object) 'Merci de préciser le type exate des objets
    Frm_cl.Enabled = (Frm_cl is pFrm)
    Frm_cl.Visible = Frm_cl.Enabled
    Frm_four.Enabled = (Frm_four is pFrm)
    Frm_four.Visible = Frm_four.Enabled
    Frm_prod.Enabled = (Frm_prod is pFrm)
    Frm_prod.Visible = Frm_prod.Enabled
end sub

Ensuite à la place de :
Private Sub mn_npro_Click()
    Frm_cl.Enabled = False
    Frm_cl.Visible = False
    Frm_four.Enabled = False
    Frm_four.Visible = False
    Frm_prod.Enabled = True
    Frm_prod.Visible = True
End Sub

tu mets :
Private Sub mn_npro_Click()
    SetVisible Frm_prod

End Sub

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
22 févr. 2008 à 09:30
Bonjour

Voici une version en VB.NET (utilise le convertisseur de CS pour le C#) :

'code non garanti de fonctionnement sous .NET

private sub SetVisible(byval pFrm as Form)
    Frm_cl.Visible = (Frm_cl is pFrm)
    Frm_four.Visible = (Frm_four is pFrm)
    Frm_prod.Visible = (Frm_prod is pFrm)
end sub

Il faudras peut être utiliser les procédures Shox() et Hide() voire Close() pour faire la même chose, mais je n'ai pas testé le code.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
3
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
25 janv. 2008 à 10:22
Salut,

Cela pourrais pas fonctionner comme cela (pas essayer), tu auras toujours le contraire affiché.
Si Frm_cl.Enabled = True alors en appellant la sub il sera à False

Private Sub bCheck()


Frm_cl.Enabled = Not Frm_cl.Enabled
Frm_cl.Visible = Not Frm_cl.Visible
Frm_four.Enabled = Not Frm_four.Enabled
Frm_four.Visible = Not Frm_four.Visible
Frm_prod.Enabled = Not Frm_prod.Enabled
Frm_prod.Visible = Not Frm_prod.Visible


End Sub

Utilisation : Tu appelles : bCheck


A+
Exploreur

 Linux a un noyau, Windows un pépin
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
25 janv. 2008 à 10:36
Bonjour

Exploreur, d'après son exemple, il me semble qu'il ne s'agit pas de changer simplement l'état (True/False) de la fenêtre, mais de masquer certaines fenêtres pour en afficher une seule, donc comme il y a 3 fenêtre, il faut forcément indiquer quelle fenêtre afficher.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
25 janv. 2008 à 10:40
Lol...autant pour moi...

A+
Exploreur

 Linux a un noyau, Windows un pépin
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
25 janv. 2008 à 10:49
Salut,
NOTE: Si X.Visible = False, Y a t il un intérêt réel à mettre
X.Enabled = False

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
26 janv. 2008 à 00:14
Salut Julien,
On fait dans le rock maintenant ... ?

D'accord avec toi concernant le Enabled

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
vivaviva Messages postés 17 Date d'inscription mercredi 9 août 2006 Statut Membre Dernière intervention 25 novembre 2008
26 janv. 2008 à 09:26
merci explorer pour cette reponse, mais elle n'est pas la bonne
pour frm_* j'utilise des frame, ce code ne fait que changer l'etat de tous les frames, si elles sont ouvertes le resultat soit qu'elles serais fermées et le contraire est valabe ce qui entraine l'ouverture de plusieurs frames or que je ne veut ouvrir qu'une seule.
0
vivaviva Messages postés 17 Date d'inscription mercredi 9 août 2006 Statut Membre Dernière intervention 25 novembre 2008
26 janv. 2008 à 11:33
merci NHenry, ça marche
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 janv. 2008 à 08:04
Salut,
>[auteur/MPI/6078.aspx MPi] :Oui mais cela fait longtemps que je joue

@+: Ju£i?n
Pensez: Réponse acceptée
0
vivaviva Messages postés 17 Date d'inscription mercredi 9 août 2006 Statut Membre Dernière intervention 25 novembre 2008
22 févr. 2008 à 00:55
Salut NHenry


je débute en c#, et j'aimerai utiliser cette meme fonction, dans ce language, comment la converture en language c#?
0
vivaviva Messages postés 17 Date d'inscription mercredi 9 août 2006 Statut Membre Dernière intervention 25 novembre 2008
22 févr. 2008 à 18:53
merci Nhenry,


j'ai réussi à convertir la fonction en c# :
private
void SetVisible(
Panel pFrm)


{


panel1.Visible = (object.ReferenceEquals(panel1, pFrm));


panel2.Visible = (object.ReferenceEquals(panel2, pFrm));


panel3.Visible = (object.ReferenceEquals(panel3, pFrm));


}



appel de la fonction:


private



void
button1_Click(

object
sender,

EventArgs
e)



{


SetVisible(panel1);


}


 
0
Rejoignez-nous