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 .NET Discussion :

ExceptObject est deprecated


Sujet :

Delphi .NET

  1. #1
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Juillet 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 128
    Points : 119
    Points
    119
    Par défaut ExceptObject est deprecated
    Bonjour,

    Je m'intéresse actuellement à InstantObject mais la bibliothèque n'est pas portée pour Delphi 2006 .Net, donc je travailles à son portage. Cependant j'ai un problème avec ExceptObject. Le compilateur m'indique qu'il est deprecated donc j'aimerais pouvoir le changer mais lorsque je regarde le code de la VCL, elle l'utilise largement. Comment puis-je changer ce symbole ?

    Merci d'avance

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    tu devrais plutot regarder NHibernate, c'est ce que les auteurs de ce framework conseille sur leur forum pour .NET.

    Je ne pense pas que tu puisses le changer en revanche l'invalider est possible avec les risques que cela implique. Rien n'est dit que ce type de code ne disparaisse pas dans une prochaine version.

    Le mieux est de l'adapter sous .NET mais je n'ai pas Delphi sous les yeux.
    Je n'ai pas compris ceci
    Le compilateur m'indique qu'il est deprecated donc j'aimerais pouvoir
    le changer mais lorsque je regarde le code de la VCL, elle l'utilise largement.
    tu as regardé dans la vcl win32 ou .NET ?

  3. #3
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Juillet 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 128
    Points : 119
    Points
    119
    Par défaut
    Bonjour,

    Lorsque je compile la bibliothèque InstantObject pour .Net j'ai un message "symbole ExceptObject désapprouvé". En comparant la VCL Win32 et la VCL .Net, Borland n'a fait aucun changement. Il a conservé ExceptObject partout dans la VCL même s'il est désapprouvé ????

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Je comprend mieux J'allais te dire de l'adapter mais c'est encore plus simple :
    On Fri, 01 Sep 2006 10:41:42 +0200, Per Bakkendorff wrote:
    > Does anyone know why ? Is there a replacement for this (in my view) very
    > handy object ref. ?


    It is only deprectated in .NET, this is what the source code says:
    function ExceptObject: TObject; deprecated; // expensive. Get out of
    the habit

    In your case you should just use 'e', there is no need to call
    ExceptObject.



    --
    Marc Rohloff [TeamB]
    http://groups.google.com/group/borla...7dfc7560a149b3
    Delphi .NET c'est presque facile :-)

  5. #5
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Juillet 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 128
    Points : 119
    Points
    119
    Par défaut
    Oui mais là où est placé mon ExceptObject n'est même pas dans un gestionnaire d'exception :s

  6. #6
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Cette procédure renvoi l'exception en cours.

    Dans le portage Win32 -.NET il ne faut pas hésiter à regarder le code souce de la VCL .NET il y a beaucoup de chose à apprendre sur le framework.
    Donc dans ton cas :
    WIN32
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    RaiseListPtr: pointer;
    ...
    function ExceptObject: TObject;
    begin
      if RaiseListPtr <> nil then
        Result := PRaiseFrame(RaiseListPtr)^.ExceptObject
      else
        Result := nil;
    end;
    et en .NET
    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
     
    {$IFDEF CF}
    var
    {$ELSE}
    threadvar
    {$ENDIF}
      _ExceptObject: TObject;
     
    function ExceptObject: TObject; deprecated;  // expensive.  Get out of the habit
     
     
    ...
    // Exception support
     
    function ExceptObject: TObject;
    begin
      Result := _ExceptObject;
    end;
    Le underscore indique une variable/procédure inaccessible pour du code utilisateur.
    Le code d'ExceptObject te renvoi l'instance unique de type TObjet. Et effectivement le code .NET utilise tjr les mêmes appel mais la manière de faire change pas le résultat.

    En remontant de fil en aiguille le type TRaiseFrame n'est plus implémenté en .NET là il faut adapter la logique codé en Win32 et pas seulement utiliser les mêmes procédures. La doc BDS 2006 indique à peu près la même chose pour les 2 plateformes

    Je te laisse creuser mais n'hésite pas à poster dans les newsgroups Borland ou à demander dans le forum dotnet.
    Peut être qu'en désassemblant un code test tu trouveras d' autre info ??

  7. #7
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    je suis curieux de savoir comment tu as réglé ton pb.

  8. #8
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Juillet 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 128
    Points : 119
    Points
    119
    Par défaut
    desole pour la reponse tardive mais j avais des problèmes avec mon adsl.

    En fait je n'ai pas vraiment réglé mon problème. Pour l'instant je déclenche des exceptions personnalisées sans faire appel à ExceptObject.

  9. #9
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par flash_math
    desole pour la reponse
    De répondre c'est déjà bien

Discussions similaires

  1. Que faire si une méthode est deprecated
    Par yrtera dans le forum Android
    Réponses: 8
    Dernier message: 08/01/2014, 11h52
  2. [PHP 5.2] eregi_replace est deprecate
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 03/02/2012, 12h15
  3. Comment changer "Date" qui est deprecated
    Par DrE44 dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 18/12/2006, 12h00
  4. [Window] la methode show() est deprecated
    Par Cyborg289 dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 19/07/2005, 14h04
  5. Quelle est la fiabilité du protocole SSL ?
    Par Anonymous dans le forum Développement
    Réponses: 5
    Dernier message: 05/09/2002, 13h31

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