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écupérer l'événement d'une fenêtre fille


Sujet :

Langage Delphi

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 207
    Par défaut Récupérer l'événement d'une fenêtre fille
    Bonjour à tous et meilleurs voeux pour 2008.


    A partir de la fenêtre principale de mon application, j'ouvre une fenêtre avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure Tform1.CLIDblClick(Sender: TObject);
    begin
         Application.CreateForm(Tform2, form2);
         form2.Show;
    end;
    Lorsque la fenêtre fille est fermée par l'utilisateur, je voudrais récupérer l'évênement onclose ou onHide depuis la form appelante (form1).

    Quelqu'un peut il me dire comment je peux faire ?

    Merci d'avance
    Wilco

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 131
    Par défaut
    je ne sais pas si j'ai bien compris ton probleme mais je pense que j'ai une solution.
    Il te suffit de faire : Form1.onClose:=Form2.onClose;

    moi ca ne me renvoie pas d'erreur quand je l'execute...

    En esperant t'avoir aidé...

    Kevin

  3. #3
    rsc
    rsc est déconnecté
    Membre émérite
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Par défaut
    Il suffit que Form2 dans son Onclose et Onhide, signale à Form1 ce qu'il est en train de faire, non ? A moins qu'une subtilité ne m'ait échappé ?

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 207
    Par défaut
    Merci pour vos réponses

    Il suffit que Form2 dans son Onclose et Onhide, signale à Form1 ce qu'il est en train de faire, non ?
    oui mais cela m'oblige à insérer un Uses form1 dans le code de form2 : Ce que je veux éviter.

    N'y a til pas moyen d'écrire un évenement dans Tform1 qui récupérerait celui de la form2 ?

  5. #5
    rsc
    rsc est déconnecté
    Membre émérite
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Par défaut
    A part un Timer qui teste régulièrement l'existence et l'état de Form2, je ne vois pas... mais je ne connais tout non plus

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Par défaut
    Bonjour

    Vous pouvez essayer d'ajouter des property déclenchés dans vos formes filles.

    Dans la forme fille ajouter en published;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Property NotifywhenOnClose: TNotifyEvent read FNotifywhenOnClose write FNotifywhenOnClose;  
    // Ne pas oublier d'ajouter FNotifywhenOnClose: TNotifyEvent; en private
    Dans le on close de la forme fille mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      if Assigned(NotifywhenOnClose) then
        NotifywhenOnClose(Self);
    Et lorsque vous créer votre forme fille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    procedure Tform1.CLIDblClick(Sender: TObject);
    begin
         Application.CreateForm(Tform2, form2);
         form2.NotifywhenOnClose := ParentForm_NotifywhenOnClose;
         form2.Show;
    end;
     
    procedure Tform1.ParentForm_NotifywhenOnClose(Sender: TObject);
    begin
      // quand la forme fille est fermer vous executer le OnClose de cette forme
      // Le onClose test if Assigned(NotifywhenOnClose) et declenche l'evenement
      // ParentForm_NotifywhenOnClose reçois l'évènement (Attention l'evenement OnCLose n'est pas Encore terminer. Il est en cour) avec Self comme forme fille
    end;
    Même principe pour OnShow, Onhide, OnDelete etc. (Sauf on create naturellement)

    Cela permet d'avoir l'évènement On... Dans la forme fille, tous en déclenchant un evenement dans la forme Parent.

  7. #7
    rsc
    rsc est déconnecté
    Membre émérite
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Par défaut
    C'est une bonne idée !

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 207
    Par défaut
    Merci 1000 fois Jean-François ...
    ça fonctionne.

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

Discussions similaires

  1. [PowerBuilder] Récupérer la main sur une fenêtre modale
    Par jpdar dans le forum Powerbuilder
    Réponses: 3
    Dernier message: 12/06/2006, 14h21
  2. Coment récupérer le handle d'une fenêtre
    Par robocop2776 dans le forum MFC
    Réponses: 2
    Dernier message: 30/10/2005, 22h21
  3. Perte de gestionnaire d'événements dans une fenêtre
    Par Benjamin GAGNEUX dans le forum Composants VCL
    Réponses: 15
    Dernier message: 23/08/2004, 20h14
  4. icône d'une fenêtre fille
    Par bastien dans le forum C++Builder
    Réponses: 6
    Dernier message: 27/05/2002, 13h46

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