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 :

difficultés pour insérer et utiliser un tableau


Sujet :

Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Par défaut difficultés pour insérer et utiliser un tableau
    Bonjour !

    Je voudrais insérer un tableau (2 lignes et 30 colonnes) que l'utilisateur remplirait en partie (en fait il remplira la 2ème ligne, la 1ère étant remplie par moi).
    Je souhaiterais ensuite utiliser les données entrées dans chaque case de ce tableau.

    1er problème: je ne trouve pas de composant "tableau"... le Plus proche que j'ai trouvé c'est TF1Book mais je n'arrive pas vraiment à en faire ce que je veux.

    2ème problème: ben du coup je ne sais pas récupérer els données de chaque case! Comment faire??

    Je vous remercie de votre aide!

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Par défaut
    Bonjour,

    Je ne comprend pas trop. le TStringGrid ne vous convient pas ? Il est standard en delphi.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Par défaut Tsringgrid
    Je n'arrive pas à le remplir moi-même et je n'arrive pas à le faire remplir par l'utilisateur! Tout ce que j'arrive à faire avec une TSringGrid c'est la placer, et définir le nb de colonnes et de lignes!!

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Par défaut
    ah, je viens de trouver comment utiliser els données d'une case: stringgrid.cells[x,y]

    Par contre je n'arrive toujours pas à la faire remplir par l'utilisateur... Pouriez-vous m'aider?

  5. #5
    Membre émérite
    Avatar de denokan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 434
    Par défaut


    dans les propriétés de TStringGrid, dans Options, tu trouveras goEditing que tu dois mettre sur True

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Par défaut
    ah, p...n c'est trop con! Merci beaucoup!!!!

    Je crois que mon problème est résolu!

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Par défaut
    si, une dernière question: pourquoi y a-t-il des cases grises non éditables et des blanches éditables?
    peut-on enlever els grises?

    merci!

  8. #8
    Membre confirmé
    Profil pro
    Ingenieur developpement
    Inscrit en
    Septembre 2002
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingenieur developpement

    Informations forums :
    Inscription : Septembre 2002
    Messages : 175
    Par défaut
    Bonjour,

    les cases grises non éditables correspondent aux entêtes de colonnes et de lignes. Pour supprimer les entêtes de colonnes tu dois mettre la propriété fixedRows à 0, et pour les entêtes de lignes, c'est fixedCols à 0 aussi.

    Attention, si tu met 1 ligne d'entêtes de colonnes, rowCount ne peut être inférieur à 2. En gros, on ne peut pas n'afficher que les entêtes de ligne/colonne.

    Plus d'infos dans l'aide de delphi.

    Bon courage

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Par défaut
    décidémment....

    l'aide de delphi ne me donne rien (sinon je serai pas venue! ;p )... Puis-je remplir ma grille moi-même sans passer par le code?

  10. #10
    Membre émérite
    Avatar de denokan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 434
    Par défaut
    tu devrai peut-être t'intéresser un peu aux différents tutoriels disponibles ici http://delphi.developpez.com/cours/, voire aussi la FAQ, tu y trouveras beaucoup d'informations utiles

    bonne lecture

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Par défaut
    Ca c'est pas très cool de me renvoyer ailleurs parce que j'ai déjà fait le tour de laide de delphi et j'ai lancé plein de recherches sur google. J'ai vraiment rien trouvé :'(

    Personne ne sait comment écrire dans un stringgrid et comment le personnaliser?...

  12. #12
    Membre chevronné Avatar de Bejaia-In
    Inscrit en
    Avril 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 365
    Par défaut
    Aide-toi... les autres t'aiderons.
    voici ou tu trouveras réponses à tes questions :

    http://delphi.developpez.com/faq/?page=stringgrid

  13. #13
    Membre émérite
    Avatar de denokan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 434
    Par défaut
    ne va surtout pas croire qu'on ne veux pas t'aider... seulement si tu prend la peine de lire un tuto, voire te procurer un bouquin, qui traite des composants delphi et del leurs principales fonctionnalités, tu abordera ton développement en connaissant clairement les possibilités qui te sont disponibles, tu travaillera plus vite et mieux . alors qu'en venant demander ici comment réaliser telle ou telle tâche sans connaître les bases, tu risques de te retrouver dans une impasse et de devoir changer ta méthode de travail.

    il y a des sujet documentés dans les cours, les bouquins que tu pourra trouver dans le commerce, l'aide de delphi, et les connaître ne pourra que t'être utile et pourra même souvent t'ouvrir de nouveaux horizons.

    personne ne souhaite te voir quitter le forum, mais pour appréhender un langage correctement, tu dois lire un cours, c'est tout. il n'existe pas de meilleur moyen, et moi-même je suis le conseil que je te donne.

    voilà mon avis, libre à toi de le suivre

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Par défaut
    en fait, des cours, j'en ai pris, mais ya longtemps. Alors tout ne me revient pas. Par contre j'ai téléchargé le tutoriel de Didier Maillet dont j'ai trouvé el lien sur developpez-net. Soit disant c'est un tuto complet. Il est super, mais je n'y ai pas trouvé la réponse à ma question. Ni ailleurs, d'ailleurs. Je ne suis donc pas contre les cours et je ne me vois pas poser une question à chacun de mes problème (c'est plus rapide de chercher dans des tuto ou des bouquins que d'attendre une réponse d'un forum ;p ) mais là, je vous assure, je désespérais!

    d'ailleurs, le lien qui m'a été donné plus haut au sujet des stringgrid sur developpez.net, je l'ai lu 10 fois, et je n'ai toujours pas ma réponse!

    Mais bon, je me suis résignée à remplir mo tableau en paçant par le code: stringmachin.cells[x,y]:='montexte'....

    Merci quand même!

  15. #15
    Membre émérite
    Avatar de denokan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 434
    Par défaut
    Citation Envoyé par rorox
    Mais bon, je me suis résignée à remplir mo tableau en paçant par le code: stringmachin.cells[x,y]:='montexte'....
    Les réponses qui t'ont étées fournies ne répondent pas à ton attente ?

  16. #16
    Membre émérite Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Par défaut
    Bonjour!

    Mon avis est qu'un bon programmeur n'est pas celui qui sait tout mais est celui qui sait où chercher les réponses.

    Quand un copain (vous êtes tous des copain sur ce forum ) me demande de faire F1 ou d'aller voir la FAQ, c'est qu'il sait (ou croit fortement) que la réponse y est et que j'aurais dû aller voir en premier. Même si ces mêmes copains on l'air un peu bêtes dans leurs réponses, ça reste une pratique didactique : la prochaine fois, j'irai voir en premier .

    Mais savoir où chercher n'est pas tout. Il faut aussi savoir interpréter ce que l'on trouve. Je connaissais la réponse à ta première question (Cells[]) mais je voulais quand même savoir ce que l'aide de Delphi avait à dire (désolé, mon Delphi 7 est en anglais) :

    The string grid component is a descendant of TDrawGrid that adds specialized functionality to simplify the display of strings. The Cells property lists the strings for each cell in the grid; the Objects property lists objects associated with each string. All the strings and associated objects for a particular column or row can be accessed through the Cols or Rows property.
    Évidemment, Delphi n'a pas explicitement dit "pour changer une cellule tu dois utiliser la propriété Cells qui est un tableau à 2 dimentions Colonnes par Lignes" mais si tu lis attentivement ce que j'ai souligné dans le texte, il m'apparaît clair que c'est la propriété Cells qui régit le tout.

    Tu n'est pas certain ? Vérifie!

    1- Va voir dans la description de la classe TStringGrid la propriété Cells et tu vas trouver :

    Use Cells to access the string within a particular cell.
    2- Tu n'es toujours pas convaincu ? Démarre un nouveau projet, place une grille vide sur la fiche principale et joue dans le code. C'est fou ce que les listes déroulantes et hints de développement peuvent apporter comme informations!

    Pour ce qui est de ta question "peut-on remplir une grille en design time", je n'ai pas la réponse. J'ai chercher dans l'aide sans résultat et j'ai lancé une recherche sur google ("TStringGrid insert at design time") qui ne m'a retourné qu'une liste de composants tiers.

    Toutefois, je sais que plusieurs autre grilles offrent cette possibilité. Perso, j'utilise depuis un bon moment TStringAlignGrid et ça fonctionne bien (quoique j'ai l'habitude de remplir mes grilles directement dans le code, je trouve ça plus simple à suivre lors du débuggage). Tu peux télécharger à l'adresse suivante : http://www.hoerstemeier.com/grid.htm. Attention toutefois! L'installation est un peu ardue et la grille ne fonctionne pas sur toutes les versions de Delphi.

    Bon dev!

  17. #17
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Par défaut
    Merci tout le monde!

    Si je résume bien, il n'y a finalement pas moyen de remplir la grille moi-même sans passer par le code. Si, je peux installer un autre composant, mais alors autant passer par le code, ça ira plus vite!

    Bon, ben je me résigne!

    Merci à tous!

    Rorox

  18. #18
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Par défaut
    Bonjour,

    je serais toi, je suivrais le conseil de slimjoe : la TStringAlignGrid est une superbe évolution gratuite de la TStringGrid (alignement, tri, couleurs et autres)

  19. #19
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Par défaut
    Mille excuses ! Tu peux passer par l'interface pour remplir des lignes dans ta StringGrid, en faisant :

    1. tu positionnes une ListBox sur ta Form
    2. tu saisies toutes tes lignes dans la propriété Items
    3. tu affectes les lignes de la ListBox dans ta StringGrid :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StringGrid1.Rows[n]:=ListBox1.Items;
    avec n = le numéro de la ligne à remplir.

    Ainsi, toutes les cellules de la ligne n seront remplies avec les valeurs de la ListBox (ça commence forcément à la colonne 0 et ça finit au numéro de colonne égal au nombre d'items-1)
    Ca devrait aussi fonctionner avec la propriété StringList1.Cols[n] pour insérer des données en colonne...

    [EDIT] Ca fonctionne aussi avec Cols.

    Aucun contrôle n'est effectué si le nombre de lignes dans la ListBox est supérieur au nombre de lignes/colonnes de la StringGrid. Mais ça ne génère pas d'erreur non plus, alors...

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/01/2008, 10h37
  2. Utiliser un tableau de résultat pour faire une jointure
    Par Xavier1979 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/06/2007, 13h27
  3. Utiliser mon tableau pour copier des fichiers
    Par Paloma dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 31/10/2006, 18h38
  4. Difficulté pour utiliser progressBar
    Par iam dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/06/2006, 13h47
  5. [JNI] Difficultés pour utiliser une DLL
    Par etiennegaloup dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 15/08/2005, 21h29

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