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

Delphi Discussion :

Propagation d'un evenement comme une fuite


Sujet :

Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 38
    Points : 46
    Points
    46
    Par défaut Propagation d'un evenement comme une fuite
    Bonjour

    Je souhaite tracer plusieurs lignes bezier reliant des composants.

    Ma première solution a été de tracer ces lignes sur le canvas du conteneur commun a tous ces composants.

    Malheureusement cette solution ne suffit plus car je dois désormais voir et tracer les lignes au-dessus des composants.

    J'ai fais quelque tentative en tracant sur le Canvas "le plus haut" avec la methode GetDc(0); mais cela ne fonctionne plus dès que j'utilise le doublebuffered de mon conteneur et des mes composants.

    J'ai donc eu l'idée de dérivé d'un composant TCustomControl que je met transparent sur lequel je trace mes lignes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Params.ExStyle := Params.ExStyle+WS_EX_Transparent;
     ControlStyle := ControlStyle-[csOpaque]
    Et que je met sur la couche superieure avec BringToFront;

    Mais ce controle capture tous les événements souris (mousedown,mouseup,etc...) car c'est lui qui occupe toute la surface du container.

    Y'a t-il un moyen de propager tous les événéments, non pas vers le parent
    comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure mousemove(x,y);
    begin
     (Parent as TMachin).mousemove(x,y);
    end;
    Mais plutot comme si le composant dérivé de TCustomControl n'existait pas ?
    genre :

    Hide;
    Traite les evenements (click, drag, drop, etc);
    Show;

  2. #2
    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
    tu peux surcharger la methode wndproc et ne rien faire (surtout pas un appel a inherited !!)
    Ou alors tu paufine en testant le message, si diffentes des clicks, mousedown, etc ... appel a inherited sinon non.

    Ainsi le composant ne reagira pas aux clicks qui seront suceptible d'etre traités ailleurs a mon avis ....

Discussions similaires

  1. Propagation d'evenement dans une classe
    Par C_le_N dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 21/07/2010, 11h28
  2. Cherche un objet un peu comme une TStringList
    Par Desraux dans le forum Langage
    Réponses: 6
    Dernier message: 27/07/2004, 14h04
  3. Inserer une page HTML comme une boite!
    Par thief dans le forum MFC
    Réponses: 4
    Dernier message: 16/01/2004, 21h13
  4. Generation d'evenements a une date precise
    Par pascalzzz dans le forum MFC
    Réponses: 2
    Dernier message: 04/06/2002, 15h21

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