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

Composants VCL Delphi Discussion :

XE7-VCL : Intégrer un TPngImage dans une cellule de dbGrid


Sujet :

Composants VCL Delphi

  1. #1
    Invité
    Invité(e)
    Par défaut XE7-VCL : Intégrer un TPngImage dans une cellule de dbGrid
    Bonjour,

    j'ai un peu de mal avec le png. J'ai 2 TImages sur ma Form (imACTIF et imINACTIF) et le code suivant dans ma dbGrid

    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
    procedure TfELV.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    var
      aImage: TBitmap;
    begin
      if Column.FieldName = 'imACTIFcalc' then
        with DBGrid1.Canvas do begin
          FillRect(Rect);
         try
            aImage :=  TBitmap.Create;
            if DBGrid1.DataSource.DataSet.FieldByName('xxACTIF').AsBoolean = False
              then aImage.Assign(imINACTIF.Picture.Bitmap)
              else aImage.Assign(imACTIF.Picture.Bitmap);
            Draw(Rect.Left, Rect.Top, aImage);
          finally
            aImage.Free;
          end;
        end;
    end;
    Il fonctionne correctement transparence inclue si les 2 TImages ont pour Picture un TBitmap. Mais si les TImages ont pour Picture un TPngImage, aucune erreur n'apparaît mais pas d'images non plus ... Ce n'est pas dramatique sauf que j'utilise en général du png...
    Merci.
    Dernière modification par Invité ; 08/11/2014 à 16h22.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Oups... J'ai vraiment perdu la main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if DBGrid1.DataSource.DataSet.FieldByName('xxACTIF').AsBoolean = False
              then aImage.Assign(imINACTIF.Picture.Graphic)
              else aImage.Assign(imACTIF.Picture.Graphic);
    Désolé pour le dérangement.

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 20/01/2014, 22h04
  2. focus dans une cellule d'une JTable
    Par coil dans le forum Composants
    Réponses: 5
    Dernier message: 07/07/2010, 17h15
  3. Deplacer le curseur dans une cellule de DBGrid
    Par Sydaze dans le forum Composants VCL
    Réponses: 6
    Dernier message: 07/11/2005, 16h19
  4. Réponses: 3
    Dernier message: 01/12/2003, 13h14
  5. [VBA-E] Fonction sum() dans une cellule
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2002, 10h18

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