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 :

TStringGrid et TFrame


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de oneDev
    Homme Profil pro
    dilettant
    Inscrit en
    Mars 2019
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : dilettant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2019
    Messages : 220
    Par défaut TStringGrid et TFrame
    Bonjour,

    Je travaille sur une application VCL avec Delphi 11.1.

    J'ai une TFrame qui contient un TEdit et un TButton. Cette frame doit ensuite être utilisée dans plusieurs fenêtre.
    Elle prend juste la hauteur du TEdit avec +3 au dessus en en dessous.

    Lorsque je clique sur le bouton je souhaite afficher une TStringGrid.
    Le problème c'est que du coup, elle reste "bloquée" dans la TFrame.
    Je ne sais pas comment faire pour qu'elle apparaissent complétement dans la fenêtre où elle est placée.

    Savez-vous comment faire ?

    Actuellement, je fais simplement :

    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
    constructor TFraShowGrid.Create(AOwner: TComponent);
    begin
      inherited;
      Edit1.Clear;
      Height := Edit1.Top + Edit1.Height + 3;
     
      Grid1.Visible := False;
      Grid1.Top := Edit1.Top + Edit1.Height;
      Grid1.Left := Edit1.Left;
     
      Grid1.Width := Edit1.Width;
    end;
     
    procedure TFraShowGrid.Button1Click(Sender: TObject);
    begin
      Grid1.Visible := not Grid1.Visible;
    end;

  2. #2
    Membre émérite
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Par défaut
    Bonjour,

    Si j'ai bien compris le besoin, il y a la solution de créer la grille dans la fenêtre ( c'est un TForm en fait ? ) et avec le parent du frame faire apparaitre la grille ou pas par le clic du bouton du frame

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 624
    Billets dans le blog
    65
    Par défaut
    C'est, en gros, l'équivalent un ComboBox qui est souhaité ?

    Je changerai la hauteur de la frame dans l'évènement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TFraShowGrid.Button1Click(Sender: TObject);
    begin
      Grid1.Visible := not Grid1.Visible;
      if grid1.visible then Height:= Height+Grid1.Height 
                         else height:=Edit1.Top + Edit1.Height + 3;
    end;
    j'ajouterai aussi certainement un évènement de grille (onselectcell ou ondblclick ) qui réduirait la frame

  4. #4
    Membre éprouvé Avatar de oneDev
    Homme Profil pro
    dilettant
    Inscrit en
    Mars 2019
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : dilettant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2019
    Messages : 220
    Par défaut
    free07, ce serait un peu lourd à gérer car il faudrait créer la Grid dans toutes les fenêtres où j'en aurait besoin.

    SergioMaster
    Le problème d'agrandir la fenêtre est que cela risque de décaler où masquer les compposants dui se trouvent sous la Frame.
    Cela risque de faire des trucs bizarres.

    Je viens de tester en mettant un TMemo juste sous la frame, la Grid apparait en dessous du TMemo.

  5. #5
    Membre émérite
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Par défaut
    Et est ce envisageable de créer une autre frame avec la grille et de gérer les deux frames dans la fiche ? Ce serait moins lourd que de créer une grille dans chaque form

  6. #6
    Membre éprouvé Avatar de oneDev
    Homme Profil pro
    dilettant
    Inscrit en
    Mars 2019
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : dilettant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2019
    Messages : 220
    Par défaut
    Citation Envoyé par free07 Voir le message
    Et est ce envisageable de créer une autre frame avec la grille et de gérer les deux frames dans la fiche ? Ce serait moins lourd que de créer une grille dans chaque form
    Je pensais effectivement créer une frame ou une form juste pour la grid.
    Je vais faire des tests comme ça.

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

Discussions similaires

  1. Composant graphique multiple (ou dérivé d'un TFrame)
    Par Jean Bovet dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/04/2007, 18h57
  2. Delphi 7 et les TStringGrid
    Par Claude HENRY dans le forum Composants VCL
    Réponses: 6
    Dernier message: 28/05/2003, 09h18
  3. [TFrame] Problème de gestion du OnMouseDown avec une Frame
    Par xherault dans le forum Composants VCL
    Réponses: 5
    Dernier message: 23/05/2003, 15h35
  4. Problème avec un TFrame
    Par mixi dans le forum Langage
    Réponses: 4
    Dernier message: 12/09/2002, 13h25
  5. Comment imprimer le contenu d'un TStringGrid
    Par scorpiwolf dans le forum C++Builder
    Réponses: 2
    Dernier message: 19/06/2002, 15h41

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