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 :

StringGrid (Encore...) fixedrow et 1ere ligne


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Par défaut StringGrid (Encore...) fixedrow et 1ere ligne
    bonjour, j'ai fait ca : (grace à la FAQ de ce superbe site )
    Mais et oui il y a un mais
    lors de l'affichage il me mets bien les en tete dans les fixedrows mais aussi dans la premiere ligne
    c'est genant....
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    Procedure TF_RecCLient.GrilleAffiche;
     var
      ligne, colonne, i: Integer;
      MaxWidth, //Largeur maximale de la colonne
      MinWidth, //Largeur minimale de la colonne
      CurrentWidth: integer; //Largeur actuelle
      FieldSize: integer; //Taille du champ
    begin
    MyStringGrid.Visible := true;
    with DM.IBQuery  do
      begin
      Open;  // ouvre la requete
      MyStringGrid.RowCount := 2; //2 lignes
      MyStringGrid.ColCount := FieldCount; // autant de colonnes que d'enregistrements
      { Remplissage des entêtes }
      for colonne := 0 to MyStringGrid.ColCount - 1 do
      MyStringGrid.Cells[colonne, 0] := Fields[colonne].DisplayName;
      { Données }
      First;
      ligne := 1;  //1ere ligne
      while not Eof do
      begin
        MyStringGrid.RowCount := MyStringGrid.RowCount + 1;
        for colonne := 0 to MyStringGrid.ColCount-1 do
          MyStringGrid.Cells[colonne, ligne] := Fields[colonne].AsString;
        Next;
        Inc(ligne);
        //if not Eof then
      end; //while
    end; //whith
    with MyStringGrid do
     begin
     for colonne := 0 to MyStringGrid.ColCount-1 do
       begin
       MyStringGrid.Row := 0;
       MaxWidth := Canvas.TextWidth(MyStringGrid.Cells[colonne, 0]) + 5;
       MinWidth := 0;
       ligne := 0;
       while ligne < MyStringGrid.RowCount  do
         begin
         //Déterminer la largeur en pixels du contenu de l'enregistrement lu
          FieldSize := Canvas.TextWidth(MyStringGrid.Cells[colonne,ligne])+5;
          //Réajuster la largeur maximale ?
          if MaxWidth < FieldSize then
          MaxWidth := FieldSize;
          //Réajuster la largeur minimale ?
          if MinWidth > FieldSize then
          MinWidth := FieldSize;
          inc(ligne)
       end; //while
        //Largeur de la colonne cliquée
       CurrentWidth := MyStringGrid.ColWidths[Colonne];
       if CurrentWidth <> MaxWidth then CurrentWidth := MaxWidth;
       if CurrentWidth < MinWidth then  CurrentWidth := MinWidth;
     //Affectation de la nouvelle largeur à la colonne
       ColWidths[colonne] := CurrentWidth;
       end; // for
     end; //with
     close;
    end; // procedure
    Si quelq'un à une pitie idée... parce que moi

    PS : j'ai essayé : +

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Un datasource + un DbGrid et ca fait exactement la même chose que toi

    Faut juste implémenter la partie de resize des colonnes dans un des événements de la grids (OnDrawDataCell)

    En plus je te dis pas le temps que ca va mettre dès que tu vas commencer à avoir beaucoups d'enregistrement dans ta base de données.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Ha oui... DBGrid recommendé là...

    Bon courage

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Par défaut
    ok merci mais j'ai du mal avec DataSource et DBGrid
    Mais je vais m'y mettre c'etait plus par féneantise

    Merci pour tout en tout cas
    Allez hop

    Je passe le tout en résolu...

  5. #5
    Membre émérite
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Par défaut
    Citation Envoyé par BigNoze
    ok merci mais j'ai du mal avec DataSource et DBGrid
    Mais je vais m'y mettre c'etait plus par féneantise
    Nous aussi c'est par fainéantise qu'on utilise le DBGrid !!!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/06/2008, 16h49
  2. Réponses: 8
    Dernier message: 18/11/2006, 12h04
  3. lecture 1ere ligne
    Par parannabell dans le forum Langage
    Réponses: 1
    Dernier message: 04/09/2006, 18h08
  4. Réponses: 5
    Dernier message: 24/10/2005, 19h03
  5. Renommer le titre de colonnes par la 1ere ligne
    Par Tche55 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/02/2004, 12h07

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