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 :

[delphi7][composant] utilisation d'une TStringList


Sujet :

Composants VCL Delphi

Vue hybride

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 50
    Par défaut [delphi7][composant] utilisation d'une TStringList
    Bonjour,

    Je débute dans les composants et j'ai donc des problèmes.

    Mon composant a besoin d'une TStringList comme propriété publiée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private
        goChampsFirebird : TStringList;
        ...
    published
        property ChampsFirebird : TStringList read GetChampsFirebird write SetChampsFirebird;
    dans mon constructeur j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    goChampsFirebird := TStringList.Create;
    et dans mon destructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FreeAndNil(goChampsFirebird);
    Mon composant compile correctement mais quand je veux l'utiliser, j'ai plein d'erreur de l'IDE (rtl70, vcl70). En fait j'arrive à saisir les valeur dans ma liste mais quand je veux y retourner c'est là que ca plante. Je n'arrive pas à voir pourquoi. En plus il me semble que les valeurs que je rentre dedans ne sont pas sauvegardées.

    Ai-je omis quelque chose dans mon composant ?

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    Essaie de remplacer tes TStringList par des TStrings
    Note: il y a une petite astuce pour les TStrings:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Tu ne peux pas faire Machin:=TStrings.Create;
    Je crois qu'il faut caster avec une TStringList... Regarde dans les source du TMemo par exemple (la propriété Lines est de type TStrings)...
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 50
    Par défaut
    Non j'ai déjà essayé.
    J'avais fait comme ca au début mais le comportement est encore pire.

  4. #4
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    Peux-tu nous montrer ton Getter et ton Setter stp?
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 50
    Par défaut
    Mais bien sur, il n'y a rien de révolutionnaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function toto.GetChampsFirebird: TStringList;
    begin
      result := goChampsFirebird;
    end;
     
    procedure toto.SetChampsFirebird(const Value: TStringList);
    begin
      goChampsFirebird := Value;
    end;

  6. #6
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    Essaie directement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    property ChampsFirebird : TStringList read goChampsFirebird write goChampsFirebird;
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 50
    Par défaut
    C'est vraiment bizarre comme histoire :
    Dans mon obervateur de propriétés, je vois bien ma propriété ChampsFirebird de type TStringList.

    Je clique sur les [...] pour saisir des valeurs.
    J'en saisie une et je valide.
    Je veux retourner en saisir une autre et c'est là que ca plante.

    (desepoir ...)

  8. #8
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    Même en faisant ce que je t'ai dit?
    Si jamais essaye dans le Setter de mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    goChampsFirebird.Assign(Value);
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  9. #9
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Par défaut
    Et si tu fais comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private 
        goChampsFirebird : TStrings; 
        ... 
    published 
        property ChampsFirebird : TStrings read GoChampsFirebird write SetChampsFirebird;
    Ensuite dans ton Contructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    goChampsFirebird := TStringList.Create;
    Est ce que ça ne marche pas ?

    A+

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 50
    Par défaut
    Bon cela semble fonctionner.
    Ce que j'ai fait (un mixte de tout ce que vous avez dit) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private
        goChampsFirebird : TStrings;
        ...
    published
        property ChampsFirebird : TStrings read GoChampsFirebird write SetChampsFirebird;
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    goChampsFirebird.Assign(Value);
    Avec tout ca mon composant se comporte correctement.

    Merci de votre aide.

  11. #11
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    Mais avec plaisir
    N'oublie pas le tag [Résolu]
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

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

Discussions similaires

  1. Composant Swing utilisable par une autre application
    Par gassi64 dans le forum AWT/Swing
    Réponses: 0
    Dernier message: 15/05/2009, 12h52
  2. Quels composants utiliser pour une application client/serveur (mySql) ?
    Par whitespirit dans le forum Bases de données
    Réponses: 20
    Dernier message: 30/01/2008, 05h46
  3. [D2006] - Utiliser un composant C# dans une appli VCL.NET
    Par RamDevTeam dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 13/02/2006, 16h07
  4. Composants à utiliser pour une interface graphique Java
    Par nicolas.pied dans le forum Composants
    Réponses: 4
    Dernier message: 28/11/2005, 20h27
  5. [Debutant(e)]Quel composant utiliser pour faire une grille
    Par elitost dans le forum Composants
    Réponses: 7
    Dernier message: 21/06/2004, 20h44

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