Creer une fonction

Résolu
Signaler
Messages postés
17
Date d'inscription
mercredi 9 août 2006
Statut
Membre
Dernière intervention
25 novembre 2008
-
Messages postés
17
Date d'inscription
mercredi 9 août 2006
Statut
Membre
Dernière intervention
25 novembre 2008
-
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

Messages postés
14848
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 janvier 2022
160
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
Messages postés
14848
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 janvier 2022
160
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
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
15
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
Messages postés
14848
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 janvier 2022
160
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
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
15
Lol...autant pour moi...

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
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
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
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
Messages postés
17
Date d'inscription
mercredi 9 août 2006
Statut
Membre
Dernière intervention
25 novembre 2008

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.
Messages postés
17
Date d'inscription
mercredi 9 août 2006
Statut
Membre
Dernière intervention
25 novembre 2008

merci NHenry, ça marche
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
>[auteur/MPI/6078.aspx MPi] :Oui mais cela fait longtemps que je joue

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
17
Date d'inscription
mercredi 9 août 2006
Statut
Membre
Dernière intervention
25 novembre 2008

Salut NHenry


je débute en c#, et j'aimerai utiliser cette meme fonction, dans ce language, comment la converture en language c#?
Messages postés
17
Date d'inscription
mercredi 9 août 2006
Statut
Membre
Dernière intervention
25 novembre 2008

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);


}