Appel de Fonction (Événement)

Résolu
Signaler
Messages postés
36
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
28 septembre 2004
-
Messages postés
36
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
28 septembre 2004
-
Bonjour

Je cherche a appeler une fonction déja créer...
Exemple :

'Ma fonction (Qui servira d'événement) Zone étant le nom
Public Function MZone_Click()
End Function

'Une Fonction qui apelle mon événement
Public Function Distrib(X As Integer, Y As Integer, Name As String)
Name & "_Click" 'Ici je n'ai aucune Idée
End Function

Pour être plus bref, j'utilise DirectDraw 7, même si c'est un programe lol mais bon. Je devrai programmer quelques module utile dans un jeux DD aussi et Cette source ce retrouvera ici avec les quelques autres millier :).

Pour vous metre plus dans le contexte je vais vous en montrer plus. J'ai créer un nouveau projet, il est petit...
http://pksv.servequake.com/vbfrance_shared/projet1.zip

Je ne sais pas si je suis sur la bonne route mais si quelqu'un pourai m'aider je serais ravis.

Si vous avez la moindre question vous pouvez me contacter ici.
A mon email : pk_master_host@hotmail.com (J'ai msn...)
Ou par message privé sur le site.

Merci

9 réponses

Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
28
Je ne sais pas si cela peut t'aider mais essaye cela :
1- Crée un nouveau projet VB vierge avec une form Form1
2- Ajoute deux boutons Command1 et Command2
3- Dans Command1_Click, met ce code :
Msgbox "Click Command1"
4- Passe Command1_Click de Private à Public
5- Dans Command2_Click, met ce code :
MsgBox "Click Command2"
CallByname Me, "Command1_Click",vbMethod
6- Lance le projet.
7- Click sur Command1
8- Click sur Command2
9- Magique hein !! Le click sur command1 est simulé à partir du nom du controle et le nom de l'EVT depuis le code de l'EVT click de Command2 !!!

Suis-je clair ?

Christophe R.
3
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
28
Attention !! Soit on parle d'une fonction, soit on parle d'un evt !!
Ce n'est pas la meme chose du tout !!
Une fonction est un groupe de code qui te renvoit une valeur alors qu'un evt est un trigger déclenché par un objet lorsqu'un certain nombre de conditions sont remplies. Le propriétaire de cet objet est alors averti de la levée de ce trigger et peut réagir en conséquence.
A toi de voir ce que tu veux exactement et de nous le redire, qu'on puisse t'aider ...

Christophe R.
0
Messages postés
36
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
28 septembre 2004

A ce que je comprend.. il m'est impossible de créer l'appel d'une fonction....(Name & "_Click")

Est-ce que je devrais créer des UserControl ou il y aurais d'autre chose.. ?
0
Messages postés
36
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
28 septembre 2004

Je ne sais pas si tu connais DirectDraw...
Mais au cas ou, tu ne connaiserait pas, je récupère la position de mon curseur, le type de click, les touche du clavier.
(Tout est dans une boucle)
Et pour mon projet ce ne sont que des module ou presque.
Et je fait une aplication, alors en ce moment je cré des objet comme pour les controles de VB... Form, Frame, PicBox, TextBox, etc...

Alors ici, je récupère la position du curseur quand je clique avec le bouton gauche comme dans mon apli, je demande a une fonction de trouver quel controle je vise. Ensuite je veut executer la fonction "MZone1_Click".
0
Messages postés
20
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
4 janvier 2005
1
De ce que je comprend de ton probleme, tes methodes Name_Click seront directement appelees lorsque tu cliqueras sur le controle correspondant.
Ces methodes sont directement appele lorsque tu clic tu n'as plus qu'a implementer le code correspondant au evenement que tu souhaites gerer (click, dblclick, keypress,.......)

Fran-6 Live From London
0
Messages postés
36
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
28 septembre 2004

Au contraire Name_Click ne marche pas car il vient de variable String et je ne savais pas si c'étais possible d'appeler ma fonction d'une maniere semblable.

Essaie sa dans une nouvelle form
public function Name_Click()
msgbox "Dieu est dans ton ordi :)"
end function
private sub form_load()
Dim x as string
x = "Name"
x & "_Click"()
end sub

Mais tu as bien compris ce que je tente de faire :)
0
Messages postés
36
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
28 septembre 2004

Oh tu avais poster avant moi hehe :)
Si tu est clair.. ?
Je qualifierais sa par Clais Net et Précis :D

Ce n'étais pas la premiere fois que j'avais besoin de cet explication miracle hehe. je te remerci :)

Alors C'étais si simple...
CallByname Me, Name & "_Click",vbMethod

a la prochaine :)
0
Messages postés
36
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
28 septembre 2004

J'ai un autre petit probleme,
Mes fonction sont dans des module.

Mon Module s'apelle FrmPrincipal et j'ai une fonction Show()
Celle ligne ne marche pas, car elle est dans un module, en fait c'est le "Me" le probleme (Invalid use of "Me" KeyWord)
C'est évident vu qu'un module n'as pas de hWnd (Module1.hWnd)

CallByName Me, "FrmPrincipal.Show", VbMethod
Ou
CallByName Me, "Show", VbMethod

Et
CallByName FrmPrincipal, "Show", VbMethod
Ou bien
CallByName Nothing, "Show", VbMethod

Ne marche pas plus ...
0
Messages postés
36
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
28 septembre 2004

Oh! Sa allors...
Je vient de tomber sur 2 de tes ancien message dont tu réglais le meme problème...

http://www.vbfrance.com/forum.v2.aspx?ID=173586
http://www.vbfrance.com/forum.v2.aspx?ID=79355

Alors Merci Quand meme :)
0