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 :

[D7] Evénement global depuis un cadre.


Sujet :

Langage Delphi

  1. #1
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut [D7] Evénement global depuis un cadre.
    Bonjour à tous,

    J'ai glissé un cadre comprenant des boutons sur une fiche.
    J'aimerais (tout betement) récupérer l'evenement onClick de ce bouton depuis la fiche principale.

    J'ai vu que je pouvais réinplémenter le onClick du bouton de la frame depuis la fiche principale, et mettre du code avant ou après l'appel de la procédure onClick du cadre, seulement, j'aimerais savoir s'il y avait d'autres solutions.

    En effet, je ne trouve pas ca très optimisé, et de plus, j'aimerais que ce soit le cadre lui même qui envoie l'information, car il est déposé sur plusieurs fiches et cette solution m'impose de répéter le code à chaque endroit ou il est.

    Avez vous une solution ?

    Merci d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 49
    Points : 42
    Points
    42
    Par défaut
    Bonjour,

    le comportement de ton "cadre" ressemble fort à celui d'un "compound component", c'est à dire d'un composant composé de plusieurs composants standards (en l'occurence ton cadre et tes boutons).

  3. #3
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Rien ne t'empeche de creer tes propres proprietees evenements dans le cadre : "OnButtonMachinClick" "OnSauvegardeClick", .... et les lier a la form comme de simple evenements de classe.

  4. #4
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Bonjour Clorish,

    Ta réponse ressemble bien à une solution possible de ce que je veux, seulement, quelques questions persistent:

    D'implementer le onClick n'écrase-t-il pas celui déjà définit dans l'évenement "normal" du cadre ou est-il appelé 2 fois ?
    Comment l'intercepter depuis la fiche superieure ?

    Bref, je n'ai jamais fait ça... Un exemple de bout de code serait le bienvenue.

    Merci d'avance.

  5. #5
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Je ne parle pas des evenements classiques deja defini mais d'en definir de nouveaux.

    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
    24
     
    Type
      TMonEvent = procedure (Sender : TObject; StringParam: String; IntParam: Integer) of Object;  // Parametres au choix !!
     
      TMaFrame : Class (TFrame)
      Private
        FOnMonEvent : TMonEvent;
      Protected
        Procedure DoMonEvent(StringParam : String; IntParam : Integer);
        Procdure UneProcQuiAppelleMonEvent;
      Public
        Property OnMonEvent : TMonEvent Read FOnMonEvent Write FOnMonEvent;
      End;
     
     
    Procedure TMaFRame.UneProcQuiAppelleMonEvent;
    Begin
    Self.DoMonEvent(Str, i); // Appel eventuel du code lié utilisateur lié a l'evenement.
    End;
     
    PRocedure TMaFrame.DoMonEvent(StrPAram : String; IntParam : Integer);
    Begin
    If Assigned(Self.FOnMonEvent) Then Self.FOnMonEvent(Self, StrPAram, IntParam);
    End;
    La gestion dans ton application se fait comme tout evenement classique : Soit par l'inspecteur d'objet (si accessible ...) sinon en dynamique.
    Tu creer une procedure que tu affecte a la property evenement selon le meme schema que Delphi quand on lui demande de le faire automatiquement par l'inspecteur d'objet.

Discussions similaires

  1. Astuce pour accès aux variables globales depuis une fonction
    Par manur0 dans le forum Général Python
    Réponses: 0
    Dernier message: 03/09/2009, 14h30
  2. XHTML : Pointer différentes parties d'une page depuis un cadre
    Par Katden dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 08/12/2008, 15h25
  3. Réponses: 4
    Dernier message: 12/03/2008, 13h18
  4. Réponses: 1
    Dernier message: 14/10/2007, 12h44
  5. Réponses: 11
    Dernier message: 08/02/2006, 16h59

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