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 :

Problème TToolButton avec SVGICon + Style


Sujet :

Composants VCL Delphi

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

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

    Informations forums :
    Inscription : Avril 2015
    Messages : 24
    Points : 14
    Points
    14
    Par défaut Problème TToolButton avec SVGICon + Style
    Bonjour,

    Je suis en train de mettre au gout du jour des icônes vieillissante sur une application et je me suis donc tourné sur des SVG en utilisant le couple SVGIconImageCollection et SVGIconVirtualmageListe de Ethea.
    Ces icones sont sur des TToolButton à l'intérieur d'un TToolBar, il y a aussi un style personnalisé de base (que l'utilisateur peut changer)
    Je pense que mon problème vient du style mais je ne comprends pas comment corriger.

    Je vous explique le problème, lors du lancement de l'application la couleur de fond est bien transparente et on voit donc la couleur du bouton
    Nom : lancement_ok.png
Affichages : 185
Taille : 5,7 Ko

    Une fois l'utilisateur connecté, il y a un traitement d'actualisation des boutons qui les rendent enabled etc suivant les droits et là il semblerait que la transparence ne fonctionne plus et je me retrouve avec un fond gris
    Nom : après_lance_pasok.png
Affichages : 178
Taille : 5,5 Ko

    si je modifie le style par défaut lors du lancement de l'application en prenant par exemple le style Windows10 il semblerait que ce soit ok car on distingue le fond juste en survolant le bouton avec la souris.
    Nom : Sans titre.png
Affichages : 184
Taille : 4,9 Ko

    Si quelqu'un à une quelconque idée je suis preneur.

    Merci d'avance

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2021
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2021
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Salut ! J'ai déjà rencontré ce problème, tu peux essayer de désactiver et de réactiver le thème, ça fera peut-être l'affaire !

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

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

    Informations forums :
    Inscription : Avril 2015
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Merci pour la réponse mais ça ne fonctionne pas

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 277
    Points : 41 688
    Points
    41 688
    Billets dans le blog
    64
    Par défaut
    Citation Envoyé par wantedman27 Voir le message
    je me suis donc tourné sur des SVG en utilisant le couple SVGIconImageCollection et SVGIconVirtualmageListe de Ethea.
    très bonne idée

    par contre, il faudrait indiquer de quelle version de Delphi on parle parce que pas sûr que ce ne soit pas un bogue corrigé qui n'a en tout cas rien à voir avec le SVG si celui-ci est bien en fond transparent
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

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

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

    Informations forums :
    Inscription : Avril 2015
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Oui au temps pour moi, il s’agit de Delphi 12.1

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 277
    Points : 41 688
    Points
    41 688
    Billets dans le blog
    64
    Par défaut
    Bonjour,
    maintenant que la version est posée, je viens de faire un test rapide.
    J'avoue ne pas pouvoir reproduire le problème (aucun style appliqué).
    J'avoue aussi que VCL, j'ai plus qu'un peu oublié depuis quelque temps me concentrant sur FMX

    Donc : fournir un source .pas et .dfm (ou un zip) serait certainement une bonne idée.
    voici mon test selon ce que j'ai compris
    toolbarUnit.zip
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

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

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

    Informations forums :
    Inscription : Avril 2015
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Je vais essayer de générer un mini projet pour reproduire le cas et vous le transmettre mais pas sur que ça le fasse car sur un projet vierge au début je n'ai pas le cas.

  8. #8
    Membre averti
    Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 321
    Points : 303
    Points
    303
    Par défaut
    Perso pour les formats SVG j'utilise la bibliothèque RiverSoftAVG SVG Component Library

    Nom : Video_2024_08_28-1_edit_1.gif
Affichages : 83
Taille : 1,99 Mo
    Vous ne pouvez pas faire confiance à un code que vous n'avez pas totalement rédigé vous-même.
    Ce n’est pas un bogue - c’est une fonctionnalité non documentée.

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

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

    Informations forums :
    Inscription : Avril 2015
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Je n'arrive pas à reproduire le cas sur un projet vierge, j'ai l'impression que le problème vient d'un des composants qui doit générer un conflit.
    Je ne peux malheureusement donc pas vous fournir l'intégralité des sources du projets, d'une part le code est protégé et il est également dépendant de plusieurs composants payant donc à moins que vous les ayez la compilation ne sera pas possible.

  10. #10
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 277
    Points : 41 688
    Points
    41 688
    Billets dans le blog
    64
    Par défaut
    Conclusion, ce ne serait pas un problème du toolbutton mais de l'inter-action entre certaines bibliothèques. Déboguer ça ne va pas être facile
    Changer l'ordre des déclarations d'unité pourrait peut-être jouer

    dans mon programme j'ai ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Vcl.Dialogs, System.ImageList, Vcl.ImgList,
      SVGIconImageListBase, SVGIconImageList, Vcl.ComCtrls, Vcl.ToolWin,
      Vcl.StdCtrls, vcl.themes;
    je présume que dans le programme, vu que c'est une modification, les unités SVG sont à la fin de la liste ? Cela vaudrait la peine de les déplacer en espérant qu'il n'y aura pas d'autres interférences
    Il y a aussi le choix de changer de moteur de rendu
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    uses
     ... SVGInterfaces, Image32SVGFactory, D2DSVGFactory, SkiaSVGFactory ... // une des 3 au choix
    
    initialization
    SetGlobalSVGFactory(GetSkiaSVGFactory);
    NB. dans mon test, D2D n'est pas concluant, le changement à enabled ne fonctionne pas
    Nom : Capture.PNG
Affichages : 81
Taille : 3,6 Ko
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  11. #11
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 277
    Points : 41 688
    Points
    41 688
    Billets dans le blog
    64
    Par défaut
    @xegregory
    Pour avoir fait des comparaisons entre les différentes solutions gratuites (Ethea, Skia, TPath de Delphi) ou payantes (Riversoft etc..) tutoriel très gros et jamais publié faute de correcteurs puis de demande de scission en plusieurs parties. Mon choix principal s'est porté sur Skia (qui après tout est intégré à partir de D12 ou D12.1) sauf que la liste d'Ethea est quand même bien pratique
    En conclusion de cette étude (Qui date quand même un peu, juin 2019)
    - chaque solution (Skia,Ethea,Riversoft) à des comportements lègèrement différents sur le OnClick
    - Le composant (TPath) proposé, n'ayons pas peur de le dire, est basique, j'ai fait plusieurs posts à ce sujet et monocolor (je ne sais même pas s'il existe en VCL) de plus je le trouve mal nommé car TPath est aussi utilisé dans system.IOutils pour les chemins de fichier (en bref on croirait à un travail de stagiaire). Cependant il peut avoir une certaine utilité notamment dans les styles FMX
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

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

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

    Informations forums :
    Inscription : Avril 2015
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Même en changeant le moteur de rendu et en déplaçant les uses rien n'y fait :/

Discussions similaires

  1. TToolbutton avec Style=tbsDropdown
    Par Chupakabra dans le forum Composants VCL
    Réponses: 1
    Dernier message: 09/10/2007, 18h32
  2. [MFC] [VS2005] Probléme avec le Style XP (? !)
    Par Exsilius dans le forum MFC
    Réponses: 2
    Dernier message: 28/03/2006, 11h28
  3. Définir un textBox password avec le style XP
    Par NicolasJolet dans le forum Windows
    Réponses: 3
    Dernier message: 19/03/2006, 14h43
  4. Réponses: 1
    Dernier message: 30/11/2005, 15h57
  5. Renvoi d'une valeur dans un champ avec un style
    Par m@thieu dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/11/2005, 19h09

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