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

Lazarus Pascal Discussion :

Dans le onExit d'un champ, connaître le prochain champ [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 384
    Points : 9 745
    Points
    9 745
    Par défaut Dans le onExit d'un champ, connaître le prochain champ
    Bonjour,

    Voilà, en sortie d'un champ TEdit je fais des controles sur une base de données. Ça, c'est ok.

    Le hic, est que ces controles ne doivent pas être fait, en fonction du champs qui aura le focus.

    Comment connaitre, dans le OnExit du champ, le prochain champ qui aura le focus ?

    Merci d'avance.

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    il doit y avoir un tag qui correspond à l'ordre de focus (zOrder ?) => chercher celui d'indice supérieur dans la liste des composants.

    dans ce cas, si ça ne bouge pas, faire une liste des composants dans cet ordre dans le Create, par exemple, pour ne pas balayer Parent.Components à chaque fois
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    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 Jon Shannow Voir le message
    Comment connaitre, dans le OnExit du champ, le prochain champ qui aura le focus ?
    OnEnter du composant suivant ?
    Philippe.

  4. #4
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 384
    Points : 9 745
    Points
    9 745
    Par défaut
    Merci à vous deux, mais ça ne peut pas fonctionner, parce que justement, je ne connais pas le composant suivant, et que l'ordre de tabulation n'est pas respecté en cas d'utilisation de la souris.

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  5. #5
    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
    Citation Envoyé par Jon Shannow Voir le message
    Merci à vous deux, mais ça ne peut pas fonctionner, parce que justement, je ne connais pas le composant suivant, et que l'ordre de tabulation n'est pas respecté en cas d'utilisation de la souris.

    Sur le OnExit du composant vous notez son nom ou son adresse dans une variable.
    Sur le OnEnter suivant, vous lisez cette variable pour voir d'où vous venez... Si la variable n'est pas intialisée, c'est qu'il s'agit du tout 1° composant sélectionné.

    Ou le problème a-t-il été partiellement énoncé ?
    Philippe.

  6. #6
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 65
    Points : 133
    Points
    133
    Par défaut prévoir l'avenir
    Bonjour,
    Si j'ai bien compris la question,c'est prévoir ou va avoir lieu le prochain click.
    La si quelqu'un connait la réponse,alors chapeau.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 245
    Points : 534
    Points
    534
    Par défaut
    Bonsoir,

    Pas eu le temps de vérifier, mais il me semble avoir lu quelque part dans l'aide de D7 que ActiveControl était modifié avant le déclenchement du OnExit du champ précédent.
    A vérifier.

    André

    PS: autre solution si la première ne marche pas: le OnExit peut déclencher un TTimer qui exécutera l'action après un temps de quelques ms à condition que le focus ne soit pas détenu par les champs en question. (encore détecté par ActiveControl)

  8. #8
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 384
    Points : 9 745
    Points
    9 745
    Par défaut
    Citation Envoyé par alanglet Voir le message
    Pas eu le temps de vérifier, mais il me semble avoir lu quelque part dans l'aide de D7 que ActiveControl était modifié avant le déclenchement du OnExit du champ précédent.
    Oui, c'est ça que je cherchais. Impossible de remettre la main dessus.

    Citation Envoyé par alanglet Voir le message
    A vérifier.
    Oui, c'est ce que je vais faire, voir si Lazarus gère bien "ActiveControl".

    Merci beaucoup
    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  9. #9
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Ceci peut peut-être convenir :

    Dans une forme j'ai posé 4 Tedit : Edit1, Edit2, Edit3, Edit4
    Dans l'évènement onExit de Edit1 j'ai codifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if ActiveControl.Name = 'Edit2' then
    ShowMessage('Je dois faire le traitement';
    A l'exécution, lorsque je clique dans Edit3 ou Edit4, rien ne se passe, MAIS..... (youpi ) si je clique dans Edit2, je vois apparaître mon message.

    N'est ce point là ce que tu cherches, cher Shannow ?

    Il faudra peut être faire attention à l'orthographe des contrôles (maj/min), mais ceci n'est pas un gros problème !
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  10. #10
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 384
    Points : 9 745
    Points
    9 745
    Par défaut
    En effet, le activecontrol fonctionne bien, et résout mon problème.

    Merci à tous pour votre aide...

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment connaître le composant qui *va être* focused dans un OnExit ?
    Par Tardiff Jean-François dans le forum Composants VCL
    Réponses: 3
    Dernier message: 13/11/2007, 09h14
  2. Réponses: 3
    Dernier message: 21/05/2007, 15h31
  3. Réponses: 2
    Dernier message: 06/02/2007, 09h17
  4. Réponses: 12
    Dernier message: 11/09/2006, 15h54
  5. Réponses: 3
    Dernier message: 22/06/2006, 15h14

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