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

Langage Delphi Discussion :

Problèmes de constructeur d'objet B dans un constructeur d objet A


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2011
    Messages : 66
    Points : 67
    Points
    67
    Par défaut Problèmes de constructeur d'objet B dans un constructeur d objet A
    Bonjour,
    j'ai simplifié le problème au maximum donc voila :

    Je cherche a créer un objet A avec en variable de classe un string str1 et un objet B.

    Cet objet B aurais pour variable de classe un string str2.

    Dans le constructeur de A je fait donc appel au constructeur de B mais au moment d'initialiser str2 j'ai une exception de violation d'accès qui se déclenche.

    Mais si je fait appel au constructeur de B en dehors du constructeur de B il n'y a pas de soucis.

    Etant nouveau en delphi je me dit qu'une subtilité de delphi a du m'échapper, mais je ne vois vraiment pas d ou cela peut venir.

    Merci

  2. #2
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 289
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 289
    Points : 1 940
    Points
    1 940
    Par défaut
    Tu dois sûrement faire quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var
      b:TMonObjetB
    begin
      b.Create;
    end;
    Au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var
      b:TMonObjetB
    begin
      b := TMonObjetB.Create;
    end;
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2022

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2011
    Messages : 66
    Points : 67
    Points
    67
    Par défaut
    Non je ne pense pas et voici le code de mes deux classe simplifié
    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
    19
    type
      TRequeteSql = class
      private
        Ftxt:string;
        Flstparams:TList;
      public
        constructor Create(chaine:String; Params:IXMLParamsType);
      protected
      published
        property txt:string read Ftxt write Ftxt;
        property lstparams:TList read Flstparams write Flstparams;
      end;
     
    implementation
     
    constructor TRequeteSql.Create(chaine:string; Params:IXMLParamsType);
    begin
        Ftxt:='toto';  // a cette ligne ici, j'ai une violation d'accès
    end;
    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
    19
    20
    21
    22
     
    type
       TRequete = class
        RequeteSQL:TRequeteSql;
      private
        Fid:string;
      public
        constructor Create(Requete:IXMLRequeteType);
      protected
      published
        property id:string read Fid write Fid;
      end;
     
    implementation
     
    constructor TRequete.Create(Requete:IXMLRequeteType);
    begin
      Fid:=Requete.Id;
      RequeteSQL:=RequeteSQL.Create(Requete.Sql.Txt,Requete.Sql.Params);
    end;
     
    end.

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 530
    Points : 25 063
    Points
    25 063
    Par défaut
    @gobelet, tu confonds [CODE ] et [QUOTE ]
    C'est le # pour le Code, et le ballon pour la citation

    Sinon lit bien ton code car Linkin a presque trouvé ton erreur
    Surement une faute de frappe dans ton cas et non une mauvaise utilisation du Create

    la bonne version est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RequeteSQL := TRequeteSQL.Create(Requete.Sql.Txt,Requete.Sql.Params);
    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

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/08/2013, 20h56
  2. Identifier un objet donné dans un tableau d'objets
    Par tiboleo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/12/2009, 21h23
  3. [VBA] Excel dans access (utilisation d'objets excel dans access)
    Par skyarnangel dans le forum VBA Access
    Réponses: 10
    Dernier message: 02/02/2009, 10h59
  4. Sous Delphi savoir dans Autocad si un objet est dans un polygone
    Par laventure dans le forum API, COM et SDKs
    Réponses: 0
    Dernier message: 29/06/2008, 22h11
  5. Réponses: 6
    Dernier message: 10/06/2007, 13h33

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