Appel de Fonction (Événement)

Résolu
MarTiUS_Will Messages postés 36 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 28 septembre 2004 - 23 juil. 2004 à 12:41
MarTiUS_Will Messages postés 36 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 28 septembre 2004 - 24 juil. 2004 à 04:54
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

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
23 juil. 2004 à 14: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
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
23 juil. 2004 à 13:22
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
MarTiUS_Will Messages postés 36 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 28 septembre 2004
23 juil. 2004 à 13:51
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
MarTiUS_Will Messages postés 36 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 28 septembre 2004
23 juil. 2004 à 14:03
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

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

Posez votre question
ensiblob Messages postés 20 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 4 janvier 2005 1
23 juil. 2004 à 14:23
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
MarTiUS_Will Messages postés 36 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 28 septembre 2004
23 juil. 2004 à 14:31
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
MarTiUS_Will Messages postés 36 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 28 septembre 2004
23 juil. 2004 à 14:43
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
MarTiUS_Will Messages postés 36 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 28 septembre 2004
24 juil. 2004 à 00:37
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
MarTiUS_Will Messages postés 36 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 28 septembre 2004
24 juil. 2004 à 04:54
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
Rejoignez-nous