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

Lazarus Pascal Discussion :

Centrer verticalement une image dans un TStringGrid [Lazarus]


Sujet :

Lazarus Pascal

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 035
    Par défaut Centrer verticalement une image dans un TStringGrid
    Bonjour,

    Existe t-il un moyen de centrer verticalement les images dans une stringgrid ? Si oui je n'ai pas trouvé le truc et les images sont collées en haut ( Voir image jointe ).
    Si c'est impossible par programmation une alternative consisterai à les entourer d'un cadre au dimensions des cellules mais je ne sais comment faire.
    Ci-dessous le code utilisé:
    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
     
    { ---- Creation de vignette ---- }
    Procedure TForm1.CreateThumb(Filename:String; NbTh, NbCur:Integer);
    Var
      Img_Picture: TPicture;
      Thumbnail: TJPEGImage;
      H_Max, W_Max:Integer;
      Scale:Double;
      Dir_Thumbs, Th_Name:String;
    begin
      Img_Picture := TPicture.Create;
      Thumbnail := TJPEGImage.Create;
      W_Max:=100;
      H_Max:=100;
      Scale:=1;
      Th_Name:=Set_ThName(Filename);
      Dir_Thumbs:=ExtractFilePath(Filename)+'/thumbs';
     
      If not FileExists(Dir_Thumbs) then mkdir(Dir_Thumbs);
      If FileExists(Th_Name) then exit;
      L_Thumb.Caption:='génération de la vignette: '+IntToStr(NbCur)+' / '+IntToStr(NbTh);
      Application.ProcessMessages;
      try
        Img_Picture.LoadFromFile(Filename);
        Thumbnail.Assign(Img_Picture.Graphic);
     
        If Thumbnail.Width>Thumbnail.Height then begin
          If ThumbNail.Width>W_Max then begin
            Scale:=Thumbnail.Width/W_Max;
          end;
        end
        else begin
          if Thumbnail.Height>H_Max then begin
            Scale:=Thumbnail.Height/H_Max;
          end;
        end;
        Thumbnail.Width:=Thumbnail.Width div round(Scale);
        Thumbnail.Height:=Thumbnail.Height div round(Scale);
        ThumbNail.Canvas.StretchDraw(Rect(0, 0, Thumbnail.Width, Thumbnail.Height), Img_Picture.Graphic);
        Thumbnail.SaveToFile(Th_Name);
      finally
        Img_Picture.Free;
        Thumbnail.Free;
      end;
    End;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    { ---- Remplir les cellules de la grille avec les images ----}
    procedure TForm1.G_Img_ListDrawCell(Sender: TObject; aCol, aRow: Integer;
      aRect: TRect; aState: TGridDrawState);
    Var
      CurrImg:TImage;
    begin
      if (sender as Tstringgrid).Objects[Acol,Arow] = nil then Exit;
      CurrImg := TImage((sender as Tstringgrid).Objects[Acol,Arow]);
    //  (sender as Tstringgrid).Canvas.StretchDraw( aRect, CurrImg.Picture.Graphic);
      (sender as Tstringgrid).Canvas.Draw( aRect.Left,aRect.Top, CurrImg.Picture.Graphic);
    end;
    PS: J'ai viré stretchdraw. Ca remplit bien les cellules mais déforme l'image de manière déplaisante.

    Merci.
    Images attachées Images attachées  

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

Discussions similaires

  1. [CSS 2.1] Centrer verticalement une image dans une liste
    Par demonixis dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 27/04/2011, 10h16
  2. [CSS 3] Comment centrer verticalement une image dans un <li>
    Par pierrot10 dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 23/04/2010, 12h37
  3. centrer verticalement une image
    Par pimpmyride dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 18/11/2007, 11h51
  4. centrer verticalement une image
    Par Invité dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 14/03/2006, 16h02
  5. Centrer verticalement une image dans un div
    Par sovitec dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 20/12/2005, 16h36

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