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

Composants VCL Delphi Discussion :

Scroll vertical dans un StringGrid1 qui laisse la première ligne en place


Sujet :

Composants VCL Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2010
    Messages : 104
    Points : 85
    Points
    85
    Par défaut Scroll vertical dans un StringGrid1 qui laisse la première ligne en place
    Bonjour à tous,
    Je navigue dans un StringGrid de 50 lignes grâce au Scroll vertical.
    Je voudrais que lors du scroll vertical ma première ligne (qui comporte mes titres de colonnes ) ne bouge pas.
    Y a-t-il une astuce simple pour faire ça, sans bidouiller avec par exemple un 2ème stringGrid rajouté au dessus du premier et ne comportant que ma ligne fixe ?

    Merci de vos suggestions.

    Jean-Louis

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 859
    Points : 11 307
    Points
    11 307
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    N'y a-t-il pas une propriété FixedRows à mettre à 1, dans ce cas ?
    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
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2010
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    Bonjour,
    N'y a-t-il pas une propriété FixedRows à mettre à 1, dans ce cas ?
    J'avais bien mis FixedRows à 1, mais ça ne marche pas. Tout défile

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 469
    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 469
    Points : 24 905
    Points
    24 905
    Par défaut
    Avez-vous une méthode de dessin manuelle qui parasiterait les FixedRows ?
    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

  5. #5
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2010
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Avez-vous une méthode de dessin manuelle qui parasiterait les FixedRows ?
    Oui. Mais je l'ai enlevé c'est pareil.
    J'ai même supprimé le stringgrid et j'en ai remis sans dessin manuel, mais ça défile encore.

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 064
    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 064
    Points : 41 021
    Points
    41 021
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Le mieux serait peut-être de faire un extrait du programme (forme avec le stringgrid) et nous fournir ce morceau
    Parce que là cela devient vraiment étrange
    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

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 712
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 712
    Points : 13 179
    Points
    13 179
    Par défaut
    Le nombre de lignes de la grille doit toujours être supérieur au nombre de lignes figées. FixedRows peut valoir au maximum RowCount -1 et est éventuellement adapté si le nombre de lignes est réduit (ça se constate même au design).

    Si tu vides la grille (RowCount = 0) avant d'y insérer des données, il faut redéfinir FixedRows après remplissage.

  8. #8
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 429
    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 429
    Points : 5 836
    Points
    5 836
    Par défaut
    salut

    le scrolling ne se ferait il pas sur le panel détenant la grille plutôt que la grille elle même ?
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  9. #9
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2010
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    Le mieux serait peut-être de faire un extrait du programme (forme avec le stringgrid) et nous fournir ce morceau
    Parce que là cela devient vraiment étrange
    C'est effectivement étrange

    Je viens de faire un autre essai.
    J'ai créé un projet avec uniquement un stringGrid et un bouton pour remplir le stringgrid.
    Et j'ai mis le code de mon programme initial pour dessiner manuellement les cellules et ça marche (la première ligne ne bouge plus).
    Il y donc quelque chose dans mon programme qui ne convient pas.
    Je vais donc chercher et je vous tiens au courant.
    Merci
    Jean-Louis

  10. #10
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2010
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    Je viens de trouver pourquoi j'avais ce comportement étrange, mais je n'ai pas l'explication.

    Le dessin manuel des cellules du stringGrid n'en est pas la cause.
    La cause en est la redéfinition de "RowCount" lors de l'effacement du contenu du StringGrid.

    Faites un projet avec un StringGrid et un bouton avec le code suivant et vous verrez ce comportement étrange :
    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
    interface
    
    uses
      Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
      Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        StringGrid1: TStringGrid;
        procedure FormShow(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.Button1Click(Sender: TObject);
    var i,j:integer;
    begin
    
     //Effacement du stringGrid
     With StringGrid1 do begin
      for j :=  1 to RowCount -1 do
        for i := 0 to ColCount - 1 do Cells[i,j] := '';
      RowCount:=1;     // Si vous laissez cette ligne vous avez un défilement de tout le stringrid (1ère ligne fixe comprise)
     end;
    
     // Remplissage du StringGrid
     StringGrid1.RowCount:=50;                    // redéfinition du nombre de ligne 
     for i:= 0 to StringGrid1.ColCount-1 do
       for j:= 0 to StringGrid1.Rowcount-1 do
         StringGrid1.Cells[i,j+1]:=IntToStr(1*i+j);
    end;
    
    procedure TForm1.FormShow(Sender: TObject);
    begin
     with StringGrid1 do begin
      ColCount:=2;
      RowCount:=50;
      FixedCols:=0;
      FixedRows:=1;
      Cells[0,0]:='A';
      Cells[1,0]:='B';
     end;
    end;
    
    end.
    Merci de votre attention
    JLouis

  11. #11
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 712
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 712
    Points : 13 179
    Points
    13 179
    Par défaut
    L'important est de participer. Après, qu'on soit lu est une autre histoire

  12. #12
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 346
    Points : 3 124
    Points
    3 124
    Par défaut


    A+
    Charly

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/03/2020, 13h51
  2. Réponses: 4
    Dernier message: 29/10/2013, 11h38
  3. Réponses: 1
    Dernier message: 16/12/2010, 08h36
  4. scroll vertical dans un wizard
    Par doudoubens dans le forum SWT/JFace
    Réponses: 16
    Dernier message: 12/04/2009, 22h06
  5. scroll vertical dans formulaire
    Par ludobabs dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2008, 14h31

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