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 :

image de fond à la taille de la form


Sujet :

C++Builder

  1. #1
    Membre habitué
    Homme Profil pro
    Analyste développeur VB6, SQL, VB.NET, C#
    Inscrit en
    Avril 2003
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste développeur VB6, SQL, VB.NET, C#
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2003
    Messages : 111
    Points : 141
    Points
    141
    Par défaut image de fond à la taille de la form
    bonjour,

    encore une question sur les images de fond...

    je possède sur une Form, un composant TImage dans lequel j'ai chargé une image *.jpg. j'affiche l'image étirée à la taille de la Form par ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void __fastcall TFormMain::FormPaint(TObject *Sender)
    {
            Canvas->StretchDraw(Rect(0, 0, ClientWidth, ClientHeight), ImageDeFond->Picture->Graphic);
    }
    mon problème vient du fait que cette image ne se redessine pas toute seule lorsque je redimensionne la Form.

    par contre, j'ouvre l'explorateur windows par dessus la Form puis le referme... tada, mon image est redimensionnée...

    même en mettant Repaint() dans TFormMain::OnResize(), c'est pareil.
    N'oubliez pas le tag .

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    tu peux utiliser directement TForm1->ClientRect a la place de Rect(0, 0, ClientWidth, ClientHeight)

    ne peux tu pas mettre directement ta fonction ds repaint ?

    A+
    on en apprend ts les jour... ;O)
    N'oublions pas le Résolu...ça fait tellement plaisir

  3. #3
    Membre habitué
    Homme Profil pro
    Analyste développeur VB6, SQL, VB.NET, C#
    Inscrit en
    Avril 2003
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste développeur VB6, SQL, VB.NET, C#
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2003
    Messages : 111
    Points : 141
    Points
    141
    Par défaut
    : l'évènement disponible de la form est OnPaint, peux-tu m'expliquer ce que tu veux dire par:
    ne peux tu pas mettre directement ta fonction ds repaint ?
    N'oubliez pas le tag .

  4. #4
    Membre habitué
    Homme Profil pro
    Analyste développeur VB6, SQL, VB.NET, C#
    Inscrit en
    Avril 2003
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste développeur VB6, SQL, VB.NET, C#
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2003
    Messages : 111
    Points : 141
    Points
    141
    Par défaut
    j'ai insérer ce code pour savoir si l'évènement OnPaint était bien appelé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void __fastcall TFormMain::FormPaint(TObject *Sender)
    {
            Canvas->StretchDraw(ClientRect, ImageDeFond->Picture->Graphic);
            ShowMessage("paint");
    }
    //---------------------------------------------------------------------------
    void __fastcall TFormMain::FormResize(TObject *Sender)
    {
            Repaint();
    }
    mon message s'affiche bien quand je change la taille de ma fenêtre. seul hic: mon image de fond n'est pas rafraichie SAUF sous la fenêtre de message lorsque je ferme celle-ci...
    N'oubliez pas le tag .

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    eh bien je comprends pas trop pourquoi

    moi g essayé ce code et c ok

    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
     
     
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormPaint(TObject *Sender)
    {
    Graphics::TBitmap *Bitmap1 = new Graphics::TBitmap();
    Bitmap1->LoadFromFile("fond.bmp");
    Canvas->StretchDraw(Form1->ClientRect,Bitmap1);
    delete Bitmap1;
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::FormResize(TObject *Sender)
    {
    Repaint();
    }
    //---------------------------------------------------------------------------
    c juste pour exemple....

    A+
    on en apprend ts les jour... ;O)
    N'oublions pas le Résolu...ça fait tellement plaisir

  6. #6
    Membre habitué
    Homme Profil pro
    Analyste développeur VB6, SQL, VB.NET, C#
    Inscrit en
    Avril 2003
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste développeur VB6, SQL, VB.NET, C#
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2003
    Messages : 111
    Points : 141
    Points
    141
    Par défaut
    avec cela, ça marche du tonnerre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void __fastcall TFormMain::FormPaint(TObject *Sender) 
    { 
            Canvas->StretchDraw(ClientRect, ImageDeFond->Picture->Graphic); 
            Invalidate();
    } 
    //--------------------------------------------------------------------------- 
    void __fastcall TFormMain::FormResize(TObject *Sender) 
    { 
            Repaint(); 
    }
    merci à tous
    N'oubliez pas le tag .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/02/2009, 17h21
  2. [E-03] Adapter Userform à taille de l'image de fond
    Par allergique dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 26/10/2008, 20h22
  3. Une image de fond qui s'adapte à la taille de son conteneur
    Par gifffftane dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/03/2008, 13h44
  4. Decaler l'image de fond d'un Form
    Par trecks dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 18/03/2007, 10h58
  5. Problème Taille d'image de fond
    Par Odcfrombelgium dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 19/02/2007, 20h31

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