|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre à l'essai
![]() armindo simaoTechnicien maintenance Inscription : novembre 2012 Messages : 50 ![]() |
Re bonsoir
desolé de monopoliser cette rubrique mais je bloque et je vais faire dodo.. alors si ... voilà mon souci, j'ai "développé" mon petit exercice et là de nouveau coincé (oui je sais c'est une habitude cet exercice était de créer un graphique avec une sinusoïde, les axes xy avec l’échelle. ca c'est fait! maintenant j'ai ajouté 2 bouton (frequence + et -) comment faire pour passer la variable "frequence" que je modifie? je n'arrive pas après avoir modifié celle-ci a rappeler la "procedure TForm1.BoiteDessinPaint(Sender: TObject);" voici le code que j'ai déjà réaliser (je sais on peut faire mieux, mais pour l'instant....) Merci Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Membre à l'essai
![]() Inscription : février 2008 Messages : 39 ![]() |
Si le but est juste de rappeler la procédure BoiteDessinPaint :
Code :
|
||
|
|
00
|
|
|
#3 | |||
|
Membre à l'essai
![]() armindo simaoTechnicien maintenance Inscription : novembre 2012 Messages : 50 ![]() |
Citation:
mais comment savoir qu'il fallait mettre ce nil?? je ne l'ai pas encore rencontré!! Merci a toi, ça m'a bien débloqué!!
|
|||
|
|
00
|
|
|
#4 |
![]() ![]() Yves LemaireBiologiste ; Progr(amateur) Inscription : mars 2005 Messages : 1 681 ![]() |
Les procédures qui réagissent aux événements des composants ont un paramètre Sender qui permet de savoir qui appelle la procédure.
Exemple : j'ai 3 boutons qui servent à afficher chacun une image différente dans le même composant TImage. Je les fais pointer sur la même procédure de traitement du Click car le traitement est le même. Il suffit d'identifier le Sender (if Sender is Button1 then... ) pour le traitement variable. Et quand on n'a pas besoin de connaître l'appelant, comme il faut bien passer le paramètre attendu à l'événement, on remplace par nil qui est la valeur non assignée d'un pointeur, ou vide d'un objet. Si jamais le code de l'événement utilise le Sender sans avoir testé qu'il soit bien assigné, ça entraînera une violation d'accès : on essaie de faire fonctionner un objet inexistant. (Dans ce cas, tester : if Assigned(Sender) and (Sender is TButton) then TButton(Sender).Click; : teste qu'il soit assigné, que ce soit bien un bouton, puis déclenche le Click de cet objet en indiquant que c'est bien un bouton, et qu'il dispose de ses méthodes).
__________________
Delphi 5 Pro et Code Typhon 2.80 sous Win 7 64 bits - Code Typhon 2.70 / Ubuntu 12.04 64 bits |
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() armindo simaoTechnicien maintenance Inscription : novembre 2012 Messages : 50 ![]() |
Merci pour l'explication !
ça explique pas mal de choses. c'est quand même bizarre quand dans les 4 ou 5 tutoriaux que j'ai déjà lu et/ou survolé, je n'aie rien vu concernant ces appels de procédures. Cdt |
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Inscription : février 2008 Messages : 39 ![]() |
Si tu as besoin de passer des paramètres dépendant de l'appelant, tu peux utiliser "self" à la place de "nil", comme ça via le if donné par tourlourou tu peux appliquer différents paramètres via le Sender.
En gros, dans la majeure partie des cas faut utiliser "nil" (moi je préfère faire une procédure pour chaque appelant, quand il y en a peu ça clarifie les choses), après on peut utiliser "self" voire même "Application" si on veut un peu pousser les choses. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com