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 :

QC : TStringGrid1.Assign(TStringGrid2) = "impossible d'affecter TStringGrid à TStringGrid"


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Direction financière et formateur en gestion et contrôle de gestion
    Inscrit en
    Mai 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Direction financière et formateur en gestion et contrôle de gestion
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2003
    Messages : 222
    Par défaut QC : TStringGrid1.Assign(TStringGrid2) = "impossible d'affecter TStringGrid à TStringGrid"
    Bonjour à tous,
    Je sens que je vais poser une question "con" (QC), mais malgré des recherches, je n'ai rien trouvé.

    Je souhaite simplement recopier une StringGrid dans une autre StringGrid

    Je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var
        TmpGrid2 : TStringGrid;
    begin
        TmpGrid2:= TStringGrid.Create(Self);
        TmpGrid2.Assign(Grid1);
    Et je me prends l'erreur "impossible d'affecter TStringGrid à TStringGrid"
    Heuuu dans l'aide Assign "Copies the contents of another similar object" ???
    Qu'est ce que je fais de mal ?
    Merci de vos éclaircissements.

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    il n'est pas prévu de cloner les composants sous VCL

    mais je soupçonne un mauvais usage dans cette question

    deux pistes

    1) le code que tu utilises pour remplir la première grille peut être utilisé pour remplir la seconde

    2) TDrawGrid permet de créer une TStringGrid virtuelle, et tu peux très bien avoir deux DrawGrid qui pointent sur les mêmes données internes...il doit même être possible de reproduire la TStringGrid dans une DrawGrid, ce qui évite de copier les données
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre éclairé

    Homme Profil pro
    Direction financière et formateur en gestion et contrôle de gestion
    Inscrit en
    Mai 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Direction financière et formateur en gestion et contrôle de gestion
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2003
    Messages : 222
    Par défaut
    Hmmm
    il n'est pas prévu de cloner les composants sous VCL
    Pourtant avec des StringList, ça fonctionne bien ...


    L'idée n'est pas d'afficher, je n'ai besoin que d'affecter le contenu d'une grille dans une autre pour y rajouter des infos et renvoyer vers un fichier csv, c'est tout.
    le code que tu utilises pour remplir la première grille peut être utilisé pour remplir la seconde
    Du coup, c'est exactement ça, mais ça plante.
    Je pensait recopier toute la grille 1 dans la 2 d'un seul coup par assign sans passer par la recopie ligne à ligne.

  4. #4
    Membre chevronné Avatar de blonde
    Femme Profil pro
    Développeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 278
    Par défaut
    Citation Envoyé par patrice@ Voir le message
    Hmmm
    Pourtant avec des StringList, ça fonctionne bien ...
    C'est bien ce que dit Paul. VCL : le V c'est pour Visual si je ne m'abuse. Un StringList, ce n'est pas un composant visuel. La StringGrid oui.

    Citation Envoyé par patrice@ Voir le message
    L'idée n'est pas d'afficher, je n'ai besoin que d'affecter le contenu d'une grille dans une autre pour y rajouter des infos et renvoyer vers un fichier csv, c'est tout.

    Du coup, c'est exactement ça, mais ça plante.
    Je pensait recopier toute la grille 1 dans la 2 d'un seul coup par assign sans passer par la recopie ligne à ligne.
    Oui, une recopie ligne à ligne dans ce cas.
    Mais peut-être as-tu déjà un jeu de données (voire un objet) qui s'affiche dans ta première StringGrid ? Et que tu peux alors afficher dans la 2ème en utilisant la même routine (ou méthode de ton objet) ?

  5. #5
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    de plus, utiliser un TStringGrid visuelle pour simplement produire un CSV (non visuel) ne me semble pas être une bonne idée

    si demain ce code doit fonctionner sous FMX, sous Android, sur un serveur Web...la StringGrid sera un boulet que tu traînes alors que sa fonction première n'est pas de produire des CSV
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 089
    Par défaut
    Un TClientDataSet pour sa souplesse serait plus adéquat pour servir de réceptacle les données en entrée, les données complémentaires et faire un export CSV : TDataSetSliteHelper.ExportToCSV
    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

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

Discussions similaires

  1. impossible d'affecter une valeur a une cellule
    Par gronaze dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/12/2008, 20h09
  2. Impossible d'affecter TADOQuery a TADOQuery
    Par lejert dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/04/2007, 15h20
  3. [VB.NET]Impossible d'affecter un datasource au combobox !
    Par BalBalNet dans le forum Windows Forms
    Réponses: 11
    Dernier message: 03/11/2006, 10h01
  4. impossible d'affecter une valeur à un objet
    Par Dafbau dans le forum Access
    Réponses: 2
    Dernier message: 22/09/2006, 10h48
  5. Impossible d'affecter un événement
    Par Costello dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/08/2005, 16h18

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