IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Comment appeler des procédures dev express


Sujet :

Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut Comment appeler des procédures dev express
    salam

    je développe souvent a l'aide des composant dev express mais a chaque fois je trouve des difficultés pour appeler les procédures des événements (onclique, enchange)vu la multitude des variable locaux, puisque avec les événement des composant simple il sufie juste d'appeler le sender pour le moment je bloque sur une procédure qui s’appelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TFApplication.gridappapplicationCellClick
      (Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo;
      AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
     
    begin
     
    //bla bla bla
     
    end;
    j’ai essayer avec ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gridappapplicationCellClick(nil,nil,mbRight,ashift,ahandled);
    j'ai déclarer ashift comme TShiftState mais j'ai pas trouver quoi lui affecter (j'ai fait une petite recherche et j'ai trouver que ça a un rapport avec les touches de clavier)
    j'ai déclarer ahandled comme étant boolean mais bon j'ai pas trouver ce que ça veut dire
    et ça n'a pas marcher rien ne ce passe lors de l’appelle.

    je vous remercie d'avance.
    Delphi XE8 Architect - Win 10

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par adelcrb Voir le message
    j'ai déclarer ashift comme TShiftState mais j'ai pas trouver quoi lui affecter (j'ai fait une petite recherche et j'ai trouver que ça a un rapport avec les touches de clavier)
    j'ai déclarer ahandled comme étant boolean mais bon j'ai pas trouver ce que ça veut dire
    et ça n'a pas marcher rien ne ce passe lors de l’appelle.
    Effectivement TShiftState a rapport avec les touches claviers mais aussi les boutons de la souris, c'est un type ensemble, défini dans l'unité Classes.
    Pour Delphi XE2, on a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble, ssTouch, ssPen, ssCommand);
    Pour le définir son contenu, on va écrire par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Touches Shift et Ctrl enfoncées ainsi que le bouton gauche de la souris
    aShift := [ssShift, ssCtrl, ssLeft];
    // Ensemble vide
    aShift := [];
    Pour tester l'existence d'un élément dans l'ensemble, on va écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if ssLeft in aShift then
      Beep;
    Enfin, tout cela, on le trouve dans l'aide...
    Maintenant pour appeler directement cette procédure normalement déclenchée lors d'un événement, on pourrait écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var
      AHandled: Boolean;
      // ...
      gridappapplicationCellClick(nil, nil, mbRight, [], AHandled);
      // ou suivant ce que l'on veut simuler (appui sur Ctrl et Alt et bouton droit par exmple)
      gridappapplicationCellClick(nil, nil, mbRight, [ssCtrl, ssAlt, ssRight], AHandled);
    Ensuite, le résultat dépendra du code présent dans la procédure gridappapplicationCellClick...
    Philippe.

  3. #3
    Membre averti Avatar de Moez.B
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Mars 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 219
    Points : 370
    Points
    370
    Par défaut
    Bonjour,

    Si tu mets à nil le premier paramètre, soit sûr que tu auras de gros soucis après.
    La simple raison est que l'évènement est finalement un délégué qui fait de sorte à appeler les routines internes à une instance d'un objet. Alors, il faut que ton objet soit différent de nil, sinon, tu ne peux pas appeler aucune méthode bien évidement.
    Ensuite, le deuxième paramètre peut encore poser un problème pour la même raison. C'est un objet, tu fais passer à nil et hop tu peux te retrouver dans le même malheur.
    Le troisième paramètre est un type identifiant le bouton de la souris lors de la sélection de la cellule.
    Le quatrième paramètre est l'un des boutons enfoncées du claviers (il peut être un parmi plusieurs et c'est pour cela que c'est un ensemble [])
    Le cinquième paramètre est Handled: si le contrôle gère l'évènement, alors c'est à True, sinon c'est le parent qui gère cet évènement.

    Bonne journée.
    "L'homme supérieur est celui qui a une bienveillance égale pour tous, et qui est sans égoïsme et sans partialité." [Confucius]
    "Celui qui n'évolue pas disparaît." [Charles Darwin]
    “Without requirements or design, programming is the art of adding bugs to an empty text file.” [Louis Srygley]

Discussions similaires

  1. Comment appeler une procédure ?
    Par darkmalak01 dans le forum Débuter
    Réponses: 2
    Dernier message: 03/10/2005, 19h05
  2. Réponses: 6
    Dernier message: 30/09/2005, 00h53
  3. [AS400] Comment faire des procédures stockées ?
    Par marsup54 dans le forum DB2
    Réponses: 6
    Dernier message: 22/08/2005, 15h34
  4. comment appeler une procédure événementielle
    Par OutOfRange dans le forum Débuter
    Réponses: 8
    Dernier message: 03/06/2005, 19h32
  5. Comment appeler des API windows en C ?
    Par JuanLopez1966 dans le forum Windows
    Réponses: 6
    Dernier message: 22/12/2004, 10h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo