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 :

Utilisation de la librairie JEDI ...


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Utilisation de la librairie JEDI ...
    Bonjour a tous et toutes.

    Je suis un peu en galère en ce moment sur des notions d'heritage d'un des composants de la Jedi : le TjvftAppt. Ce composant non visuel est un objet type 'rendez vous' à la Outlook qui est connecté au composant grille TjvtfDays (voir la palette JvTimeFrameWork).
    Le probleme est le suivant, ayant besoin de rajouter plus de champs a l'objet TjvftAppt, j'ai donc decidé d'en faire un autre (TjvftApptExt) qui hérite de ce dernier et lui ai ajouté mes propres champs. Mais voila, je me retrouve a avoir nombre de corruption memoires a tout bout de champs lorsque j'accede aux propriétés du parent ou du fils, sans vraiment comprendre pourquoi. Je précise que je ne créé pas un autre objet, mais que je caste l'objet original dans l'objet je j'ai redefini. Je n'ai donc pas (par méconnaissance: ) recréé de constructeur ni de destructeur...

    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    var 
             RdvOriginal : TjvTfAppt; //objet de la JEDI
             RdvExt : TjvTfApptExt; //le fils redefini
     
     begin
                ScheduleManagerCalendrier.RequestAppt('test', RdvOriginal,Isnew);// implicite RdvOriginal.Create() 
                RdvExt := TjvTfApptExt( RdvOriginal);
                RdvExt.nouvellepropriété:='quelquechose';
               {.....etc}
    end;
    Il est clair que je maitrise mal le concept j'aurai besoin d'un peu d'eclairage...merci à votre bon coeur...

  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
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    Donne-nous la déclaration de ton TJvTfAppt.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Utilisation de la librairie JEDI ...
    Cool deja une reponse !
    Tu souhaites plutot la declaration de l'objet dérivé non ? pas l'unité de la Jedi je présume...

    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
    23
     
    type
      TjvtfApptExt = class(TJvTFAppt)
      private
      FRealId : integer;
      FParentRdvID : integer;
      FCatId : word;
      FTbl_linkName : string;
      FTbl_fieldLinkName  :string;
      FTbl_fieldValue : string;
      FTbl_fieldValue2 : string;
      FRdvSubject : string;
    public
        property RealId: integer read FRealID write FRealID;
        property ParentRdvID: integer read FParentRdvID write FParentRdvID;
        property CatId: word read FCatID write FCatId;
        property Tbl_linkName: string read FTbl_linkName write FTbl_linkName;
        property Tbl_fieldLinkName: string read FTbl_fieldLinkName write FTbl_fieldLinkName;
        property Tbl_fieldValue: string read FTbl_fieldValue write FTbl_fieldValue;
        property Tbl_fieldValue2: string read FTbl_fieldValue2 write FTbl_fieldValue2;
        property RdvSubject: string read FRdvSubject write FRdvSubject;
     
    end;
    Est-ce bien cela que tu souhaitais ?

    Al. :

  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
    Points : 8 078
    Points
    8 078
    Par défaut Re: Utilisation de la librairie JEDI ...
    Citation Envoyé par HaldriX
    Tu souhaites plutot la declaration de l'objet dérivé non ? pas l'unité de la Jedi je présume...
    Oui effectivement
    Citation Envoyé par HaldriX
    Est-ce bien cela que tu souhaitais ?
    Oui effectivement, Il n'y a pas d'erreur dans cette partie.
    En revanche, si tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      RdvExt:=TjvTfApptExt( RdvOriginal);
    et que RdvOriginal n'est pas du type TjvTfApptExt, alors, forcément, il y a des erreurs...
    Il te faut créer un TjvTfApptExt et non un TjvTfAppt... Si tu crées un TjvTfAppt, Delphi assigne l'emplacement mémoire que va prendre cet objet. Si tu le cates en TjvTfApptExt (donc avec des propriétés en plus I.E. de la place mémoire en plus), cela va pointer sur des segments mémoire "externes" à ton objet... D'où tes problèmes...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Utilisation de la librairie JEDI ...
    Ok je comprends mais le problème est simple, c'est le composant JvTfScheduleManager qui génère un nouvel objet jvtfAppt via la fonction ScheduleManagerCalendrier.RequestAppt('test', objJvtfAppt,Isnew) . Donc cela suppose que je peux fournir a la methode citée plus haut (RequestAppt()... ) mon objet jvtfApptExt ? ou dois-je la redefinir ?

    merci .

  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
    Points : 8 078
    Points
    8 078
    Par défaut
    Si c'est un objet utilisé par un autre, alors, à moins de redéclarer l'objet "source" avec ta nouvelle définition de l'objet "enfant", il n'ay aucun moyen de le faire... Ou alors je ne sais pas le faire

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Utilisation de la librairie JEDI ...
    Ok. Ca ne m'arrange pas tout ca...Merci pour les réponses je vais me debrouiller autrement alors...A +

    Al.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Utilisation de la librairie JEDI ...
    Bon solution retenue, l'objet JvTfAppt de la Jedi lib contient une propriété Data que j'utilise pour stocker un pointeur vers une structure contenant les champs additionnels. Il a fallut remodifier le code en fonction mais ca fonctionne bien.

    A+.: 8)

Discussions similaires

  1. [GD] Utilisation d'une librairie equivalente à Gd/installation sans reboot du serveur
    Par hokidoki dans le forum Bibliothèques et frameworks
    Réponses: 15
    Dernier message: 21/07/2006, 15h22
  2. Utilisation de la librairie LTI
    Par gids01 dans le forum MFC
    Réponses: 1
    Dernier message: 14/12/2005, 14h34
  3. Réponses: 4
    Dernier message: 13/10/2005, 12h41
  4. [Débutant] utilisation de la librairie windows
    Par tavman dans le forum Windows
    Réponses: 12
    Dernier message: 27/08/2005, 16h21
  5. Utilisation de la librairie ng sous FreeBSD
    Par Mercenary Developer dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 07/12/2004, 09h39

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