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 :

Utilisation d'une liste d'images avec un TTabControl


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 740
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 740
    Par défaut Utilisation d'une liste d'images avec un TTabControl
    Bonjour à toutes et tous,

    Dans une de mes fiches, j'ai un TPageControl auquel j'ai attribué un TImageList. Chaque onglet ayant une image différente. Je n'ai pas mis de Caption dans les Pages, et c'est donc les images qui apparaissent. Parfait.
    Dans une autre fiche, j'ai voulu utiliser TTabControl, en effet, les champs ne changent pas en fonction de l'onglet, c'est le filtre de la table sous-jacente qui change en fonction de l'onglet sélectionné. Tout cela marche parfaitement.
    J'ai vu que le composant TTabControl avait une propriété "Images" que l'on pouvait lié à un TImageList. J'ai supposé que le fonctionnement devait être similaire au TPageControl. Hélas, il n'en est rien.

    Le TTabControl n'affiche pas les images du TImagesList associé. Et je ne vois pas comment faire.

    Est-ce que quelqu'un a déjà utilisé cette fonctionnalité et si oui, comment est-il/elle parvenu-e à afficher les images en lieu et place des éléments de la liste Items ?

    Merci d'avance à vous toutes et tous

    JS

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    Salut

    Moi j'essaierais un truc du genre :

    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
    Type
      THackTabControl = class (ComCtrls.TTabControl)
      end;
     
    procedure TForm1.TabsDrawTab(Control: TCustomTabControl;  TabIndex: Integer; const Rect: TRect; Active: Boolean);
    var
      OutRect : TRect;
      P: TTabControl;
      TabText: string;
      ImgIdx : Integer;
    begin
      OutRect:= Rect;
      p :=   (Control as TTabControl) ;
      TabText := THackTabControl(P).Tabs[TabIndex];
      if Active Then
      begin
        Control.Canvas.brush.color := clblue;
        Control.Canvas.FrameRect(rect);
        Control.Canvas.brush.color := clBtnFace;
        Control.Canvas.Font.Color := clred
      end
      else
      begin
        Control.Canvas.Brush.Color := clBtnFace;
        Control.Canvas.fillrect( rect );
        Control.Canvas.Font.Color := clBlack;
      end;
     
      InflateRect (OutRect, -3, -3);
      ImgIdx := THackTabControl(P).GetImageIndex(TabIndex);
      THackTabControl(P).Images.Draw(Control.Canvas, OutRect.Left, OutRect.Top,ImgIdx);
      OutRect.Left := OutRect.Left+THackTabControl(P).Images.Width;
      DrawText (Control.Canvas.Handle, PChar (ExtractFileName (TabText)), Length (ExtractFileName (TabText)),   OutRect, dt_Left or dt_SingleLine or dt_VCenter);
    end;
    PS : le code n'a pas été testé

  3. #3
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 740
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 740
    Par défaut
    Bonjour,

    Merci de ta réponse.
    Le problème c'est que TTabControl n'a pas d'évènement "OnDraw" ou "OnDrawTabs".

    J'ai trouvé mon bonheur dans la JVCL qui possède un TJvclTabControl qui permet d'utiliser des images.

    Encore merci de t'être penché sur mon problème

    JS

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    Salut


    au fait tu avais essayé avec d'autre style que tstab ?

  5. #5
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 740
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 740
    Par défaut
    Oui, j'avais fait tous les ttabcontrol que j'avais sous la main, jusqu'à tomber sur celui de la jvcl.

Discussions similaires

  1. picasso, afficher une liste d'images avec url distant
    Par zugolin dans le forum Android
    Réponses: 2
    Dernier message: 08/10/2017, 14h52
  2. Réponses: 3
    Dernier message: 10/01/2016, 19h04
  3. Problème avec l'utilisation d'une list versus un vector
    Par homeostasie dans le forum Langage
    Réponses: 4
    Dernier message: 02/11/2011, 11h17
  4. Réponses: 0
    Dernier message: 14/11/2010, 14h59
  5. Réponses: 1
    Dernier message: 21/02/2007, 18h17

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