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 :

Comment figer les largeurs des colonnes d'un TListView ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre habitué
    Inscrit en
    Juin 2005
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 207
    Points : 161
    Points
    161
    Par défaut Comment figer les largeurs des colonnes d'un TListView ?
    Bonsoir,

    J'aimerais empêcher le redimensionnement d'un ListView...

    Pour cela, j'ai pensé que les propriétés MinWidth et MaxWidth des colonnes serait suffisant, mais cela fixe la largeur sans la figer (la différence, c'est qu'on peut toujours modifier la taille des colonnes même si au relachement du clic de la souris elles retrouvent une largeur fixe)

    Des idées?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    1° solution tu masque les en-têtes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      ListView1.ShowColumnHeaders := False;
    Bon comme ce n'est pas forcément ce que tu recherches
    2° solution:
    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
     
    uses CommCtrl;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      FOldWndProc := ListView1.WindowProc;
      ListView1.WindowProc := LvWndProc;
    end;
     
    procedure TForm1.LvWndProc(var Message: TMessage);
    var
      hdn: ^THDNotify;
    begin
      if Message.Msg = WM_NOTIFY then
        begin
          hdn := Pointer(Message.lParam);
          if (hdn.hdr.code = HDN_BeginTrackW) or (hdn.hdr.code = HDN_BeginTrackA) then
            Message.Result := 1
          else
            FOldWndProc(Message);
        end
      else
        FOldWndProc(Message);
    end;
    @+ Claudius

  3. #3
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Envoyé par MP
    Citation Envoyé par bhf37
    Bonjour.

    Je débute dans les ListView...

    Je viens d'intégrer votre code dans mon appli mais j'ai des messages d'erreur pour la 1ère ligne du FormCreate:
    "Identificateur non déclarer : 'FOldWndProc'" pour FOldWndProc,
    "Pas assez de paramètres originaux" pour ListView1.WindowProc.

    Un petit coup de main me serait utile...
    Il suffit de définir ceci dans la partie interface:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    type
      TForm1 = class(TForm)
        ListView1: TListView;
        procedure FormCreate(Sender: TObject);
        procedure LvWndProc(var Message: TMessage);
      private
        { Déclarations privées }
        FOldWndProc: TWndMethod;
      public
        { Déclarations publiques }
      end;
    @+ Claudius

Discussions similaires

  1. Réponses: 9
    Dernier message: 07/10/2010, 17h49
  2. comment recuperer les entetes des colonnes de tables
    Par coachbob44 dans le forum Interfaces de programmation
    Réponses: 6
    Dernier message: 03/04/2009, 09h44
  3. [JTABLE] Comment changer les noms des colonnes?
    Par uzumaki_naruto dans le forum Composants
    Réponses: 2
    Dernier message: 31/03/2007, 21h57
  4. [TDbGrid] Comment modifier la largeur des colonnes ?
    Par colorid dans le forum Composants VCL
    Réponses: 2
    Dernier message: 18/11/2005, 18h47
  5. Comment fixer les largeurs des colonnes d'un TStrinGrid
    Par marsupilami34 dans le forum Composants VCL
    Réponses: 6
    Dernier message: 24/08/2005, 13h24

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