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 :

Probl�me de fonctionnement du Canvas


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2006
    Messages
    94
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Par d�faut Probl�me de fonctionnement du Canvas
    Bonsoir � tous,
    Depuis 2 jours, le canvas n'affiche rien. Exemple tout simplement :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
            Form1->Canvas->Brush->Color=clWhite;
            Form1->Canvas->Rectangle(0,0,15,15);
    }
    Resultat : La Form ne bronche pas.
    Si je pouvais avoir une solution � ce probl�me merci...

  2. #2
    Membre chevronn� Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    669
    D�tails du profil
    Informations personnelles :
    �ge : 60

    Informations forums :
    Inscription : Novembre 2004
    Messages : 669
    Par d�faut
    Essai sans mettre "Form1->"
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    Canvas->Brush->Color = clRed;
    +A

  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
    Est ce que ce n'est pas ce que tu cherche.
    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
     
    //---------------------------------------------------------------------------
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    // mise en couleur de la forme fond blanc
    Form1->Color = clWhite;
     
    // dimensionner la forme en haut a gauche
    // longeur 105 hauteur 105
    Form1->Top = 0;
    Form1->Left = 0;
    Form1->Height = 105;
    Form1->Width = 105;
    }
    //---------------------------------------------------------------------------

  4. #4
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2006
    Messages
    94
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Par d�faut
    No Blondelle
    ce que je voulais c'�tait juste faire un carr� sur la Form pour v�rifier que mon Canvas marchait
    D'ailleurs ca ne marche toujours pas.
    Je ne vois pas d'o� cel� peut provenir... Peut-�tre des options du projet.

    PS : Le canvas ne marche ni sur la form ni sur la PaintBox... .
    Voici la fonction en question...
    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
     
    void Redraw(TForm1 *Form)
    {
    int i,j,k;
    TPaintBox *pBox;
            for (i=0; i<3; i++){
                    for (j=0; j<3; j++){
                            for (k=0; k<6; k++){
                                    switch (k)
                                    {
                                    case 0 : pBox=Form->Front; break;
                                    case 1 : pBox=Form->Left; break;
                                    case 2 : pBox=Form->Right; break;
                                    case 3 : pBox=Form->Up; break;
                                    case 4 : pBox=Form->Down; break;
                                    case 5 : pBox=Form->Back; break;
                                    }
                                    switch (Cube[k][j][i])
                                    {
                                    case 1 : pBox->Canvas->Brush->Color=clWhite;                     break;
                                    case 2 : pBox->Canvas->Brush->Color=clBlue; break;
                                    case 3 : pBox->Canvas->Brush->Color=clRed; break;
                                    case 4 : pBox->Canvas->Brush->Color=clGreen; break;
                                    case 5 : pBox->Canvas->Brush->Color=clYellow; break;
                                    case 6 : pBox->Canvas->Brush->Color=clPurple; break;
                                    }
                            pBox->Canvas->Rectangle(i*40,j*40,i*40+40, j*40+40);
                            }
                    }
            }
    }

  5. #5
    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
    voila quelque chose qui marche.
    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
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    // mise en couleur fond blanc
    //Form1->Color = clWhite;
     
    // dimensionner la forme en haut a gauche
    // longeur 105 hauteur 105
    Form1->Top = 0;
    Form1->Left = 0;
    Form1->Height = 400;
    Form1->Width = 400;
    Image1->Canvas->Brush->Color = clWhite;
    Image1->Canvas->Rectangle(0, 0, 100, 100);
     
    }
    //---------------------------------------------------------------------------
    Est tu sur que tous les Canvas sont visible il est possible que le Canvas de certains composant soient invisible

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 414
    Par d�faut
    Salut !

    Cel� vient du fait que le dessin par le canvas est temporaire.
    Il faut solliciter la m�thode qui dessine dans les �v�nements OnPaint et OnResize de la Form.

    Ca reste vrai pour un TPaintBox pour ce qui est de l'�v�nement OnPaint.

    A plus !

  7. #7
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2006
    Messages
    94
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Par d�faut
    Voici un exemple de Canvas qui marchait :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    switch (Recover[q][f])
         {
         case 1 :   pBox->Canvas->Brush->Bitmap=Form->_1->Picture->Bitmap; break;
        case 2 : pBox->Canvas->Brush->Bitmap=Form->_2->Picture->Bitmap; break;
        case 3 : pBox->Canvas->Brush->Bitmap=Form->_3->Picture->Bitmap; break; // etc...
                                                    }
    pBox->Canvas->Rectangle(r*20,s*20,r*20+20,s*20+20);
    Aucune diff�rence hors mis le fait que cet exemple se sert de bitmap...
    Le canvas est ici utilis� sur la PaintBox...
    J'ai beau cr�e un rectangle par d�faut sur ma Form rien ne se fait rien ne se cr�e... Et je n'avais pas besoin d'un �v�nement OnPaint ou OnResize pour dessiner � ma guise les rectangles ou les TBitmap...

  8. #8
    R�dacteur/Mod�rateur
    Avatar de ero-sennin
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par d�faut
    Bonsoir,

    J'essaie de r�soudre ce probl�me, est je suis tomb� sur un os moi aussi. Je profite donc de ce post afin d'exposer mon probl�me.

    Voici mon .h :

    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
    //---------------------------------------------------------------------------
     
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:	// Composants gérés par l'EDI
            void __fastcall FormCreate(TObject *Sender);
    private:	// Déclarations utilisateur
                    Graphics::TBitmap *Bitmap = new Graphics::TBitmap;
    public:		// Déclarations utilisateur
            __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    Et voici mon .cpp :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
      image->Canvas->Brush->Color=clWhite;
      image->Canvas->Rectangle(0,0,15,15);
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::FormPaint(TObject *Sender)
    {
      Canvas->Draw(0,0,image);
    }
    Et l'erreur g�n�r� par BCB :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    [C++ Erreur] Unit1.h(17): E2233 Impossible d'initialiser un membre de classe ici
    Je ne comprends pas trop comment faire pour le d�clarer en global.

    Sinon, j'ai un bout de code qui est tir� de BCB est qui pourrait �tre int�ressant pour Julien_C++ :

    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
    void __fastcall TForm1::Button1Click(TObject *Sender)
     
    {
      Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
      try
      {
        pBitmap->LoadFromFile("C:\\Program Files\\Common Files\\Borland Shared\\Images\\Splash\\256color\\factory.bmp ");
        pBitmap->Transparent = true;
        pBitmap->TransparentColor = pBitmap->Canvas->Pixels[50,50];
        Form1->Canvas->Draw(0,0,pBitmap);
        pBitmap->TransparentMode = tmAuto;  
        Form1->Canvas->Draw(50,50,pBitmap);
      }
      catch (...)
     
      {
        ShowMessage("Ne peut charger ni afficher le bitmap");
      }
      delete pBitmap;
    }
    Merci

  9. #9
    Membre �clair�
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Juillet 2004
    Messages
    289
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2004
    Messages : 289
    Par d�faut
    @ero-sennin : ton erreur vient du fait que tu instancie un Graphic::TBitmap dans ton header.
    Essaye de l'instancier dans ton constructeur ou dans ton FormCreate et tu ne devrais plus avoir d'erreur.

  10. #10
    Expert confirm�

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Software Developer
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par d�faut Euh
    Le Canvas ne sert que pour les m�thodes Paint et Repaint de ta Form.
    Donc pour voir ton carr� s'afficher il faut en fait que tu d�finisses la fonction OnPaint de cette Form (Inspecteur d'objets - Ev�nements - OnPaint), ca te cr�e la fonction FormPaint o� tu places ton bout de code concernant le Canvas :
    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
     
    //------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit1.h"
    //------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //------------------------------------------------------------
    void __fastcall TForm1::FormPaint(TObject *Sender)
    {
      Form1->Canvas->Brush->Color=clWhite;
      Form1->Canvas->Rectangle(0,0,15,15);
    }
    //------------------------------------------------------------
    Et la ton carr� s'affiche.

    Pour la paintbox c'est pareil, il faut red�finir la fonction OnPaint de la m�me mani�re
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert � rien, mais qu'il est joli (des fois) : ProceduralGenerator (G�n�ration proc�durale d'images, et post-processing).

  11. #11
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2006
    Messages
    94
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Par d�faut
    Bonjour !
    Je vous jure que l'�v�nement OnPaint ne m'�tait pas n�cessaire il y a 3 jours. Je pouvais utiliser le Canvas aussi bien sur la form que sur la paintbox et aussi bien sur des fonctions Event que sur des fonctions 'cr�es manuellement...'

    Mais j'avoue que pour l'�v�nement OnPaint vous aviez raison
    Ceci signifie que je dois s�parer chaque d�coupe de cube sur chaque �v�nement PaintBox.
    Si il y a d'autres probl�mes de Canvas je laisse le post ouvert.

    Merci � vous tous

    PS : L'inconv�nient : EN utilissant OnPaint pour chaque PaintBox, mon programme contient 6 fois � quelque chose pr�s la m�me chose...

  12. #12
    R�dacteur/Mod�rateur
    Avatar de ero-sennin
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par d�faut
    Citation Envoy� par Captain_JS
    @ero-sennin : ton erreur vient du fait que tu instancie un Graphic::TBitmap dans ton header.
    Essaye de l'instancier dans ton constructeur ou dans ton FormCreate et tu ne devrais plus avoir d'erreur.

    Je voulais d�clarer le Bitmap en global afin de pouvoir utiliser ma "variable" image de type Bitmap dans diff�rents �v�nements.

    En delphi, j'y arrive, mais ce n'est pas du tout la m�me chose avec C++ Builder.
    Moi qui pensais que ca serait aussi simple qu'en delphi, je me rends compte que non

    Captain_JS (ou quelqu'un d'autre) peut-il m'expliquer comment d�clarer ma "variable" image de type Bitmap pour que je puisse y acc�der partout ?

    Je donne mon code modifi� :

    le .h :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class TForm1 : public TForm
    {
    __published:	// Composants gérés par l'EDI
            void __fastcall FormCreate(TObject *Sender);
            void __fastcall FormPaint(TObject *Sender);
    private:	// Déclarations utilisateur
    public:		// Déclarations utilisateur
            __fastcall TForm1(TComponent* Owner);
    };
    Graphics::TBitmap *image = new Graphics::TBitmap;
    et le .cpp:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
      image->Canvas->Brush->Color=clWhite;
      image->Canvas->Rectangle(0,0,150,150);
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::FormPaint(TObject *Sender)
    {
      Form1->Canvas->Draw(0,0,image);
    }
    Le probl�me, c'est que je n'ai rien � l'�cran et que je n'ai plus d'erreur !
    Merci

  13. #13
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2006
    Messages
    94
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Par d�faut
    Tu es sur que l'espace Graphics soit n�cessaire?
    Tout simplement non?

  14. #14
    R�dacteur/Mod�rateur
    Avatar de ero-sennin
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par d�faut
    Je pense que c'est n�cessaire car sinon j'obtiens une erreur :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    [C++ Erreur] Unit1.h(17): E2015 Ambiguïté entre 'TBitmap' et 'Windows::TBitmap'
    Je comprends vraiment pas

  15. #15
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2006
    Messages
    94
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Par d�faut
    Tien : Essaye ca
    Ca doit marcher :
    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
     
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:	// Composants gérés par l'EDI
            TBitmap *image;
    private:	// Déclarations de l'utilisateur
    public:		// Déclarations de l'utilisateur
            __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif

  16. #16
    R�dacteur/Mod�rateur
    Avatar de ero-sennin
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par d�faut
    Cela ne fonctionne pas !
    Erreur, erreur, erreur

    Je commence � d�sesp�rer

  17. #17
    Membre exp�riment�

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    288
    D�tails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 288
    Par d�faut
    Tiens essaye �a, �a fonctionne.
    �a dessine une bitmap en niveaux de gris sur la TForm, remplace par le tien:

    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
     
    //-------------------------------------------------------------------------
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit1.h"
    //-------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //-------------------------------------------------------------------------
     
    __fastcall TForm1::TForm1(TComponent* Owner)
      : TForm(Owner)
    {
    }
    //-------------------------------------------------------------------------
     
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
      BYTE* pPx;
     
      m_pBmp = new Graphics::TBitmap();
      m_pBmp->Width = 255;
      m_pBmp->Height = 255;
      m_pBmp->PixelFormat = 24;
     
      for (int nRow=0; nRow<m_pBmp->Height; nRow++) {
        pPx = (BYTE*)m_pBmp->ScanLine[nRow];
        for (int nCol=0; nCol<m_pBmp->Width; nCol++) {
          memset(pPx, nCol, 3);
          pPx+=3;
        }
      }
    }
    //-------------------------------------------------------------------------
     
    void __fastcall TForm1::FormDestroy(TObject *Sender)
    {
      delete m_pBmp;
    }
    //-------------------------------------------------------------------------
     
    void __fastcall TForm1::FormPaint(TObject *Sender)
    {
      Form1->Canvas->Draw(0,0,m_pBmp);
    }
    //-------------------------------------------------------------------------
    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
     
    #ifndef Unit1H
    #define Unit1H
    //-------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    //-------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:	// Composants gérés par l'EDI
      void __fastcall FormPaint(TObject *Sender);
      void __fastcall FormCreate(TObject *Sender);
      void __fastcall FormDestroy(TObject *Sender);
    private:	// Déclarations utilisateur
    protected:
      Graphics::TBitmap* m_pBmp;
    public:		// Déclarations utilisateur
      __fastcall TForm1(TComponent* Owner);
    };
    //-------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //-------------------------------------------------------------------------
    #endif
    Tu as sans doute un probl�me d'instanciation, mais pour dessiner sur la form il faut passer par le OnPaint ou un composant TPaintBox. Tu peux aussi faire du subclassing mais le principe restera le m�me : override du OnPaint.

    Yarp
    www.senosoft.com

  18. #18
    R�dacteur/Mod�rateur
    Avatar de ero-sennin
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par d�faut
    Merci Yarp pour ce code,
    Tout fonctionne nikel d�sormais !

    Si ce n'est d�j� fait et si Julien C++ � eu r�ponse � ca question, ce topic peut �tre consid�r� comme r�solu

    Merci et @ +

  19. #19
    Expert confirm�

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Software Developer
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par d�faut JulienC++
    Si tes paintbox dessinent toutes la m�me chose, il suffit que tu leur attribues la m�me fonction Paint non?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert � rien, mais qu'il est joli (des fois) : ProceduralGenerator (G�n�ration proc�durale d'images, et post-processing).

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [Java2D] Probl�me de taille du canvas
    Par vero55 dans le forum 2D
    R�ponses: 2
    Dernier message: 16/04/2007, 09h44
  2. R�ponses: 5
    Dernier message: 16/12/2006, 12h24
  3. [HashTable] Probl�me de fonctionnement
    Par RR instinct dans le forum Langage
    R�ponses: 8
    Dernier message: 22/06/2006, 14h01
  4. Datecalc : probl�me de fonctionnement
    Par mollux dans le forum Modules
    R�ponses: 2
    Dernier message: 07/06/2006, 08h59
  5. [Tomcat] Probl�me de fonctionnement de Tomcat sous linux
    Par lautux dans le forum Tomcat et TomEE
    R�ponses: 5
    Dernier message: 18/03/2006, 10h30

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