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

EDI Delphi Discussion :

[Delphi 2009] Existe-t-il une directive de rétro-compatibilité concernant l'unicode ?


Sujet :

EDI Delphi

  1. #1
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    604
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 604
    Points : 2 045
    Points
    2 045
    Par défaut [Delphi 2009] Existe-t-il une directive de rétro-compatibilité concernant l'unicode ?
    Bonjour,

    Pour ceux qui ont testé Delphi 2009.

    Existe-t-il une directive de rétro-compatibilité pour dire de ne pas utiliser unicode par défaut et assurer ainsi la rétro-compatibilité.

    Jusqu'ici, chaque fois qu'il y avait un changement, il y avait une directive de compilation permettant d'assurer la rétro-compatibilité.

    Il semble que, cette fois et pour ce point ce ne soit pas le cas !!
    (il est vrai qu'il aurait fallut fournir une double VCL)

    Cela ne me poserait pas trop de problème s'il n'y avait que mon source à moi.

    Mais j'utilise bien une cinquantaine de composants qui doivent représenter des centaines de milliers de lignes de code. Je n'ai ni le temps, ni la compétence de les mettre à niveau. Donc si l'auteur original ne le fait pas (beaucoup ont déjà quitté le navire pour dotnet) ....

    Quelqu'un peut affirmer ou infirmer cette absence.
    --
    vanquish

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 534
    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 534
    Points : 25 082
    Points
    25 082
    Par défaut
    Voir la réponse de Reisubar sur le sujet Stratégie suite à changement d'OS et décisions à prendre

    Durant le Code Way Tour, on a aperçu une directive de compilation genre {IFDEF UNICODE} mais elle n'est là que pour la transition du CodeGear de Delphi lui-même !
    Je n'ai qu'une version Trial, donc je n'ai pas les sources pascal comme j'en ai l'habitude avec D7 en version pro, ...

    Si tu as de la chance, tes composants fonctionneront ... sauf si il y a de l'utilisation de PChar à la sauvage (GetMem, CopyMemory, ... sans le SizeOf(Char) souvent remplacé par 1 pensant que cela ne changerait jamais)

    Si tu n'as pas de chance : Dis adieu à tes composants ANSI !

    Moi, je n'en ai pas, j'ai plutôt dans les 5 millions de ligne de code de composants externe (les maintenus : Jedi, TMS, ReportBuilder\InfoPower\ExtraDevices, SecureBlackBox, tous ne sont pas encore prêtes, et je passe les non maintenus comme HyperStr), et l'on sait que les versions récentes de certaines composants ne sont plus compatibles avec nos applications, alors il faudrait déjà corriger les bugs de nos applis avec les dernières versions D7 des composants (voire même D2007) puis ensuite passer à D2009 ...
    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

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807
    Par défaut
    Regarde un peu ici :

    The (unofficial) Unicode Switch is now available
    http://andy.jgknet.de/blog/?p=322

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 534
    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 534
    Points : 25 082
    Points
    25 082
    Par défaut
    C'est intéressant VLDG, n'aurais-ton pas des mauvaises surprises en appelant les API Windows, il ne tenterait pas un appel à une version W en lui passant du ANSI ?
    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

  5. #5
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    tite question, si je place en début d'une unité commune à tout mon projet la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    type
     string=AnsiString;
    est-ce que cela fonctionne ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut Paul.

    Non, on ne peut pas, et pour cause :
    [DCC Erreur] Unit1.pas(10): E2029 Identificateur attendu(e) mais 'STRING' trouvé(e)

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    C'est intéressant VLDG, n'aurais-ton pas des mauvaises surprises en appelant les API Windows, il ne tenterait pas un appel à une version W en lui passant du ANSI ?
    j'ai juste vu cela il y a quelques jours. Je n'ai pas eu le temps d'approfondir et je n'ai pas Delphi 2009 aussi

  8. #8
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    604
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 604
    Points : 2 045
    Points
    2 045
    Par défaut
    Merci (un peu tardif, mais j'ai été éloigné du site quelques temps) de vos réponses.

    Il existe un switch {$H}, mais il est inutilisable en pratique, car la VCL est en unicode. On ne peut donc utiliser le switch pour tout un projet/composant.

    Si tu as de la chance, tes composants fonctionneront ...
    C'est tout le problème.

    Je ne suis pas trop inquiet pour certains, un peu plus pour d'autres.

    Les auteurs de ZeosLib annoncent un gros délais.

    Je n'ai pas de temps à perdre à tester tout cela (installation de Delphi sur machine de test, passage composant par composant, achat d'upgrade etc..)

    D'autant plus que pour moi qui fait du franco/français le gain est nul, sans parler du risque d'introduire des bugs à des endroits où il n'y en avait pas (y compris dans les librairies tiers, payante ou pas, et qui n'en sont déjà pas exempt à la base).

    Offrir la possibilité d'Unicode était indispensable (XML, WebServices, certains SGBD).
    Le mettre en natif, probablement une erreur.
    La communauté Delphi glisse de plus en plus vers DotNet.
    Si la compatibilité ascendante n'est plus assurée, même pour du pur Win32, je ne suis pas certain que cela n'accélère pas encore les choses.

    La lecture des forums codegear est assez instructive sur l'état d'esprit de nombreux utilisateurs : ils ne passeront à D2009 que contraint et forcé.
    Je trouvais déjà que ça sentait le sapin ....

    Les académiques expliquent qu'il ne faut pas regarder en arrière et qu'aujourd'hui unicode est indispensable. Les pragmatiques ne voient pas pourquoi perdre du temps (et de l'argent) à implémenter une fonction dont ni eux, ni leurs utilisateurs n'ont besoins.

    exemple de commentaires trouvés :
    Customer: I need a water jug.
    Manufacturer: We considered a jug that could be used to carry every kind of liquid, water, acid, liquid oxygen, you name it. Unfortunately, it turned out that it couldn't be done.
    Customer: OK, but I just want it to hold water...
    Manufacturer: Sorry, the decision was made, there is no going back!
    Unicode doit préparer à Win64. Sauf que toutes les nouvelles API (WCF, WPF ..) sont très liées à DotNet. Sincèrement, je ne me vois pas démarrer un projet Win64 (ou tout nouveau projet d'envergure) en autre chose que C#.

    Cordialement.
    --
    vanquish

  9. #9
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 534
    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 534
    Points : 25 082
    Points
    25 082
    Par défaut
    Citation Envoyé par vanquish Voir le message
    La communauté Delphi glisse de plus en plus vers DotNet.
    Il ne faut pas tout mélanger, le support de l'UniCode arrive bien tard pour la VCL, il est supporté par Windows depuis au moins Window 2000 (NT4 et même Win98 je crois) et depuis Delphi 5 (peut-être même avant) tu as les versions Wide des fonctions API de Windows ...
    Il ne font rattraper qu'un grand retard ...


    Citation Envoyé par vanquish Voir le message
    La lecture des forums codegear est assez instructive sur l'état d'esprit de nombreux utilisateurs : ils ne passeront à D2009 que contraint et forcé.
    Je trouvais déjà que ça sentait le sapin .....
    Oh là ! Moi, j'adorais y passer (D7 à D2009), j'ai plus que SecureBlackBox qui devrait livrer sa release UniCode ... les autres libs seront abandonnés. Le Gros du travail sera sur la lib interne de mon employeur, on s'est laissé dépassé depuis trop longtemps, il faut y passer, faut juste en avoir la volonté (les moyens on les a, faut juste aussi se les donner).

    Après pour la suite, il faut voir ce que cela donne, comment va se poursuivre la gamme Win32 dans l'environnement Windows, et là ce n'est pas Delphi le problème mais MicroSoft ... pourrons-t-il oser de supprimer le Win32 dans le prochain OS rendant toutes les anciennes applications non compatible ...
    Autre Question est-ce que le multi-plateforme ne sera géré que via Prism.NET ? ou il y a des idées pour faire un Delphi pour Linux ? (le problème c'est la gueule du code ? jouer avec les directives ou VCL system plus poussé donc finalement un concurrent du .NET, donc trop couteux en développant pour CodeGear) ...

    Par contre, pour tous nouveaux projets, c'est un framework interne en PHP qui est choisi, donc un langage totalement orienté vers la solution "NO .NET" ... seul les applications de Compta\RH resteront encore pendant 10 ans en Delphi car applicatif non connecté au web sur des vieux windows (en afrique et asie pour les ONG)
    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

  10. #10
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 745
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 745
    Points : 13 306
    Points
    13 306
    Par défaut
    Cela m'étonnerais que Microsoft supprime Win32 avant longtemps. Il viennent juste de l'introduire dans Windows Mobile 6.

  11. #11
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    604
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 604
    Points : 2 045
    Points
    2 045
    Par défaut
    Bonjour,

    Citation Envoyé par Andnotor Voir le message
    Cela m'étonnerais que Microsoft supprime Win32 avant longtemps.
    Entièrement d'accord avec toi.
    Win32 sera encore supporté très longtemps. Mais il n'évoluera plus.

    Je ne veux donc pas me laisser enfermer dans Win32.
    La nouvelle API que Microsoft déploie partout c'est .Net : pour client lourd (Winform, WPF), pour le Web (Asp.Net), Web riche (Silverlight), pour les mobiles (Compact Framework) et même pour l'embarqué ( µ Framework).

    Donc je ne vois pas l'intérêt de démarrer un nouveau projet en Delphi.VCL, voir en Delphi tout court. Delphi m'a attiré par sont Framework (VCL dont le papa est aussi celui de .Net) et non pour son langage (Pascal - même s'il reste mon préféré). L'intérêt de Prism me parait très limité. Le passage Delphi/C# n'est pas si compliqué, sans parler du risque de faible pérénité du produit (il n'y a qu'à voir où en est Kylix).

    Citation Envoyé par ShaiLeTroll
    Par contre, pour tous nouveaux projets, c'est un framework interne en PHP qui est choisi
    On en est donc au même point.
    On ne démarre rien de neuf avec Delphi. D'où le peu d'envie pour moi de faire un lourd investissement dans un passage vers D2009, même si j'aimerais bien profiter des nouveautés de l'EDI, de certains nouveaux composants et de certaines extensions de langage.

    Citation Envoyé par ShaiLeTroll
    Il ne font rattraper qu'un grand retard ...
    Peut-être trop tard. Il y a 3 ou 4 ans, j'aurais probablement fait l'effort (sans même me poser la question). Aujourd'hui ....

    Cordialement,
    --
    vanquish

Discussions similaires

  1. [Delphi 2009] problèmes de migration d'une application
    Par Just-Soft dans le forum Débuter
    Réponses: 17
    Dernier message: 15/10/2009, 17h56
  2. [Delphi 2009] Directive de compilation
    Par steph1969 dans le forum EDI
    Réponses: 4
    Dernier message: 19/06/2009, 13h34
  3. Passage de paramètre à une IBquery Delphi 2009
    Par Bendir dans le forum Débuter
    Réponses: 1
    Dernier message: 21/04/2009, 21h06
  4. Existe-t-il une fonction Eval() sous Delphi ?
    Par Hell dans le forum Langage
    Réponses: 5
    Dernier message: 20/12/2004, 17h45

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