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 :

Violation d'accès dans l'EDI sur compo1 apres suppr de comp2


Sujet :

Composants VCL Delphi

  1. #1
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Mars 2003
    Messages : 281
    Points : 187
    Points
    187
    Par défaut Violation d'accès dans l'EDI sur compo1 apres suppr de comp2
    Bonjour,

    J'ai l'architecture suivante

    un ComposantMaitre
    un composantExclave

    Le composant maitre à une propriété items qui est un dérivé de TOwnedCollection

    Les items sont des dérivés de TCollectionItem avec parmi les Propriétés,
    CompoEsclave : TMyCompo;

    J'ai un pb quand dans l'EDI, je supprime le compo Esclave.
    Si ensuite, je vais consulter la propriété items de mon Compsant Maître, j'ai une violation d'accès dans le module RTL70.BPL ... et il n'y a plus qu'a relancé D7.

    Concernant la propriété CompoEsclave, j'utilise une fct GetEsclave qui vérifie si le compo existe toujours. (utilisation de Assigned)

    Visiblement la consultation vie l'éditeur de propriété ne passe pas par ma fct et donc cherche à atteindre un composant qui n'existe plus.

    Avez-vous déja rencontré ce pb ?

    Merci.

  2. #2
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Mars 2003
    Messages : 281
    Points : 187
    Points
    187
    Par défaut Suite ..
    Je viens de faire un test en créant un nouveau composant sans utilisé de collection.

    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
    type
      TcomponentMaitre = class(TComponent)
      private
        fButton : Tbutton;
        procedure SetButton(value : Tbutton);
        function GetButton : Tbutton;
      published
        property button:TButton read GetButton write SetButton;
      end;
     
     
    procedure TcomponentMaitre.SetButton(value : Tbutton);
    begin
      fButton := value;
    end;
     
    function TcomponentMaitre.GetButton : Tbutton;
    begin
      if not assigned(fbutton) then result := nil;
    end;
    Je pose, mon CompoMaitre, je pose un boutton, je remplit (via l'éditeur) la propriété Button.

    Si je supprime le bouton => Plantage Violation d'accès dans RTL70.bpl ..

  3. #3
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Mars 2003
    Messages : 281
    Points : 187
    Points
    187
    Par défaut [Résolu] - Violation d'accès après suppression composant
    La solution du Pb :

    Surcharger la méthode Notification :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure Notification(AComponent: TComponent; Operation: TOperation);override;
    pour intercepeter l'opération OpRemove

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if Operation=opRemove then
      fButton := nil;

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/05/2007, 17h18
  2. violation d'accès dans le FormCreate
    Par freestyler dans le forum Delphi
    Réponses: 21
    Dernier message: 03/10/2006, 13h30
  3. [DLL] Violation d'acces dans msvbvm60.dll
    Par SubZero2 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 10/04/2006, 13h46
  4. [D7] Violation d'accès dans l'IDE
    Par paradise dans le forum Langage
    Réponses: 1
    Dernier message: 08/02/2006, 16h10
  5. Message de violation d'accès dans la dcc50.dll
    Par cchatelain dans le forum EDI
    Réponses: 17
    Dernier message: 29/11/2005, 18h28

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