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

Lazarus Pascal Discussion :

Couleur de fond et de la police d'une CheckBox [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 123
    Par défaut Couleur de fond et de la police d'une CheckBox
    Bonjour,
    j'ai bien compris que depuis Delphi 7 c'est une API Windows qui empêche de mettre en couleur la fonte et le fond d'une CheckBox et de certain autres composants.
    mais cela ne résout pas mon problème.
    et je trouve cela dommage que cette régression pourrisse la vie de beaucoup de personne.
    pour certaine Checkbox, j'ai ajouté un TLabel qui m'a permis de résoudre mon problème,
    mais là, c'est impossible de résoudre de cette façon.
    je fais un tableur ou je mets une CheckBox dans toutes les cases du tableur et il faut que le fond de la CheckBox corresponde à la couleur du fond de la cellule dans laquelle est placée la CheckBox.

    j'ai essayé avec les thème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    uses 
      UXTheme;
    procedure CouleurCbx();
      begin
          CheckBox:=TCheckBox(FrmClr.FindComponent('CbxClr'+IntToStr(NmrCase)));
          If CheckBox<>Nil then begin
            SetWindowTheme(CheckBox.Handle, '', '');
            CheckBox.Brush.Color:=ClRed;
          end;
      end;
    cela marche sur un projet que je crée et ou je fais l'essai, mais pas dans mon programme.
    Je préférerais trouver une solution pour pouvoir colorié le fond et la fonte comme avec Delphi 7
    merci pour votre aide, très précieuse.
    bonne journée

  2. #2
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 142
    Par défaut
    Salut,
    Citation Envoyé par neho88 Voir le message
    Je préférerais trouver une solution pour pouvoir colorier le fond et la fonte comme avec Delphi 7
    Pour la fonte : checkbox1.Font.Color:=clBlue; et pour le fond je ne comprends pas la question, pour la bonne et simple raison que ma checkbox prend automatiquement la couleur de l'objet sur lequel elle est placée.

    Ou alors on ne parle pas de la même chose ? La checkbox peut être le carré cliquable où s'affiche ou pas le signe indiquant le "cochage", ou peut être l'objet complet (case à cocher, le texte, l'ensemble contenant ces deux objets). La case à cocher peut être colorée, l'objet complet non, on dirait.


    Citation Envoyé par neho88 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CheckBox.Brush.Color:=ClRed;
    Euh, dans mon Lazarus la complétion me montre un cadenas à côté de Brush, je suppose que c'est verrouillé (je n'ai jamais trouvé l'explication de cette information [comme plein d'autres, d'ailleurs, mais ceci est un autre sujet]) et pourtant checkbox1.Brush.Color:=clYellow; ne génère pas d'erreur. Mais pas d'action non plus.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 123
    Par défaut
    Nom : Color range_2019-11-19_17-03-54.png
Affichages : 997
Taille : 68,9 Ko

    Bonjour,
    merci pour la réponse.
    je travaille également sous Lazarus 1.0.2
    cela ne fonctionne pas pour la fonte,
    et j'ai posé le fichier pour le fond.
    on ne peut pas dire que la CheckBox prend la couleur de fond de la case ou elle est placée.
    bonne journée

  4. #4
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 142
    Par défaut
    Yep !
    Citation Envoyé par BeanzMaster Voir le message
    Salut 2 solutions ou 3, peut-être pour résoudre ton problème
    Peut-être une 4e :
    Citation Envoyé par neho88 Voir le message
    je travaille également sous Lazarus 1.0.2
    Je savais que j'étais à la ramasse avec ma 1.4, mais là, je reste sans voix ! Envisager de migrer vers 1.4/1.6.4, peut-être ?

    Un truc qui m'a étonné dans ton image, c'est que les checkbox sont mal alignées verticalement : es-tu sûr de leur avoir bien déclaré le parent comme étant la grille ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 123
    Par défaut Couleur de fond des Checkbox
    Bonjour,
    oui, elles étaient décalées,
    mais ce n'est pas grave.
    c'est la différence entre delphi 7 et Lazarus.
    après correction ...

    Nom : Color range_2019-11-21_17-03-20.png
Affichages : 922
Taille : 74,0 Ko

    mais cela ne règle pas encore mon problème de couleur de fond ...

    Bonne journée

  6. #6
    Membre Expert
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Billets dans le blog
    2
    Par défaut
    Salut 2 solutions ou 3, peut-être pour résoudre ton problème
    1) Ajouter un Panel qui reprendrait la couleur de fond de ta cellule avec la checkbox dedans
    2) Mettre la propriété ParentColor de la checkbox à false
    3) ne pas utiliser les thèmes cf dans les options de ton projet
    A+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  7. #7
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 142
    Par défaut
    Bonsoir,

    tu devrais nous faire un petit zip avec le strict minimum pour voir le problème, pour qu'on puisse tester avec des versions supérieures.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 123
    Par défaut Zip de la palette de couleurs
    Bonjour,
    voici un Zip de la partie Palette des couleurs.
    soyez indulgent, merci.
    je suis preneur de toutes les modifications permettant d'améliorer le code.
    bonne journée
    PaletteCouleurs.zip

  9. #9
    Membre Expert
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Billets dans le blog
    2
    Par défaut
    Salut, j'ai regardé ton projet vite fait.

    Première suggestion mets ta version de Lazarus à jour au minimum la 1.6.4 mais préfère la dernière version quand même surtout si tu es sous Windows et idem pour Linux si tu peux mais au minimum la 1.6.4

    Je n'avais pas fait attention que tu ne fais pas défiler ta grille, ton approche, n'est pas la bonne (c'est valable pour ta version Delphi également) Avec Lazarus ici, cela ne fonctionne tout simplement pas car la Checkbox ne se dessine pas de la même manière.
    Le problème c'est que tu affiches tes checkbox par dessus la grille et non dans les cellules. De plus tes checkbox ne sont pas libérées de la mémoire en fin d'application

    Pour un exemple de comment ajouter un control dans une celulle tu peux te référer à l'exemple (Menu Outils --> Exemple de projets) GridExamples/GridCellEditor
    Voir aussi https://wiki.lazarus.freepascal.org/...Reference_Page et ce code pour Delphi https://www.thoughtco.com/place-a-ch...dbgrid-4077440

    Deuxième solution : Vu que tu ne fais pas défiler ta grille en lieu et place tu pourrais utiliser le composant TFlowPanel dans l'onglet Addons et ajouter simplement des TPanel contenant la checkbox (via un tableau qui te permettrait des libérer de la mémoire tous ces composants créés dynamiquement). Suffit en suite de gérer le click de ces TPanel et de leur checkbox respectif via une methode commune et en te servant de la propriété "Tag".

    A+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  10. #10
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 142
    Par défaut
    Salut,

    vit' vit' car je n'ai pas beaucoup de temps, j'ai jeté un œil à ton truc sous Linux.

    j'ai commenté deux-trois machins spécifiques Windows liés aux thèmes, et quand ça a compilé j'ai exécuté et là, aucune checkbox visible !

    Bon, la ligne coupable a vite été trouvée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Procedure TFrmClr.CreationCheckBox(Sender: TObject);
    //...
      begin
                with TCheckbox.Create(FrmClr) do begin
    //...
    //              Parent     := TstClrGph;  // bad sous linux
                  Parent     := SgdClrGph;  // + 1 !
    Et voilà, toujours avec ma vieille 1.4.0 :

    Nom : palette_coul.png
Affichages : 1311
Taille : 39,8 Ko

    Mais je n'ai pas étudié les autres onglets (qui ont l'air un peu brouillon [décalages les uns par apport aux autres] après un regard rapide) ni testé les histoires de défilement soulevées par BeanzMaster.

    (Me suis permis de corriger les fautes d'orthographe et de typo dans les titres des deux premiers onglets)

  11. #11
    Membre confirmé

    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 65
    Par défaut faute
    Citation Envoyé par Jipété Voir le message
    Salut,



    Bon, la ligne coupable a vite été trouvé :
    Il me semble voir une faute

  12. #12
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 936
    Billets dans le blog
    6
    Par défaut
    Un de mes amis, ex-enseignant, préfère parler d'erreurs d'orthographe, tant qu'elles ne sont pas intentionnelles. En math, on fait d'ailleurs plus d'erreurs de raisonnement que de fautes, me semble-t-il.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  13. #13
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 142
    Par défaut
    Citation Envoyé par microb Voir le message
    Il me semble voir une faute
    Fixed, merci.

    Cependant, je l'ai vue en rouvrant le sujet ce soir avant de lire ton post, lol ! Elle m'a sauté aux yeux, la coquine,
    Ah, j'avais bien dit "vit' vit",

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 123
    Par défaut Couleur de fond d'une CheckBox
    Bonjour,
    j'ai mis à jours mon Lazarus (Version 2.0.6).
    j'ai affiché les CheckBox dans les cases et non sur la grille, mais sans résultat. les Checkbox sont toujours blanches.
    j'ai essayé avec un TLabel en dessous, même résultat.
    j'ai essayé avec un TPanel, est là ... la checkBox prends bien la couleur du TPanel en couleur de fond !!!
    je vais essayer dans cette voie.
    les Checkbox ne sont pas libérées sur cette feuille, car elles sont libérées dans la fenêtre principale du programme.
    sur ton Post vit, vit, les Checkbox sont bien en couleur ?
    sous Linux, ça marche ???
    bonne journée
    merci pour tout le temps que vous passez à nous aider

  15. #15
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 142
    Par défaut
    Citation Envoyé par neho88 Voir le message
    sur ton Post vit, vit, les Checkbox sont bien en couleur ?
    Qu'est-ce que tu appelles "en couleur" ? D'une autre couleur que les cellules de la grille ? L'image montre bien qu'elles sont de la même couleur, et j'avoue n'avoir pas imaginé un instant qu'il puisse en être autrement.

    Citation Envoyé par neho88 Voir le message
    sous Linux, ça marche ???
    Citation Envoyé par Jipété Voir le message
    vit' vit' car je n'ai pas beaucoup de temps, j'ai jeté un œil à ton truc sous Linux.
    Et voilà, toujours avec ma vieille [install Lazarus] 1.4.0 :

    Nom : palette_coul.png
Affichages : 1311
Taille : 39,8 Ko

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 19/01/2018, 16h06
  2. Réponses: 7
    Dernier message: 27/10/2016, 19h05
  3. Couleur de fond de la case à cocher d'une TCheckBox ?
    Par Frank38 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 03/02/2006, 09h23
  4. Couleur de fond d’un page qui n’est pas une page mais juste
    Par Furius dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/01/2006, 17h16
  5. [FLASH MX] Police d'une Checkbox
    Par n_tony dans le forum Flash
    Réponses: 5
    Dernier message: 08/12/2004, 12h04

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