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 :

Affecter un Timage et effacer son contenu


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut Affecter un Timage et effacer son contenu
    J'ai beau parcouru les FAQ mais j'ai pas trouvé la solution
    Il s'agit en fait d'affecter Image1 à Image2.
    J'ai essayé mais cela génère une erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Graphics::TBitmap *FormImage = Form1->Image1->Picture->Bitmap;
      try
      {
        Clipboard()->Assign(FormImage);
        Form1->Image2->Picture->Assign(Clipboard());
      }
      __finally
      {
        delete FormImage;
      }
    J'ai voulu aussi effacé Image1 après mais ma technique est nulle selon d'autres développeurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form1->Image1->Canvas->FillRect(Rect(Form1->Image1->Top, Form1->Image1->Left, Form1->Image1->Width, Form1->Image1->Height));
    SOS !!!
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Par défaut
    Salut,

    pourquoi ne fais-tu pas simplement:

    Image2->Picture = Image1->Picture;

    Il me semble que c'est ce que tu cherches à faire... J'espère avoir bien compris.

  3. #3
    Membre Expert

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Si les dimensions du bitmap de destination ne doivent pas être modifiées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image2->Picture->Bitmap->Canvas->Draw(0,0, Image1->Picture->Bitmap);
    Voir également TCanvas::CopyRect

    Autres solutions possibles pour une copie au sens stricte, les dimensions du bitmap de destination deviendront identiques à celles du bitmap source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image2->Picture->Bitmap->Assign(Image1->Picture->Bitmap);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image2->Picture->Assign(Image1->Picture);
    A plus !

  4. #4
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut Merci à tous
    J'ai suivi vos conseils swissbaboon et henderson.

    Et ça marche!

    Image2->Picture = Image1->Picture; suffisait

    Et toi henderson, tu m'as donné d'autres astuces que j'ai utilisés pour d'autres cas. Merci!

    C'EST DONC RESOLU !!!
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 71
    Par défaut
    Bonjour

    Picture étant un pointeur, j'ai peur qu'avec ça tu ne fasses que copier le pointeur Image1->Picture. Mais cela n'affecte pas le graphique à Image2. Tu as un seul graphique pour 2 objets TImage : source potentielle de problèmes.
    Pour éviter cela il faut utiliser Assign.

  6. #6
    Membre Expert

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Image2->Picture = Image1->Picture
    Il y a un risque de plantage à la fermeture du programme car deux objets (TImage*) vont chercher à détruire le même objet (TPicture*).

    A plus !

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

Discussions similaires

  1. Effacer un répertoire et son contenu
    Par helkøwsky dans le forum Langage
    Réponses: 4
    Dernier message: 15/07/2010, 22h22
  2. effacer le contenu du composant Timage
    Par kroma23 dans le forum Débuter
    Réponses: 2
    Dernier message: 10/12/2008, 10h26
  3. Réponses: 1
    Dernier message: 02/07/2007, 08h44
  4. effacer un fichier ou son contenu
    Par yvesall dans le forum C
    Réponses: 16
    Dernier message: 09/05/2007, 21h04
  5. Ecrire dans un fichier sans effacer son ancien contenu.
    Par Mysti¢ dans le forum Général Python
    Réponses: 4
    Dernier message: 03/11/2006, 14h18

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