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 :

Affichage attributs d'un objet via un TStringGrid


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 27
    Par défaut Affichage attributs d'un objet via un TStringGrid
    Salut

    Je suis en train de me demander comment faire pour afficher dans un tableau divers attributs de toute une collection d'objets. (les données affichées ne sont que du String)

    Je n'ai besoin que de les afficher. Pour les modifier, je créarais un formulaire spécifique pour chaque double-clik sur une ligne du tableau.

    J'ai pensé a DBGrid mais ce genre de tableau ne marche t'il qu'avec une base de données? (mes données a moi sont issus d'un fichier .dat et sous forme de collection d'objet)

    Merci du coup de main.

  2. #2
    Membre extrêmement actif
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 219
    Par défaut
    Bonjour,

    regarde du côté du TStringGrid peut-être.

    @++
    Dany

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 27
    Par défaut
    Merci beaucoup, les Tstringgris sont parfaits !

    J'ai cependant 3 autres petites questions :

    A la création du formulaire, j'aimerais , dynamiquement, créés un nombre de colonne et leur intitulé (1ere case de la colonne). Comment faire cela?
    1-En fait mon probleme est de savoir comment récupérer le nom de chaque attribut de mon objets.

    2- autre question, au lieu de récupérer le nom de l'attribut de l'objet, qui n'est pas forcément explicite (CP au lieu de Code Postal par exemple), peut -on spécifier un nom d'alias (une description) de l'attribut ? De cette facon, au lieu de récupérer le nom de l'attribut pour l'inserer en tete de colonne, je récupérerais cet alias qui sera plus explicite.

    3- J'aimerais qu'une action (ouverture d'un nouveau Form) soit réalisale au double click de l'utilisateur sur une des ligne du StringGrid. Comment procéder?


    Merci beaucoup pour votre aide.

  4. #4
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    A la création du formulaire, j'aimerais , dynamiquement, créés un nombre de colonne et leur intitulé (1ere case de la colonne). Comment faire cela?
    1-En fait mon probleme est de savoir comment récupérer le nom de chaque attribut de mon objets.
    Il n'y a pas en Delphi de fonction "NameOf" comme il existe "SizeOf".
    Dommage d'ailleurs.

    2- autre question, au lieu de récupérer le nom de l'attribut de l'objet, qui n'est pas forcément explicite (CP au lieu de Code Postal par exemple), peut -on spécifier un nom d'alias (une description) de l'attribut ? De cette facon, au lieu de récupérer le nom de l'attribut pour l'inserer en tete de colonne, je récupérerais cet alias qui sera plus explicite.
    Pas d'autre solution que d'affecter l'alias à Cells[icol,0]

    3- J'aimerais qu'une action (ouverture d'un nouveau Form) soit réalisale au double click de l'utilisateur sur une des ligne du StringGrid. Comment procéder?
    Il y a l'event OnDblClick du TstringGrid. Mais il faudra implémenter aussi le OnSelectCell pour récupérer la colonne et la ligne qui ne sont pas fournis par le DblClick

  5. #5
    Membre éclairé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Par défaut
    Bonjour

    1 -
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    stringgrid1.ColCount:= le nombre de colonnes ;
    stringgrid1.cells[0,0]:= 'intitulé colonne 0' ;
    stringgrid1.cells[1,0]:= 'intitulé colonne 1' ;
    2- si le fichier de données est correctement structuré, il suffit d'utiliser le code ci-dessus et ensuite de remplir les lignes 1 à n de la grid avec les données

    3 -
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.StringGrid1DblClick(Sender: TObject);
    begin
       form2.showmodal;
    end
    Sans oublier de rajouter unit2 dans la clause uses de unit1
    Mais en principe D6 le propose à la compilation

    Bonne prog

Discussions similaires

  1. Problème affichage attribut objet dans JSP
    Par rodney733 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 31/01/2012, 15h14
  2. [POO] Accéder à un attribut d'un objet via une variable
    Par iLoLo21 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/11/2008, 12h36
  3. Réponses: 5
    Dernier message: 11/05/2006, 19h20
  4. Réponses: 7
    Dernier message: 13/02/2006, 17h13
  5. [POO] Objet en attribut d'un objet
    Par Tchinkatchuk dans le forum Langage
    Réponses: 7
    Dernier message: 06/12/2005, 10h00

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