Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Appel d'une procédure [ Système / Autre ] (vieuxpere)

mercredi 18 juin 2008 à 19:58:28 | Appel d'une procédure

vieuxpere

Bonjour,

J'ai créé une procédure avec à l'interieur un code qui fonctionne bien, le probleme c'est que je n'arrive appeller cette procédure

Voici sa déclaration :    
Type
procedure BoussoleHoraire(Sender: TObject; Shift: TShiftState; X, Y: Integer);

J'ai essaye quelque chose du genre :

procedure TForm1.Button3Click(Sender: TObject);
   Begin
   BoussoleHoraire(sender,shift, x, y);
   end;

 Mais ça marche pas !

Pour info, l'objectif de cette procédure était d'avoir les caracteristiques que l'on trouve dans un evenement MouseMove afin de recuperer la position precise de la souris sur un composant.

Merci dans tous les cas pour votre aide.

mercredi 18 juin 2008 à 21:51:20 | Re : Appel d'une procédure

Caribensila

Membre Club

Salut,

procedure TForm1.BoussoleHoraire(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
... Ton code ...
end;

Puis, tu sélectionnes le composant concerné, et dans l'onglet Evénements de l'inspecteur d'objets, tu mets BoussoleHoraire dans l'événement OnMouseMove.


jeudi 19 juin 2008 à 00:33:24 | Re : Appel d'une procédure

vieuxpere

Bonjour et merci de cette reponse, mais ma question n'est pas sur le fait de savoir où placer mon appel de procédure mais sur le fait de savoir comment synthaxiquement appeller ma procédure.


procedure TForm1.Button3Click(Sender: TObject);
   Begin
   BoussoleHoraire(sender,shift, x, y);  <<<-- En gros je ne sais pas quoi mettre entre les parentheses (Delphi attend des parametres ( (Sender: TObject; Shift: TShiftState; X, Y: Integer);  )mais je ne sais pas quoi  lui mettre)

Merci par avance,

jeudi 19 juin 2008 à 09:12:07 | Re : Appel d'une procédure

Loda

Membre Club
salut,

si tu fais comme Caribensila t'as expliqué, tu verra que cela fonctionne tout seul (cad, que l'appel se ferra tout seul lorsque tu bougera la souris sur le composant).

si ce n'as pas ce que tu veux essai avec GetCursorPos(P) ou reformule ta question.

bon code,

Loda

Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.

jeudi 19 juin 2008 à 09:29:16 | Re : Appel d'une procédure

vieuxpere

Bonjour,

Je voudrais simplement savoir les parametres probables qu'il faut mettre en parenthéses (voir réponse plus haut), car je souhaite executer la procédure dans un bouton et non dans un evenerment MouseMove.

Merci pour vos réponses.

Cordialement,


jeudi 19 juin 2008 à 13:48:45 | Re : Appel d'une procédure

Caribensila

Membre Club
Je ne vois pas bien où tu veux arriver... Mais tu peux aussi faire ceci :

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  BoussoleHoraire(sender,Shift, X, Y);
end;

OU encore

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  BoussoleHoraire(sender,[ssLeft], X, Y);
end;

jeudi 19 juin 2008 à 13:53:16 | Re : Appel d'une procédure

Francky23012301

Membre Club
Réponse acceptée !

Salut,

Ca ne fonctionnera pas :

procedure TForm1.Button3Click(Sender: TObject);
Begin
BoussoleHoraire(sender,shift, x, y);
end;

Shift,X et Y ne sont pas définis dans ta procédure ButtonClick. Ainsi le compilo refuse de faire son job : Shift, X et Y ne sont pas définit.


Pour info, l'objectif de cette procédure était d'avoir les caracteristiques que l'on trouve dans un evenement MouseMove afin de recuperer la position precise de la souris sur un composant.

je comprend pas bien ce que tu cherches à faire : Explique précisément ton objectif dans sa globalité car la j'ai le sentiment que tu es entrain de t'égarer :

Sinon f0xi t'a passé ce bout de code

procedure TFormX.Image1Click(Sender: TObject);
var MP : TPoint;
begin
  GetCursorPos(MP);
  MP := (sender as TImage).ScreenToClient(MP);
end;



Il suffit de le transformer en fonction

Function Get_X_MousePosition(AImage:TImage):TPoint;
Var
  MP:TPoint;
Begin
  GetCursorPos(MP);
  MP:=AImage.ScreenToClient(MP);
  Result:=MP;
End;

procedure TForm1.Button3Click(Sender: TObject);
Var
  MP:TPoint;
   Begin
     MP:=Get_X_MousePosition(Image2):
   end;


jeudi 19 juin 2008 à 13:55:08 | Re : Appel d'une procédure

Francky23012301

Membre Club
On s'est croisé dans nos réponses : désolé Cari

jeudi 19 juin 2008 à 13:59:33 | Re : Appel d'une procédure

Caribensila

Membre Club
Y'a pas de mal Francky.
J'ai même rien senti. 

vendredi 20 juin 2008 à 11:12:07 | Re : Appel d'une procédure

vieuxpere

Merci pour ces réponses, mais je comile pas "Get_x_MousePosition identifcateur non déclaré" savez vous qu'est-ce qu'il faut que je mette ?

Pour rappel l'objectif est de parvenir d'avoir ma position de la souris sur mon image est d'avoir la bonne information de positionnement comme le ferais un MouseDown par exemple.
En substance, j'ai synthétisé vos observations comme ci-dessous est-ce que ça vous parez cohérent ?

Merci par avance,

var NewItem: TMenuItem;
var NomTypeActivite : string;

var x, y : integer;
var MP : TPoint;
var AImage:TImage;

Begin

 GetCursorPos(MP);
  MP := (sender as TImage).ScreenToClient(MP);
  GetCursorPos(MP);
  MP:=AImage.ScreenToClient(MP);
  MP:=Get_X_MousePosition(Image2):

// Appel la procédure permettant de savoir l'horaire sur lequel se trouve le pointeur de la souris
 BoussoleHoraire(sender,[ssLeft], X, Y);



1 2

Cette discussion est classé dans : appel, sender, procédure, tobject, boussolehoraire


Répondre à ce message

Sujets en rapport avec ce message

"Incompatible types :''Cardinal' and 'String' " [ par Don0Choa ] Bonjour, je fais un petit prog permettant de fair des boite de dialogue en séléctionnant les bouttons, icones etc...Mais voila j'ai une erreur comem d pb a creer un exe avec la principal form invisible [ par Winniez ] J'ai voulu au demarrage de exe afficher une autre form que la form principal. a l'execution sa me met une erreur, apres g mis le meme code dans un bou probleme avec sockets [ par PsyClown44 ] Salut!J'ai un prob avec le composant TClientSocket : je n'arrive pas a recevoir de paquets lors d'une connexion!Voila le code:unit Unit1;interfaceuses Plantage [ par Rapakooti ] Je solicite votre ade car en fait j'ai un gros plantage avec un programme que je suis en train de faire et pourtant il est pas encore avancé une fois Newbie & TCPI/IP [ par Megafan ] Bonjour je suis complétement débutant en delphi, par contre je suis pas mauvais en VB.Pourquoi je change allez vous dire ?Parce que VB ne tourne pas s probleme aved Dbgrid relier a Access [ par rafraf6 ] Salut voici le code de mon programme delphi.Je depute encore.Lorsque j apuie sur le bouton moyenne.Il me dit 'Field Distance not found'. Le probleme p [Socket] TcpServer-TcpClient : Erreur 10035 [ par Gmartintin ] Bonjour à tous, Pour tester les sockets en Delphi 7 sans les composants Indy, j'essaie de mettre en place un TcpServer et un TcpClient, sur deux appli appel de procédure [ par mathieu57100 ] bonjourje suis en train de développer une petite appli tout en apprennant Delphi et Pascal...sur une fiche, j'ai un bouton 'Appliquer' et 'OK' comme d procedure 'repetée' [ par karakvb ] bon voila mon probleme: a la place de ca: procedure TForm1.Image1Click(Sender: TObject); begin image1.picture.loadfromfile(fichier); end;procedure TFo Réccupérer des données sur un autre Unit [ par m_cyril1 ] J'ai fait un petit programme, celui-ci mémorise des chiffres entier sur une première form et sur la deuxième le résultat de la somme des chiffres s'af


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.