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

C++Builder Discussion :

Probleme avec TList et Assing


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    218
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 218
    Par d�faut Probleme avec TList et Assing
    Bonjour,
    j'ai un Dbgrid , je veux copier les donn�es d'une colonne d'un Dbgrid
    dans un Tlist.Ces donnes sont de type int

    Code c++ : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    TList *pListe=new TList;
    pListe->Assign(DbGPers->Columns[0].Items,laCopy ,pListe) ;

    J'ai essaye ceci sans succ�s (j'ai seulement le premier message d'erreur a la compilation)

    Code c++ : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    pListe->Items=DbGPers->Columns[0].Items;

    Comment faire ?

    Comment utilisez ceci par la suite ?

    J'ai ces messages d'erreur
    [C++ Erreur] FormAnnuaire.cpp(265): E2193 Trop peu de param�tre dans l'appel � '_fastcall TDBGridColumns::GetColumn(int)'
    [C++ Erreur] FormAnnuaire.cpp(265): E2034 Impossible de convertir 'TColumn *' en 'TList *'
    [C++ Erreur] FormAnnuaire.cpp(265): E2342 Mauvaise correspondance de type dans le param�tre 'ListA' ('TList *' d�sir�, 'TColumn *' obtenu)
    merci

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par d�faut
    Comme l'indique le second message d'erreur, les types ne sont pas compatibles (TColumn et TList).

    Que souhaite tu r�cup�rer? Les noms des champs?
    Tu peux utiliser une boucle:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
      TStringList *liste=new TStringList();
      for( int i=0; i< DbGPers->Columns->Count; i++ )
      {
        liste->Add(DbGPers->Columns->Items[i]->FieldName );
      }
      ShowMessage( liste->Text ) ;
      delete liste ;
    Pour r�cup�rer les donn�es contenues dans ton DBGrid, il faut it�rer sur le DataSet (Query, Table):
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      TStringList *liste=new TStringList();
      Query->First() ;
      while( !Query->Eof )
      {
        liste->Add( Query->FieldByName( "NOM_DE_CHAMP" )->AsString) ;
        Query->Next() ;
      }
    // Utilisation de la liste
      delete liste ;

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    218
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 218
    Par d�faut
    Merci de ta r�ponse
    Je pensais pouvoir copier les valeur de la premier colonne de mon dbgrid un comme ceci sans passer par un boucle

    Un peu comme ceci Copie de ligne dans TMemo

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Memo1->Lines->Assing(ComboBox->Items)
    Je me suis inspir� de ton premier exemple pour adapter Assing
    et copier le tout sans passer par un boucle

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    TStringList *liste=new TStringList();
      liste->Assign(DbGPers->Columns->Items->FieldName);
    $

    j'ai cette erreur de compil, as tu une id�e ? Assing doit �tre possible a utiliser mais comment ?

    [C++ Erreur] FormAnnuaire.cpp(263): E2034 Impossible de convertir 'const AnsiString' en 'TPersistent *'
    Avec ton aide pr�cieuse je me suis inspir� de ceci
    je me sert d'un TClientDataSet ,cependant je d�sactive le contr�le DbGPers , le curseur de ma dggrid se d�place et je ne voie pas pourquoi ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    DbGPers->DataSource->DataSet->DisableControls();
      TStringList *listePers=new TStringList();
      DataModule1->CDSPers->First();
      while( !DataModule1->CDSPers->Eof )
      {
        listePers->Add((int) DataModule1->CDSPers->FieldByName( "ID_PERS" )->AsInteger) ;
        DataModule1->CDSPers->Next() ;
      }
    // Utilisation de la liste
     ShowMessage( listePers->Text ) ;
      delete listePers ;
      DbGPers->DataSource->DataSet->EnableControls();
    encore merci pour tout

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    R�ponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum R�seau
    R�ponses: 9
    Dernier message: 30/12/2002, 07h51
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    R�ponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    R�ponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    R�ponses: 4
    Dernier message: 08/06/2002, 23h06

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