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 :

Problème d'ajustement des composants et des colonnes de DBGrid selon la taille de l'écran


Sujet :

Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 415
    Points : 41
    Points
    41
    Par défaut Problème d'ajustement des composants et des colonnes de DBGrid selon la taille de l'écran
    Bonjour à vous !

    Je reviens vers vous concernant l'ajustement des composants en fonction de n'importe quelle taille d'écran.
    Actuellement, j'ai réussi à le faire en suivant vos instructions sur d'anciens forums.
    Cependant, le problème que je rencontre est lié à la taille des colonnes qui doivent être ajustées en fonction de la taille du DBGrid, dont les ancres sont définies avec Anchors en akTop, akLeft, akRight et akBottom cochés.

    PS : j'utilise Delphi 7
    voir la pièce jointe

    salutations
    Images attachées Images attachées  

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 460
    Points : 24 877
    Points
    24 877
    Par défaut
    Tu dois le faire manuellement

    Par exemple pour le Zoom Windows, on peut appliquer ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //------------------------------------------------------------------------------
    procedure TStringGridSLTAssistant.ZoomColumnWidth(AZoomPourcent: Integer);
    var
      I: Integer;
    begin
      for I := 0 to StringGrid.ColCount - 1 do
        StringGrid.ColWidths[I] := Round(StringGrid.ColWidths[I] * AZoomPourcent / 100);
    end;
    Si je le retrouve, j'ai la version TDBGrid
    EDIT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //------------------------------------------------------------------------------
    procedure TDBGridSLTAssistant.ZoomColumnTitleWidth(AZoomPourcent: Integer);
    const
      AUTOSIZE_WIDTH = 64;
    var
      I: Integer;
    begin
      for I := 0 to DBGrid.Columns.Count - 1 do
        with DBGrid.Columns[I] do
          if Width <> AUTOSIZE_WIDTH then
            Width := Round(Width * AZoomPourcent / 100);
    end;

    On pourrait considérer un cas généraliste où toutes les colonnes sont agrandies selon un ratio "New Width / Old Width" par exemple
    Sinon, tu peux lors du OnResize considérer certaines colonnes comme plus importante et uniquement agrandir celle-ci

    Il n'y a pas d'équivalent à TListColumn.AutoSize / Width -1 de la TListView dans la TDBGrid
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 415
    Points : 41
    Points
    41
    Par défaut
    On pourrait considérer un cas généraliste où toutes les colonnes sont agrandies selon un ratio "New Width / Old Width" par exemple
    Sinon, tu peux lors du OnResize considérer certaines colonnes comme plus importante et uniquement agrandir celle-ci

    Il n'y a pas d'équivalent à TListColumn.AutoSize / Width -1 de la TListView dans la TDBGrid[/QUOTE]


    Je vous remercie pour vos réponses intéressantes et votre soutien habituel.
    Cependant, je suis encore confus quant à l'endroit où je dois placer le code, car le TDbGrid ne semble pas avoir l'événement mentionné dans vos conseils.
    Pourriez-vous m'éclairer à ce sujet, s'il vous plaît ?
    Images attachées Images attachées  

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 046
    Points : 40 962
    Points
    40 962
    Billets dans le blog
    62
    Par défaut
    AMHA, dans le onresize de la forme.

    PS. pas besoin de re-citer les réponses entières
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 415
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    AMHA, dans le onresize de la forme.
    j'utilise Delphi7 comme mentionné (il n y pas d'évenement OnResize)

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 460
    Points : 24 877
    Points
    24 877
    Par défaut
    Oui mais tu peux mettre dans DBGrid dans un TPanel en Align alClient, je pense que le TPanel à un event OnResize.
    Et lors du Resize du Panel, tu sais que la DBGrid va suivre pour son redimensionnent, donc tu en profites pour faire l'ajustement des colonnes qui ont vocation de s'agrandir comme le Nom et Description du produit

    Et au pire la TForm doit avoir un OnResize

    Gère au maximum des Align et Anchors, tout le reste suivra, ta fenêtre montrée en Design Time semblent étrangement conçu avec des contrôles qui se superposent.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. [WD17] Ajustement des colonnes par programmation
    Par thierrybatlle dans le forum WinDev
    Réponses: 2
    Dernier message: 25/06/2013, 11h47
  2. Ajustement des colonnes du DBGRID au texte
    Par stfanny31 dans le forum Langage
    Réponses: 7
    Dernier message: 07/05/2012, 08h00
  3. [AC-2003] Ajustement des colonnes formulaire de recherche multi-critères
    Par olivier777 dans le forum IHM
    Réponses: 5
    Dernier message: 07/06/2010, 12h16
  4. [AC-2003] Ajustement des colonnes pour formulaire multi-critères
    Par olivier777 dans le forum IHM
    Réponses: 0
    Dernier message: 06/06/2010, 19h00
  5. ajustement des colonnes d'une table
    Par benja01 dans le forum WinDev
    Réponses: 1
    Dernier message: 29/04/2008, 09h01

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