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 :

Problème de couleurs sur projets en cours de migration Delphi 10-> Delphi 12


Sujet :

EDI Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Eure (Haute Normandie)

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

    Informations forums :
    Inscription : Avril 2015
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Problème de couleurs sur projets en cours de migration Delphi 10-> Delphi 12
    Bonjour,

    Je suis actuellement en train de préparer la migration d'un logiciel de Delphi 10.3 vers Delphi 12.1.
    Nous sommes plusieurs développeurs et le projet doit continuer d'évoluer je ne peux donc pas tout stopper le temps de tout migrer et tester. Je suis donc obligé de procéder au modifications petit à petit à partir des mêmes sources en ajoutant des instructions de compilation suivant la version etc.
    Je rencontre un souci sur lequel je coince, dans notre projet nous utilisons la couleur clFloralWhite sur certains composant. Dans le delphi 10.3 cette couleur a été renseigné en saisissant le code $00F0FAFF dans la propriété Color de l'inspecteur d'objet. Cependant dans Delphi 12.1 cette couleur est désormais bien déclaré ce qui fait que toutes les occurrences sont remplacé par clFloralWhite lors de l'ouverture de la fenêtre, et je vous le donnes en mille, quand je rouvre la même fenêtre avec Delphi 10.3 s'en suit une erreur de valeur propriété incorrecte, en ignorant on se retrouve avec une couleur par défaut différente.

    Ma question est donc, est-il possible de déclarer cette couleur en tant que constante dans Delphi 10.3 pour qu'elle soit reconnu ? si oui comment ?
    J'ai essayé de remplacé le System.UIConst.dcu du Delphi 10.3 par celui du 12.1 sans succès.

    Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 649
    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 649
    Points : 25 397
    Points
    25 397
    Par défaut
    On peut penser que la couleur est en dur dans Delphi 10.3, comme dans n'importe quel exe généré par Delphi, il y a la constante de couleur (voir ColorToIdent)

    Delphi 10.3 n'utilise pas la DCU mais une DLL ou un BPL, D'ailleurs Delphi, fonctionne en liaison dynamique de la RTL ?
    Là il y aurait une piste pour patcher cela, via le TAlphaColorNameGenerator, les live Binding gère plus de nom de couleur que l'EDI classique qui dépend de System.UIConsts.RegisterColorIntegerConsts (que l'on pourrait modifier ?)

    Mais pourquoi ne pas pas changer en 00F0FAFE, cela se verra à peine et il y aura ainsi la fausse couleur clFloralWhite pour D10.3 dans les DFM et la vrai dans D12.1

    D'ailleurs, l'ancien nom c'est clWebFloralWhite

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 807
    Points : 13 503
    Points
    13 503
    Par défaut
    Remy Lebeau fournit un exemple complet (en fin de page) qui devrait répondre à ton besoin. A conditionner par la version du compilateur évidemment

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Eure (Haute Normandie)

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

    Informations forums :
    Inscription : Avril 2015
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Merci pour la réponse rapide,
    Oui modifier le code couleur serait la solution simple mais cela oblige à repasser sur chaque fenêtre
    Par contre je ne comprends pas ce passage
    Citation Envoyé par ShaiLeTroll Voir le message
    il y aura ainsi la fausse couleur clFloralWhite pour D10.3 dans les DFM et la vrai dans D12.1
    si je modifie le code couleur sur chaque fenêtre il sera aussi modifier en D12.1 car les sources sont identiques.

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 649
    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 649
    Points : 25 397
    Points
    25 397
    Par défaut
    Rest donc qu'à enrichir la fonction System.UIConsts.RegisterColorIntegerConsts via un BPL : c'est le mécanisme qui donne un nom aux valeurs d'une fausse énumération comme le TColor : https://www.developpez.net/forums/d2...t/#post1740430 et ici pour le Composant BPL

    Pense que tu vas avoir un BPL de Design Time qu'il faut fournir ou intégrer à ton Exe pour le Run Time

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Eure (Haute Normandie)

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

    Informations forums :
    Inscription : Avril 2015
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Merci, je n'ai plus l'erreur, il reconnait la couleur et la garde.
    La couleur n'apparaît pas dans la liste déroulante mais ça ne me dérange pas tant qu'elle reste.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/10/2013, 09h58
  2. Mettre sur son CV des formations/projets en cours
    Par tbassetto dans le forum CV
    Réponses: 3
    Dernier message: 03/09/2009, 09h14
  3. Réponses: 16
    Dernier message: 29/04/2005, 14h39
  4. [OPENGL/C++] Couleur sur un DWORD ?
    Par Bob.Killer dans le forum OpenGL
    Réponses: 7
    Dernier message: 15/04/2005, 14h20
  5. Aide pour changer de couleur sur les primitifs GLUT
    Par romainhoarau2764 dans le forum GLUT
    Réponses: 3
    Dernier message: 19/03/2005, 13h30

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