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

Bases de données Delphi Discussion :

Pb de charset et taille colonne dbgrid


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 63
    Points : 40
    Points
    40
    Par défaut Pb de charset et taille colonne dbgrid
    Pfff,

    J'ai cherché mais en vain.. alors je m'en remet a vous

    Version de delphi : 5

    1) Avec certains format de base de données les é, è et autres accents circonflexes s'affichent mal dans un dbgrid. J'ai des signes ésotériques à la palce.

    2) Comment ajuster les colonnes d'un dbgrid au contenu. Comme mes champs sont de taille fixe la largeur d'une colonne prend la valeur maximale du champ et pas celle du contenu réel.

    3) Est-ce que vous connaissez un soft (libre de pref) permettant de convertir une base en plusieurs autres formats.

    Merci beaucoup

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    1) Il faut regarder du coté de l'encodage des données dans la bases
    2) Il suffit de définir genre 2 ou 3 pixel par caractères et de le multiplier par le Length de la données

  3. #3
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Salut;

    1. on a déjà répondu!
    2. un code tout prêt à l'emploi, sans garantie, en plus il n'est pas à moi :

    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
    procedure TForm1.DBGrid1DblClick(Sender: TObject);
    begin
      case RadioGroup1.ItemIndex of
        0: ResizeAllColumns(Sender as TDbGrid);
        1: ResizeColumn(Sender as TDbGrid);
      end;
    end;
    procedure TForm1.ResizeColumn(Grid: TDbGrid);
    var
      MaxWidth, //Largeur maximale de la colonne
      MinWidth, //Largeur minimale de la colonne
      CurrentWidth: integer; //Largeur actuelle
      FieldSize: integer; //Taille du champ d'après son contenu
      DS: TDataSet;
      BookMark: TBookmark;
    begin
     
      //Pour alléger l'écriture !...
      DS := Grid.DataSource.DataSet;
      with Grid do
      begin
        //Mémoriser la ligne actuellement sélectionnée
        BookMark := DS.GetBookmark;
        //Pour ne pas voir toutes les lignes défiler
        Ds.DisableControls;
        //Parcours de toutes les lignes de l'ensemble de données
        DS.First;
        MaxWidth := Canvas.TextWidth(Columns[SelectedIndex].Title.Caption) + 5;
        MinWidth := 0;
        while not DS.Eof do
        begin
          //Déterminer la largeur en pixels du contenu de l'enregistrement lu
          FieldSize :=
            Canvas.TextWidth(DS.FieldByName(SelectedField.FieldName).AsString) + 5;
          //Réajuster la largeur maximale ?
          if MaxWidth < FieldSize then
            MaxWidth := FieldSize;
          //Réajuster la largeur minimale ?
          if MinWidth > FieldSize then
            MinWidth := FieldSize;
          DS.Next;
        end;
        //Largeur de la colonne cliquée
        CurrentWidth := Columns[SelectedIndex].Width;
        if CurrentWidth <> MaxWidth then
          CurrentWidth := MaxWidth;
        if CurrentWidth < MinWidth then
          CurrentWidth := MinWidth;
        //Affectation de la nouvelle largeur à la colonne
        Columns[SelectedIndex].Width := CurrentWidth;
        //repositionner le curseur de l'ensemble de données
        DS.GotoBookmark(BookMark);
        DS.FreeBookmark(BookMark);
        //Rétablir l'affichage du TDbGrid
        DS.EnableControls;
      end;
    end;
    3. DataPump de Delphi.

    Bonne chance
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    Ok merci pour tout.

    Miaitenant ca roule...

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

Discussions similaires

  1. réglage largeurs colonnes DBGRID
    Par socooooool dans le forum Delphi
    Réponses: 2
    Dernier message: 06/07/2006, 12h33
  2. [D6] Épaisseur séparateur colonne DBGrid
    Par Lung dans le forum Delphi
    Réponses: 9
    Dernier message: 15/06/2006, 15h15
  3. Tri sur colonne DBgrid lié à une TTable
    Par Oluha dans le forum Bases de données
    Réponses: 2
    Dernier message: 02/02/2006, 13h42
  4. Problème avec redimentionnement colonne dbgrid
    Par Oluha dans le forum Bases de données
    Réponses: 1
    Dernier message: 10/10/2005, 11h19
  5. [SWING][JTable] Taille colonnes
    Par Antunes dans le forum Composants
    Réponses: 4
    Dernier message: 28/06/2004, 13h52

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