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

Delphi Discussion :

Largeur de colonnes StringGrid


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 30
    Par défaut Largeur de colonnes StringGrid
    Bonjour,
    Je voudrais savoir comment je peux faire pour que mon StringGrid composé de 6 colonnes prennent la totalité de la largeur d'écran?
    http://prntscr.com/7678df
    Comme vous pouvez le voir sur le lien de l'image, j'ai une 7ème colonne qui prend de la place pour rien et réduit donc la largeur des autres.
    Merci,

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 937
    Billets dans le blog
    6
    Par défaut
    Il faut fixer le nombre de colonnes à 6 (ColCount :=6) et pour que ces 6 colonnes utilisent la largeur, autant la fixer comme suit : ColWidth := Parent.ClientWidth div 6
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    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
    Bonjour,

    déjà il faudrait savoir de quelle version de Delphi il s'agit et si XE s'il s'agit de VCL ou FMX.

    Si je regarde l'image écran j'ai envie de dire que c'est une grille FMX ? et si oui sur quel device(s) est-ce sensé être affiché ?

    Tourlourou propose une version simple VCL , je rajouterai qu'il faut ôter la largeur de la scrollbar verticale et des cadres de grille et largeur de séparation de colonnes, pas la peine d'avoir un scrollbar horizontal à cause du calcul
    malheureusement la version FMX d'une grille n'a pas la propriété colwidth

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    // version FMX testé avec 2 colonnes
    procedure TForm3.FormResize(Sender: TObject);
    var
      i: Integer;
     colwidth : integer;
    begin
    //colwidth:=(clientwidth-21) div grd.Columncount;  // (21 environ = largeur scrollbar verticale (18) + 3 traits verticaux = columncount+1 )
    colwidth:=(round(grd.width)-21) div grd.Columncount; // prend en compte les marges
    for i := 0 to grd.ColumnCount-1 do
      begin
        grd.Columns[i].Width:=colwidth;
      end;
    end;
    reste que ce 21 est trop "constant", ici pour windows8, il faudrait en faire un calcul plus précis qui doit dépendre des plateformes pour ce qui est de la scrollbar verticale et de la propriété Options.ColLines pour les ligne verticales sans parler des marges (utilisation de grd.width à la place de clientwidth) et du style appliqué ( scrollbarstyle.vtrack.width ou miniscrollbarstyle.vtrack.width)

  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

    pour récupérer la taille du verticale scrollbar en pixel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetSystemMetrics(SM_CXVSCROLL)
    pour la largeur des bordures
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetSystemMetrics(SM_CXBORDER);
    auquel il ne faut pas oublié de soustraire aussi la taille de la colonne "indicator" si
    tu as positionné dgindicator dans les options de ton stringGrid

  5. #5
    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
    Re,
    Restons pointus, les quelques messages de Sky14b ont surtout été à propos d'application Androïd or GetSystemMetrics est une fonction Windows (sauf erreur de ma part)

  6. #6
    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
    bonjour,

    effectivement ma réponse est pour l'os Windows je suppose qu'il doit exister le pendant pour iPhone et/ou Android

Discussions similaires

  1. Ajuster la largeur des colonnes d'un stringgrid
    Par codial dans le forum Composants VCL
    Réponses: 5
    Dernier message: 18/04/2008, 08h55
  2. forcer largeur de colonne qd URL chargee
    Par Batou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/08/2005, 10h38
  3. Fixer la largeur des colonnes d'une CListCtrl
    Par Depteam1 dans le forum MFC
    Réponses: 4
    Dernier message: 28/06/2005, 15h46
  4. Largeur de colonne d'une ListView
    Par deaqu1 dans le forum IHM
    Réponses: 7
    Dernier message: 07/06/2005, 19h45
  5. [C#] Largeur de colonne et de ligne dans un DataGrid
    Par pc152 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/08/2004, 14h09

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