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 :

Création d'autres évènements


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 21
    Par défaut Création d'autres évènements
    Salut tout le monde;

    Je veux savoire comment créer d'autre evenement pour un composant existant. Dois-je modifier le composant ou je peux faire quelque chose depuis mon programme

    Exemple 01 :
    Un composant TImage

    Je veux créer un autre evenement "OnMouseEnter" -> Veut dire : Quand le pointeur de la souris et sur la zone de ce compsant, pas comme l'evenement OnMouseMove qui m'oblige à déplacer le pointeurs de la souris sur le composant pour exécuter le block,

    Je veux cet evenement qui detecte la position du curseur, est ce qu'il est sur un composant ou pas .

    Exemple 02:
    Un composant TImage

    Je veux créer un autre evenement "OnMouseLeave" -> Veut dire : Quand la position du curseur est hors la zone allouée par les dimensions du composant , exécuter le block.

    =========================
    Je sais que c'est deux evènement existe sous Delphi 2006 .
    Mais je veux les créer sous Delphi 7 , pour comprendre le concept de création des evenements.

    =========================
    Merci d'avance
    =========================

  2. #2
    Membre Expert Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Par défaut
    voici une petite unité que j'ai faite ... J'espère qu'elle pourra t'aider

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    unit ExtImage;
     
    interface
     
    uses
    Controls, ExtCtrls, Messages, Classes, Graphics;
     
    type
      //Classe de base, qui contient tout le code
      TCustomExtImage = class(TImage)
      private
        FOnMouseLeave: TNotifyEvent;
        FOnMouseEnter: TNotifyEvent;
        //interception des messages windows d'evenements de la souris qui nous interessent
        procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
        procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
      protected
        //nos proprietes
        property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
        property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
     
        //procedures appelées par les messages windows
        // permet de surcharger ces procedures si on herite le composant, sans se soucier des messages
        procedure MouseEnter; virtual;
        procedure MouseLeave; virtual;
    end;
     
    //class effective, permet simplement de "publisher" les proprietes voulues
    TExtImage = class(TCustomExtImage)
      published
        property OnMouseEnter;
        property OnMouseLeave;
    end;
     
    procedure Register;
     
    implementation
     
    procedure Register;
    begin
      RegisterComponents('Supplément', [TExtImage]);
    end;
     
    { TCustomExtImage }
     
    procedure TCustomExtImage.CMMouseEnter(var Message: TMessage);
    begin
      MouseEnter;
    end;
     
    procedure TCustomExtImage.CMMouseLeave(var Message: TMessage);
    begin
      MouseLeave;
    end;
     
    procedure TCustomExtImage.MouseEnter;
    begin
      if Assigned(FOnMouseEnter) then
        FOnMouseEnter(Self);
    end;
     
    procedure TCustomExtImage.MouseLeave;
    begin
      if Assigned(FOnMouseLeave) then
        FOnMouseLeave(Self);
    end;
     
     
    end.

  3. #3
    Membre averti
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 21
    Par défaut
    Merci mon ami, c'était vraiment la solution que j'ai cherché

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

Discussions similaires

  1. [ControlTemplate] Utiliser un EventTrigger pour lancer un autre évènement
    Par seiryujay dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 11/03/2009, 22h40
  2. Réponses: 1
    Dernier message: 29/07/2008, 22h24
  3. déclencher attachEvent avant les autres évènements
    Par renaudjuif dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/01/2008, 15h40
  4. [VBA-Excel] Création de l'événement d'un clic droit
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/08/2006, 12h36
  5. Création dynamique d'évènements
    Par thierrybatlle dans le forum Access
    Réponses: 1
    Dernier message: 14/04/2006, 19h21

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