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

Composants FMX Delphi Discussion :

[D10] Comment déclencher l'évènement OnExit sur un TLayout ? [Windows]


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    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 704
    Par défaut [D10] Comment déclencher l'évènement OnExit sur un TLayout ?
    Je souhaiterais détecter que le focus a été donné à un autre composant que le mien (qui est un TLayout avec des sous-composants TRectangle).
    Vu que l'évènement OnExit n'est pas publié, j'ai fouillé les sources et j'ai vu qu'il était défini dans la classe TControl.
    J'ai codé ça, et ça ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    type
       TTest = class(TLayout)
       ...
        protected
          procedure TestExit(Sender: TObject);
       ...
       end;
     
    ...
     
    constructor TTest.Create(AOwner: TComponent);
    begin
       ...
      OnExit := TestExit;
    ...
    end;
     
    procedure TTest.TestExit(Sender: TObject);
    begin
      // Plein de code ...
     
    end;
    J'ai mis un point d'arrêt dans TestExit, et il n'y passe jamais.
    Pourtant, j'ai activé le HitTest.

    Une idée ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"É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.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  2. #2
    Membre Expert
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Par défaut
    Bonjour,

    Citation Envoyé par Lung Voir le message
    Une idée ?

  3. #3
    Membre Expert
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Par défaut
    Moi avec Delphi Berlin Update 2, j'ai créé une appli FMX. J'ai mis un layout sur la form, puis un edit qui n'est pas dans le layout.
    Et ensuite ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Layout1.OnExit   := LayoutOnExit;
      Layout1.CanFocus := True;
      Layout1.SetFocus;
    end;
     
    procedure TForm1.LayoutOnExit(Sender: TObject);
    begin
      Showmessage('Layout OnExit');
    end;
    Lorsque je lance l'application, que je clique sur le composant edit pour lui donner le focus dans ce cas là j'ai bien le message OnExit du layout qui s'affiche.

  4. #4
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    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 704
    Par défaut
    Citation Envoyé par Thierry Laborde Voir le message
    Oui ! Je l'avais oublié celui-là.

    Ça marche !
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"É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.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 04/10/2011, 12h53
  2. Comment déclencher un événement à l'aide d'un script ? explications svp
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/03/2011, 16h57
  3. Déclencher l'évènement onclick sur une balise <img>
    Par Marc22 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/02/2010, 14h22
  4. Réponses: 1
    Dernier message: 27/05/2008, 08h44
  5. FAQ : Comment déclencher un évènement à l'aide d'un script?
    Par vny dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/02/2006, 16h53

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