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

Langage Delphi Discussion :

Rafraîchissement d'un dbgrid


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Consultant informatique
    Inscrit en
    Octobre 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 240
    Points : 103
    Points
    103
    Par défaut Rafraîchissement d'un dbgrid
    Slt,
    J'ai un dbgrid qui pour un affichage plus adapté est modifié dans la position des colonnes.
    Selon le choix de menu, les dispositions de colonnes varient, ce qui implique que je dois chaque fois remettre les positions de colonne à leur emplacement initial avant de répondre au clic du menu.
    Existe-t-il une procédure directe pour le faire ou un enregistrement du positionnement de départ? Sinon comment procéder.
    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut
    bonjour,
    oui il existe une solution pour sauvegarder la position des colonnes du DBGrid:
    1-ajouter à votre Form un CheckListBox(pour sauvegarder par l'ordre les noms et lordre des colonnes dans un fichier).
    2-dans la proriété du DBGrid.ColumnMoved écrivez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CheckListBox1.Items.Move(FromIndex,ToIndex);
    3-créer une procédure qu'on nommée:"FillColumnsInfo":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TForm1.FillColumnsInfo(Grid: TDBGrid);
    var
      c : integer;
      idx : integer;
    begin
      CheckListBox1.Clear;
      for c := 0 to DBGrid1.Columns.Count - 1 do
      begin
        idx := CheckListBox1.Items.AddObject(DbGrid1.Columns[c].Title.Caption, DbGrid1.Columns[c]); //on ajoute les noms des colonnes du DBGrid auCheckListBox1.
        CheckListBox1.Checked[idx] := DbGrid1.Columns[c].Visible;
      end;
    end;
    4-ajouter 2 bouttons;le premier est "SaveColumnsBu" et le second "LoadColumnsBu".
    dans l'événement de "SaveColumnsBu" on lui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.SaveColumnsBuClick(Sender: TObject);
    var
      columnsFile : string;
    begin
      columnsFile := Format('%s_%s_%s',[self.Name, DBGrid1.DataSource.DataSet.Name, DBGrid1.Name]);
      DBGrid1.Columns.SaveToFile(columnsFile);//on sauvagarde l'odre des collones dans un fichiers nommé"Form1_Table1_DBGrid1" pour pouvoir ensuite le charger.
    end;
    dans l'événement de "LoadColumnsBu" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure TForm1.LoadColumnsBuClick(Sender: TObject);
    var
      columnsFile : string;
    begin
      columnsFile := Format('%s_%s_%s',[self.Name, DBGrid1.DataSource.DataSet.Name, DBGrid1.Name]);
      DBGrid1.Columns.LoadFromFile(columnsFile);//on charge l'ordre des colonnes
      FillColumnsInfo(DBGrid1);
    end;
    5-dans l'événement "Oncreate de la form saisis ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm1.FormCreate(Sender: TObject);
    var
      columnsFile : string;
    begin
      DBGrid1.DataSource.DataSet.Open;//on ouvre la table
      columnsFile := Format('%s_%s_%s',[self.Name, DBGrid1.DataSource.DataSet.Name, DBGrid1.Name]);
      DBGrid1.Columns.LoadFromFile(columnsFile);//on charger l'order des colonnes du fichier "Form1_Table1_DBGrid1".
      FillColumnsInfo(DBGrid1);
    end;
    ce code est testé reste à vous de nous le confirmer.bonne chance.

Discussions similaires

  1. Rafraîchissement de la DBGRID
    Par moezben dans le forum Bases de données
    Réponses: 1
    Dernier message: 31/10/2007, 13h42
  2. DBLookupComboBox dans DBGrid
    Par KThrax dans le forum Bases de données
    Réponses: 7
    Dernier message: 24/08/2004, 15h18
  3. Couleur des lignes dans DBGrid
    Par eddie dans le forum C++Builder
    Réponses: 5
    Dernier message: 21/06/2002, 18h15
  4. associer une base de données(access) a un dbgrid
    Par ange1708 dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2002, 12h18
  5. [Kylix] Contrôle DBGrid
    Par KThrax dans le forum EDI
    Réponses: 1
    Dernier message: 10/05/2002, 14h18

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