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 :

TDBGrid et glyphe dans les titres de colonnes [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 638
    Billets dans le blog
    65
    Par défaut TDBGrid et glyphe dans les titres de colonnes
    Objectif : Mettre par exemple une flèche selon l'ordre de tri de la colonne

    Constatation : Une colonne d'une DBGrid a les propriétés Imageindex , ImageLayout (normal puisque dérivée de TCustomDBgrid elle même de TCustomGrid etc...)

    par contre, et c'est là ma question , pas de possibilité de lier ces colonnes à un TImageList (TitleImageList d'un Tdrawgrid par exemple) est-ce en prévision pour la prochaine version (je suis en 0.9.27) ou un "oubli" du concepteur à signaler, corriger ou .....

    quelqu'un a t'il une soluce ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 638
    Billets dans le blog
    65
    Par défaut une solution
    Peut être pas élégante mais efficace !

    j'ai créer une classe dérivée de TDBGrid , l'objectif étant d'accéder au propriétés/méthodes protégées ("protected")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    uses
      LCLIntf, .... DBGrids, Grids;
     
    type
      {dérivée de TDBGrid}
      TMaGrid = Class(TDBGrid);  
     
      { TForm1 }
      TForm1 = class(TForm) 
          Button1: TButton;
          DBGrid1: TDBGrid;  
         ImageList1: TImageList;
    puis au moment de la création de la form j'accède à la propriété protégée en transtypant la grille , de façon a accéder à la propriété TitleImagelist

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      TMagrid(DBgrid1).titleImagelist:=Imagelist1;
    end;
    Ensuite, eh bien , il ne me reste plus qu'a jouer sur la propriété
    ImageIndex du titre de la colonne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      DBGrid1.Columns[0].Title.ImageIndex:=-1;  // pas d'image
      DBGrid1.Columns[0].Title.ImageIndex:= 0;   // image indice 0 
      etc ...
    ce qui donne pour l'objectif préalablement indiqué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    procedure TForm1.DBGrid1TitleClick(Column: TColumn);
    begin
    if Column=nil then Exit;  // ne pas oublié ceci au cas ou l'indicateur (dgindicator=true) est visible
    if Column.Index<0 then exit;
    case DBGrid1.Columns[Column.Index].Title.ImageIndex of
      0 : DBGrid1.Columns[Column.Index].Title.ImageIndex:=1;
      1 : DBGrid1.Columns[Column.Index].Title.ImageIndex:=-1;
      else DBGrid1.Columns[Column.Index].Title.ImageIndex:=0;
    end;
    {Prise en compte des  tris demandés}  
    end;

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

Discussions similaires

  1. Aligner les titres des colonnes dans un datagrid
    Par bonnet85 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 02/04/2008, 16h01
  2. Fixer les titres de colonnes d'une JTable?
    Par bygui dans le forum Composants
    Réponses: 5
    Dernier message: 13/04/2006, 13h54
  3. Réponses: 2
    Dernier message: 21/09/2005, 12h18
  4. DBGrid, comment dessiner dans les titres des colonnes
    Par dleu dans le forum Bases de données
    Réponses: 9
    Dernier message: 04/11/2004, 17h49
  5. [dbGrid]Image dans le titre des colonnes d'un dbGrid
    Par dleu dans le forum Bases de données
    Réponses: 1
    Dernier message: 31/08/2004, 18h01

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