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

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  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