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

Langage Delphi Discussion :

Le TImage transparent est bien opaque !


Sujet :

Langage Delphi

  1. #1
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut Le TImage transparent est bien opaque !
    Salut,

    J'ai un TImage créé dynamiquement, je le positionne en transparent:=true, puis, suivant les indications de l'aide de mon vénéré delphi 7, je lui fait pointer la propriété Picture vers un TBitmap afin que la fonction de transparence fonctionne... mais ça reste opaque !

    Voici le code:

    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
      listeTraitsSites:=TObjectList.Create;
     
      // pour info:
      //  - listeTraitSites et un TobjectList qui contient autant de TImage qu'on veut
      //  - monBitmap est un attribut privé de ma TMainform (TBitmap)
     
      // ici on est dans le TMainForm.create(), en phase de test...
     
      // creation nouveau TImage
      listeTraitsSites.OwnsObjects:=true;
      listeTraitsSites.add(TImage.create(self));
     
      // instanciation du bitmap (on est en phase de test hein...)
      monBitmap:=TBitmap.create();
     
      // je dessine le bitmap (ça fonctionne bien)
      with monbitmap do
      begin
        width:=100;
        height:=100;
        canvas.pen.width := 2;
        canvas.pen.color := clblack;
        canvas.moveTo(0,0);
        canvas.LineTo(80,10);
        canvas.moveTo(0,0);
        canvas.LineTo(10,80);
      end;
     
      // j'associe le bitmap au TImage (ça fonctionne bien aussi, il s'affiche)
      with TImage(listeTraitssites[0]) do
      begin
        parent:=image9.parent; // permet de récupérer le bon endroit pour bien s'afficher (ça marche)
        left:=10;
        top:=10;
        transparent:=true;
        picture:=TPicture(monBitmap);
        visible:=true;
      end;
    Mais, l'image affichée est opaque, elle cache les objets derrières elle !

    Voici ce que dit l'aide de delphi:

    Description

    *** aide delphi sur propriété Transparent de TImage ***
    ***
    Affectez la valeur true àla propriétéTransparent pour permettre aux objets placés derrière l'objet TImage d'apparaître au travers de l'image.Affectez la valeur false pour que l'arrière-plan de l'image soit opaque.L'affectation de la propriétéTransparent affecte la propriétéTransparent de Picture.

    Remarque*: Transparent n'a d'effet que si la propriétéPicture spécifie un objet TBitmap.
    ***
    *** Fin aide delphi

    Alors, anyone can help me pleeeeaaaase ?

    Merci.

  2. #2
    Membre habitué Avatar de phplive
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 179
    Points : 150
    Points
    150
    Par défaut
    Bsr

    ben faudrait peut-être aider un peu Delphi en lui indiquant quelle est la couleur "transparente" çàd celle qu'il n'affichera pas

    Ex

    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
      // je dessine le bitmap (ça fonctionne bien)
      with monbitmap do
      begin
        width:=100;
        height:=100;
     
        // Définit clFushia comme étant la couleur "transparente" et
        // remplit le canvas avec la couleur "transparente"
        Transparent := True;
        TransparentColor := clFuchsia;
     
        canvas.Brush.Color := TransparentColor;
        canvas.FillRect(Rect(0,0,width,height));
     
        canvas.pen.width := 2;
        canvas.pen.color := clblack;
        canvas.moveTo(0,0);
        canvas.LineTo(80,10);
        canvas.moveTo(0,0);
        canvas.LineTo(10,80);
      end;
    @+
    Php

    D7 Enterprise - XP sp2
    The Truth is Out There

  3. #3
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut
    Citation Envoyé par phplive Voir le message
    Bsr

    ben faudrait peut-être aider un peu Delphi en lui indiquant quelle est la couleur "transparente" çàd celle qu'il n'affichera pas

    Ex

    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
      // je dessine le bitmap (ça fonctionne bien)
      with monbitmap do
      begin
        width:=100;
        height:=100;
     
        // Définit clFushia comme étant la couleur "transparente" et
        // remplit le canvas avec la couleur "transparente"
        Transparent := True;
        TransparentColor := clFuchsia;
     
        canvas.Brush.Color := TransparentColor;
        canvas.FillRect(Rect(0,0,width,height));
     
        canvas.pen.width := 2;
        canvas.pen.color := clblack;
        canvas.moveTo(0,0);
        canvas.LineTo(80,10);
        canvas.moveTo(0,0);
        canvas.LineTo(10,80);
      end;
    merci, ça marche ! Et aucune explication de tout ceci dans l'aide en ligne de mon Delphi 7...

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 11/01/2005, 12h49
  2. [DTD][java]Verifier qu'un doc XML est bien formé
    Par bart64 dans le forum Valider
    Réponses: 3
    Dernier message: 08/01/2005, 14h17
  3. Comment tester qu'un objet String est bien initialisé
    Par Jones dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 17/09/2004, 11h29
  4. Verifier qu'une connexion ado s'est bien déroulé
    Par Hell dans le forum Bases de données
    Réponses: 5
    Dernier message: 22/06/2004, 10h55
  5. Comment savoir si une impression s'est bien déroulé?
    Par Cyrilh7 dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/11/2003, 20h49

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