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 :

problème de constructeur


Sujet :

Composants VCL Delphi

  1. #1
    Membre habitué Avatar de bidochon
    Inscrit en
    Juin 2002
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 168
    Points : 156
    Points
    156
    Par défaut problème de constructeur
    salut a tous,

    Je tombe sur un petit os lors de l'écriture d'un composant orienté base de données.
    Ce composant possède 2 champs qui sont eux mêmes des objets (TClientDataset et TDataProvider) que je souhaite lier constamment par la propriété dataset du provider.
    Je pensais tout simplement faire comme si j'étais dans une fiche qui tenait mes 2 objets et déclarer quelquepart "en dur" et ne plus m'en occuper ... sauf que si je le colle dans le constructor de mon compo mais ça me jette car évidemment les deux objets sont à nil
    y a t il un moyen de les lier ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
      TMonCompo = class(TAncetre)
      private
      protected
      public
        cds       : TClientDataset;
        dsp       : TDatasetProvider;
        constructor Create(AOwner:TComponent);override;
        Destructor  Destroy;override;
      published
      end;
     
    implementation
     
    Constructor TMonCompo.Create(AOwner:TComponent);
    Begin
      inherited Create(Aowner);
      dsp.DataSet:= cds;         //ca plante là
    End;
    Tant de mains pour transformer ce monde, et si peu de regards pour le contempler !
    (Julien Gracq)

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

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    cela ne peut pas fonctionner puisque les champs ne sont pas initialisés.

    deux solutions

    1) le composant embarque les composants et il doit donc les créer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Constructor TMonCompo.Create(AOwner:TComponent);
    Begin
      inherited Create(Aowner);
      dsp := TDatasetProvider.Create(Self);
      cds := TClientDataset.Create(Self);
      dsp.DataSet:= cds;         //ca plante plus
    End;
    2) ce sont des propriétés du composant définie à la souris et là c'est un peu plus compliqué et ça ne se passe pas dans le Constructor. Et tant que les propriétés n'ont pas été définies, il est normal qu'elles soient à nil.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre habitué Avatar de bidochon
    Inscrit en
    Juin 2002
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 168
    Points : 156
    Points
    156
    Par défaut
    merci Paul,

    effectivement instancier les composants dans le create ça résout le problème et il faut aussi les détruire proprement par un free dans le destructor
    Tant de mains pour transformer ce monde, et si peu de regards pour le contempler !
    (Julien Gracq)

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

Discussions similaires

  1. probleme avec copy constructor
    Par alamata dans le forum C++
    Réponses: 15
    Dernier message: 06/11/2014, 08h34
  2. [Boa] Problème Boa constructor 0.6
    Par Zavonen dans le forum EDI/RAD
    Réponses: 18
    Dernier message: 06/08/2010, 11h56
  3. [Boa] Problème ouverture boa-constructor-0.4.4.win32
    Par Didier100 dans le forum EDI/RAD
    Réponses: 2
    Dernier message: 04/11/2006, 14h12
  4. [debutant]probleme avec le copy constructor
    Par Battosaiii dans le forum Débuter
    Réponses: 10
    Dernier message: 09/11/2005, 10h33
  5. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50

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