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

Langage Delphi Discussion :

Réinitialiser OnChange du TEdit


Sujet :

Langage Delphi

  1. #1
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 385
    Points : 2 999
    Points
    2 999
    Par défaut Réinitialiser OnChange du TEdit
    Bonjour à tous,

    A tout hasard, quelqu'un saurait-il comment réinitialiser le OnChange?

    J'explique.
    Le OnChange du TEdit est déclenché quand on modifie le contenu et qu'on appuie sur Entrée ou que le composant perd le focus.
    Prenons le cas où je tape un caractère et j'appuie sur entrée (dans mon cas, une zone de saisie pour la recherche).
    Le comportement voulu est le remplissage d'une liste à partir du résultat et la sélection du premier élément.
    Ensuite, je repasse dans la zone de saisie et j'appuie à nouveau sur Entrée mais SANS changer le contenu.
    Là, OnChange n'est pas déclenché. Or, je voudrais qu'il le soit.
    Comme si le contenu avait été changé.

    J'ai pensé à coder dans la reprise du focus quelque chose dans le genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    S := contenu;
    contenu := S + 'A';
    contenu := S;
    mais c'est lourdingue :-(

    Mais ça risque de se terminer comme ça vu que je manque de temps pour approfondir le sujet.

    Donc, si une idée vous avez ....

  2. #2
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 961
    Points
    6 961
    Par défaut
    Citation Envoyé par Papy214 Voir le message
    Ensuite, je repasse dans la zone de saisie et j'appuie à nouveau sur Entrée mais SANS changer le contenu.
    Là, OnChange n'est pas déclenché. Or, je voudrais qu'il le soit.
    Comme si le contenu avait été changé.
    Pourquoi ne pas faire appel toi-même à la procédure OnChange au moment qui va bien ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  3. #3
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 385
    Points : 2 999
    Points
    2 999
    Par défaut
    Remplacer le OnChange par un OnKeyDown ?
    Oui, pourquoi pas .... ça résoudra le problème par un track de la touche entrée.
    Les solutions les plus simples sont souvent les moins évidentes


    Mais par curiosité, je laisse la question ouverte au cas où une solution cachée apparaisse.

  4. #4
    Fxg
    Fxg est déconnecté
    Membre éclairé
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 510
    Points : 837
    Points
    837
    Par défaut
    Et en utilisant l'évènement ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if Key = #13 then
        // Traitement;
    end;

  5. #5
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 385
    Points : 2 999
    Points
    2 999
    Par défaut
    J'aurais du préciser qu'il s'agit d'un projet FMX et que le TEDit n'a pas de OnKeypress.
    Mais le OnKeyDown fera l'affaire.

    Merci

  6. #6
    Fxg
    Fxg est déconnecté
    Membre éclairé
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 510
    Points : 837
    Points
    837
    Par défaut
    Je me disais bien aussi que tu n'aurais pas laissé passer une solution aussi simple.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 05/03/2015, 13h56
  2. TEdit Onchange Modified
    Par arkhamon dans le forum Composants FMX
    Réponses: 1
    Dernier message: 12/06/2012, 03h10
  3. Procédure OnChange dans un TEdit
    Par aliwassem dans le forum Composants VCL
    Réponses: 4
    Dernier message: 21/09/2008, 20h37
  4. Courcircuiter l'évènement OnChange d'un TEdit
    Par Captain_JS dans le forum C++Builder
    Réponses: 3
    Dernier message: 13/07/2005, 14h33
  5. TEdit : selection du texte et autre fonction
    Par Odulo dans le forum Composants VCL
    Réponses: 5
    Dernier message: 01/08/2002, 14h27

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