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

C++Builder Discussion :

BCB6 Création d'un composant à partir d'un TButton


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 43
    Par défaut BCB6 Création d'un composant à partir d'un TButton
    Bonjour,

    Je cherche à créer un composant à partir d'un TButton pour y dessiner un bitmap spécifique (un peu à la manière d'un TBitBtn).
    Comme un TButton ne dispose pas de canvas, j'en crée un, mais qd ensuite dans le constructeur je dessine dedans, lorsque je pose le contrôle, j'ai un message "le controle " n'a pas de parent"...

    Mon code du constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    FGlyph = new Graphics::TBitmap();
     
     
    Canvas=new TControlCanvas();
    Canvas->Control=this;
    Paint();
    et dans Paint :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (Glyph)
            {
            Canvas->CopyRect(Rect(0,0,Glyph->Width,Glyph->Height),Glyph->Canvas,Rect(0,0,Glyph->Width,Glyph->Height));
     
     
     
            }
    Que se passe-t'il ?

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut Colloc

    Pour modifier un composant
    1 Creer un canvas, ce que tu a fait
    2 L'affecter a ton TButton, this represente la Form
    3 Crer un TBitmap
    4 Charger une image.bmp dans le TBitmap
    5 Afficher dans le TButton

    le .cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    // creer un Canvas
    TControlCanvas *pCn;
    pCn = new TControlCanvas();
    pCn->Control = Button1;
    Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
    pBitmap->LoadFromFile("C:\\Users\\home\\Documents\\Images\\Massiv10\\Bitmaps\\Arrow\\arcarrow1.bmp");
    pCn->Draw(4,4,pBitmap);
    // detruire le Canvas
    delete pCn;
    }
    il y a des exemples de CGI sur le site pour la creation de divers composants

  3. #3
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Tu peut remplacer
    pCn->Draw(4,4,pBitmap);
    par
    TRect TheRect;
    TheRect = Rect(4,4,((Button1->Width) - 4),(Button1->Height) - 4);
    pCn->StretchDraw(TheRect, pBitmap);
    L'image s'adaptera au Canvas du TButton

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/01/2014, 09h19
  2. Réponses: 2
    Dernier message: 23/10/2013, 12h40
  3. Création d'un composant à partir d'un string
    Par zanifu dans le forum Composants VCL
    Réponses: 4
    Dernier message: 05/04/2006, 16h34
  4. Création d'un composant et couleurs
    Par gibet_b dans le forum Composants VCL
    Réponses: 4
    Dernier message: 06/07/2004, 13h44

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