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

 Delphi Discussion :

TabSheet créé dynamiquement erreur d'acces


Sujet :

Delphi

  1. #1
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 117
    Points : 50
    Points
    50
    Par défaut TabSheet créé dynamiquement erreur d'acces
    Bonjour,

    je veux créer des tabsheet sur une pagecontrol mais lors de la création le compilateur m'affiche une erreur et je ne vois pas d'ou elle peut venir.
    Voici mon code et l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TSpdTest2Eng.CreateTabSheet(Name: string);
    begin
      With TTabSheet.Create(Self) Do Begin
        Parent := Self;
        PageControl := PageControl2;
        Name := 'TabSheet' + IntToStr(PageControl2.Tag);
        Caption := Name;
      End;
    end;
    Erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    First chance exception at $7C812A5B. Exception class EAccessViolation with message 'Access violation at address 0052C17E in module 'TrialManager.exe'. Read of address 000004D4'. Process TrialManager.exe (496)
    cette erreur arrive a la ligne on j'assigne le PageControl à PageControl2.

    Merci

  2. #2
    Membre expérimenté
    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 : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    le compilateur m'affiche une erreur
    Est ce que c'est le compilateur qui affiche une erreur, ou une exception est générée?

    Vérifie que PageControl2 est bien créée au moment ou tu l'affecte...
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Points : 192
    Points
    192
    Par défaut
    Bonjour,

    Es-ce que ton PageControl2 est-il bien créé ?
    Tu peux le faire, tu veux le faire tu vas le faire Bref, soyons positif

  4. #4
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 117
    Points : 50
    Points
    50
    Par défaut
    Oui il est bien créé car il est créé dans le design mode.
    Et il s'agit d'une exception non pas a la compilation mais pendant l'exécution excusez moi.

  5. #5
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 41
    Points : 40
    Points
    40
    Par défaut
    A mon avis, déja y'as une erreur du fait que tu appelle t'as procédure avec le mot réservé ''Name"

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TSpdTest2Eng.CreateTabSheet(Name: string);//ici
    begin
      With TTabSheet.Create(Self) Do Begin
        Parent := Self;
        PageControl := PageControl2;
        Name := 'TabSheet' + IntToStr(PageControl2.Tag);
        Caption := Name;
      End;
    end;
    essaye ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TSpdTest2Eng.CreateTabSheet(nom: string);
    begin
      With TTabSheet.Create(Self) Do Begin
        Parent := PageControl2;
        PageControl := PageControl2;
        Name := 'TabSheet' + IntToStr(PageControl2.Tag);
        Caption := nom;
      End;
    end;

  6. #6
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 117
    Points : 50
    Points
    50
    Par défaut
    Toujours le même problème

  7. #7
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 41
    Points : 40
    Points
    40
    Par défaut
    l'erreur ne vient pas de ton code, tu appel comment ta procédure ?

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Points : 192
    Points
    192
    Par défaut
    Le code est opérationnelle, je l'ai testé (en delphi 6).

    Pour moi, le problème vient du fait que l'objet PageControl2 n'existe pas ou pointe sur nil, doncPageControl2.tag provoque l'exception.

    Peux-tu donner le code de création de ce dernier.

    Ne fait tu pas, quelqe part dans ton code un truc du genre PageControl2 := nil; ???
    Tu peux le faire, tu veux le faire tu vas le faire Bref, soyons positif

  9. #9
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 117
    Points : 50
    Points
    50
    Par défaut
    Ma PageControl2 existe bien donc ce n'est pas ça le problème elle est créée dans le mode design et je n'y touche jms a part par cette procédure.
    Le problème viens peut être du fait que j'appelle cette procédure depuis une autre unité??

  10. #10
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 41
    Points : 40
    Points
    40
    Par défaut
    Ne fait tu pas, quelqe part dans ton code un truc du genre PageControl2 := nil; ???
    ou peut etre ton pagecontrol est invisible

  11. #11
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 117
    Points : 50
    Points
    50
    Par défaut
    Mais non ... je ne touche jamais a mon pagecontrol2

  12. #12
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 117
    Points : 50
    Points
    50
    Par défaut
    Veuillez accepter toutes mes excuses je m'était embrouillé dans les uses de mes units. La procédure est donc bien bonne mais je ne l'appliquais pas sur un composant existant.

    Voilà ce qui arrive quand on est débutant et qu'on se perd dans ses fenêtre parcqu'on pas bien analysé le fonctionnement au préalable.
    Je suis dsl

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

Discussions similaires

  1. [VBA] erreur d'acces a la liste de references
    Par amine15534 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/02/2007, 14h27
  2. [ERREUR MySQL] Acces denied
    Par Alexlesilex dans le forum Requêtes
    Réponses: 5
    Dernier message: 15/05/2006, 14h33
  3. []Erreur d'accès à la Base de registres
    Par oulai_evado dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/12/2005, 13h59
  4. Erreur d'acces a une base de donnees: idapid32.dll
    Par mevellea dans le forum Bases de données
    Réponses: 3
    Dernier message: 23/10/2005, 19h10

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