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 VCL Delphi Discussion :

développement d'un composant graphique


Sujet :

Composants VCL Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 174
    Points : 38
    Points
    38
    Par défaut développement d'un composant graphique
    Bonjour,

    Je suis en train de développer un composant graphique qui dérive de TCustomPanel.
    Ce composant permet de représenter graphiquement le tableau périodique des éléments (autrement appelé tableau de Mendeleiev). Mon composant possède une liste d'élement qu'il affiche correctement dans une grille. Cet affichage est codé dans la méthode Paint de mon composant.
    J'ai également codé des évenements qui me permettent de gérer le clic sur un élément.

    Ma première question : Y a-t-il moyen d'éviter l'effet de clignotement qui se produit quand je redimensionne le panel contenant mon composant?

    Deuxieme question : sur le clic dans mon composant, je récupère l'élément qui se trouvait à la position du clic, mais je ne sais pas comment marquer visuellement cet élément (par exemple par un rectangle rouge autour).

    Merci d'avance pour vos suggestions.

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par aharel Voir le message
    Bonjour,

    Je suis en train de développer un composant graphique qui dérive de TCustomPanel.
    Ce composant permet de représenter graphiquement le tableau périodique des éléments (autrement appelé tableau de Mendeleiev). Mon composant possède une liste d'élement qu'il affiche correctement dans une grille. Cet affichage est codé dans la méthode Paint de mon composant.
    J'ai également codé des évenements qui me permettent de gérer le clic sur un élément.

    Ma première question : Y a-t-il moyen d'éviter l'effet de clignotement qui se produit quand je redimensionne le panel contenant mon composant?

    Deuxieme question : sur le clic dans mon composant, je récupère l'élément qui se trouvait à la position du clic, mais je ne sais pas comment marquer visuellement cet élément (par exemple par un rectangle rouge autour).

    Merci d'avance pour vos suggestions.
    ton tableau ne bouge pas je suppose, donc le plus simple est de le dessiner dans un bitmap qui sera affiché dans le OnPaint.

    pour le rectangle rouge, il suffit de l'ajouter sur le Canvas après le dessin du bitmap.

    donc:
    1) onCreate, onResize => redimensionner et redessiner le bitmap
    2) onPaint => Canvas.draw(0,0,bitmap); Canvas.Rectangle(Selection);
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 174
    Points : 38
    Points
    38
    Par défaut développement d'un composant graphique
    Citation Envoyé par Paul TOTH Voir le message
    ton tableau ne bouge pas je suppose, donc le plus simple est de le dessiner dans un bitmap qui sera affiché dans le OnPaint.

    pour le rectangle rouge, il suffit de l'ajouter sur le Canvas après le dessin du bitmap.

    donc:
    1) onCreate, onResize => redimensionner et redessiner le bitmap
    2) onPaint => Canvas.draw(0,0,bitmap); Canvas.Rectangle(Selection);
    Je ne risque pas d'avoir le même problème sur le redimensionnement du bitmap ?

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par aharel Voir le message
    Je ne risque pas d'avoir le même problème sur le redimensionnement du bitmap ?
    comme dit précédemment, commence par basculer la propriété DoubleBuffered à TRUE et tu verras de suite la différence.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. Composant graphique multiple (ou dérivé d'un TFrame)
    Par Jean Bovet dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/04/2007, 18h57
  2. [Composant Graphique] List Box "synchronisés"
    Par Raideman dans le forum C++Builder
    Réponses: 9
    Dernier message: 03/11/2006, 19h50
  3. Réponses: 4
    Dernier message: 03/08/2005, 14h02
  4. Palette de composant graphique
    Par kastor111 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 08/07/2005, 15h04
  5. Composant graphique
    Par Rodrigue dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/12/2004, 20h03

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