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

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2005
    Messages : 73
    Points : 49
    Points
    49
    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 éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    8 610
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 8 610
    Points : 12 268
    Points
    12 268
    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.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2005
    Messages : 73
    Points : 49
    Points
    49
    Par défaut
    Nom : Color range_2019-11-19_17-03-54.png
Affichages : 97
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
    Membre expert
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    septembre 2015
    Messages
    1 204
    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 204
    Points : 3 129
    Points
    3 129
    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

  5. #5
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    8 610
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 8 610
    Points : 12 268
    Points
    12 268
    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 ?
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2005
    Messages : 73
    Points : 49
    Points
    49
    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 : 85
Taille : 74,0 Ko

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

    Bonne journée

  7. #7
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    8 610
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 8 610
    Points : 12 268
    Points
    12 268
    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.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2005
    Messages : 73
    Points : 49
    Points
    49
    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 204
    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 204
    Points : 3 129
    Points
    3 129
    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 éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    8 610
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 8 610
    Points : 12 268
    Points
    12 268
    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 : 71
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)
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  11. #11
    Membre régulier

    Homme Profil pro
    retraité
    Inscrit en
    septembre 2006
    Messages
    55
    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 : 55
    Points : 112
    Points
    112
    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 377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : mars 2005
    Messages : 3 377
    Points : 9 866
    Points
    9 866
    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 10.3.2 Rio 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 éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    8 610
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 8 610
    Points : 12 268
    Points
    12 268
    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",
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2005
    Messages : 73
    Points : 49
    Points
    49
    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 éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    8 610
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 8 610
    Points : 12 268
    Points
    12 268
    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 : 71
Taille : 39,8 Ko
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  16. #16
    Membre expert
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    septembre 2015
    Messages
    1 204
    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 204
    Points : 3 129
    Points
    3 129
    Billets dans le blog
    2
    Par défaut
    Salut je m'y suis collé pendant 1 petit heure voila le résultat et devrait (normalement être compatible avec linux)

    Le truc c'est de créer des colonnes avec la propriété "Columns" et jouer avec les événements "PrepareCanvas" et "DrawCell" et c'est tout

    Nom : 2019-11-26_195954.png
Affichages : 48
Taille : 30,8 Ko

    CustomStringGridTest.zip

    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

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2005
    Messages : 73
    Points : 49
    Points
    49
    Par défaut Couleur de fond d'une Checkbox
    Bonjour,
    merci pour cette solution, mas cela ne correspond pas à mon projet.
    je traites des objets dans mon programme qui peuvent être coloriés.
    lorsque la couleur est utilisée, une checkbox apparait dans la grille du tableur permettant de sélectionner la couleur afin de garder ou d'enlever les objets de cette(es) couleur(s).
    ou simplement pour prévenir que cette couleur est utilisée.
    il faut donc pouvoir afficher une checkbox dans chaque case du tableur en fonction des couleurs utilisées dans le programme,
    pouvoir les désactiver, les sélectionner (ou pas) et que la couleur de fond de la checkbox corresponde à la couleur de fond de la cellule ou elle est installée.
    bonne journée

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2005
    Messages : 73
    Points : 49
    Points
    49
    Par défaut Couleur de fond d'une Checkbox
    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.

    Oui, de la couleur de la cellule en dessous, car là est bien mon problème.
    j'ai ma checkbox avec le fond en blanc.
    Nom : Palette des couleurs_2019-11-27_06-12-31.png
Affichages : 43
Taille : 5,3 Ko

    avec le projet que j'ai posté le 22 novembre

  19. #19
    Membre expert
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    septembre 2015
    Messages
    1 204
    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 204
    Points : 3 129
    Points
    3 129
    Billets dans le blog
    2
    Par défaut
    Salut
    Citation Envoyé par neho88 Voir le message
    Bonjour,
    merci pour cette solution, mas cela ne correspond pas à mon projet.
    je traites des objets dans mon programme qui peuvent être coloriés.
    Et c'est quoi le rapport ??? nous aussi on traite des objets, TCheckBox, TStringGrids

    Citation Envoyé par neho88 Voir le message
    Bonjour,
    il faut donc pouvoir afficher une checkbox dans chaque case du tableur en fonction des couleurs utilisées dans le programme,
    ...
    il faut donc pouvoir afficher une checkbox dans chaque case du tableur en fonction des couleurs utilisées dans le programme,
    pouvoir les désactiver, les sélectionner (ou pas) et que la couleur de fond de la checkbox corresponde à la couleur de fond de la cellule ou elle est installée.
    Parce que ce n'est pas le cas dans la solution que je propose ?

    Citation Envoyé par neho88 Voir le message
    lorsque la couleur est utilisée, une checkbox apparait dans la grille du tableur permettant de sélectionner la couleur afin de garder ou d'enlever les objets de cette(es) couleur(s).
    ou simplement pour prévenir que cette couleur est utilisée.
    C'est bien le cas dans la solution que je te propose, non ?

    Non utilisée - Utilisée cochée - utilisée non cochée
    Nom : 2019-11-27_152159.png
Affichages : 43
Taille : 877 octets


    Citation Envoyé par neho88 Voir le message
    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.

    Oui, de la couleur de la cellule en dessous, car là est bien mon problème.
    j'ai ma checkbox avec le fond en blanc.

    avec le projet que j'ai posté le 22 novembre
    Avec Windows les checkbox auront toujours un fond blanc dans le cas présent. Sous Linux elles sont transparentes (du au système d'affichage de GTK) Lazarus ne fonctionne pas de la même manière que Delphi même si on s'en rapproche beaucoup. L'astuce consisterait juste à afficher tes checkbox en les dessinant et en gérant le "checked" toi même dans OnDrawCell ce qui ferai que tu pourrais également contrôler la couleur d'affichage des ces checkbox "virtuelles"comme tu le fais pour le texte. On le vois bien sur la capture faite par Jipete sous Linux. Avec les couleurs très claire. Les checkbox sont pratiquement indiscernables.

    Néanmoins, pour gérer tes checkbox et simplifier la gestion tu peux créer tes TCheckBox dans TStringGrid.Objects[col, Row] à l'initialisation (dans formcreate par exemple)

    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
    19
     
    var
      chk : TCheckBox;
     
    chk := TCheckBox.Create(self)
    With chk do
    begin
      Name := 'chk'+inttostr(NumeroCouleur);
      Parent := self;
      Visible := False;
      Checked := true;
      Tag := NumeroCouleur;
    end;
    sgd.Objects[col, Row] := chk;
     
    //pour accéder aux checkbox
     
    chk :=  TCheckBox(sgd.Objects[col, Row])
    IsChecked :=chk.Checked
    Et dans ce cas tes checkbox seront bien libérées à la sortie de ton application (si je me souvient bien le stringgrid libère les objets présent dans Objects[] et pas comme tu nous l'avait décrit :

    Citation Envoyé par neho88 Voir le message
    Bonjour,

    les Checkbox ne sont pas libérées sur cette feuille, car elles sont libérées dans la fenêtre principale du programme.
    Ha oui et ou ? non c'est faux tu ne libères aucun checkbox et pour la bonne et simple raison c'est que tu fait

    With TCheckBox.Create(sgd) dola référence à ces checkbox n'apparait nul part dans ton programme (fiche principale et secondaire) ce qui fait de plus que tu ne peux pas, plus, y avoir accès, sauf en parcourant les enfants de ta stringgrid, ce qui n'est pas la meilleur solution et ce n'est pas recommandé en terme de performances et de gestion, simplement. Ton StringGrid ne libères pas ces enfants. C'est comme quand tu créer un TPanel et que tu y ajoutes une CheckBox, cette checkbox n'est pas libérée lorsque tu libère ton TPanel

    Pour ma part je pense que tu veux trop t'embêter. La solution que je te propose me semble la plus judicieuse et vraiment la plus simple

    Voila bonne continuation

    La simplicité est la sophistication suprême ! Leonard de Vinci
    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

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2005
    Messages : 73
    Points : 49
    Points
    49
    Par défaut Couleur de fond d'une Checkbox
    Bonjour,
    et encore une fois, merci pour la réponse.
    en lisant la réponse, je m'aperçois que je me suis très mal expliqué.
    désolé ...
    //--------
    Je recommence depuis le début pour que vous compreniez le problème.
    //--------
    le zip que j'ai posté est une toute petite partie du programme.
    //--------
    mon programme traite des impulsions de radars. il peut y avoir quelques millions d'impulsions sur un enregistrement.
    dans l'enregistrement, il peut y avoir plusieurs radars et aussi plusieurs mode de fonctionnement d'un même radar.
    les objets dont je parlais, ce sont les impulsions des radars enregistrées dans le fichier.
    la personne qui traite l'enregistrement colorise les radars et les modes des radars avec des couleurs différentes.
    lorsqu'une couleur est utilisée, et qu'on ouvre la fenêtre couleur, une Checkbox apparrait dans la case couleur utilisée.
    toutes les couleurs qui ne sont pas utilisée, n'ont pas de Checkbox.
    Nom : Palette des couleurs_2019-11-27_17-26-30.png
Affichages : 39
Taille : 65,1 Ko
    l'exemple est pris sur le programme que j'ai fait en Delphi7 et qui fonctionne très bien pour les couleurs des CheckBox.
    on peut voir que les couleurs 146, 164 et 186 sont utilisées.
    la 146 pour un radar de bateau,
    la 164 pour un avion,
    et la 186 pour un radar de contrôle d'approche d'un aéroport.
    toutes les autres couleurs ne sont pas utilisées. (donc pas de CheckBox dans les cellules du tableur).
    j'espère que je me suis mieux exprimé.
    bonne journée

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 15
    Dernier message: 19/01/2018, 17h06
  2. Réponses: 7
    Dernier message: 27/10/2016, 20h05
  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, 10h23
  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, 18h16
  5. [FLASH MX] Police d'une Checkbox
    Par n_tony dans le forum Flash
    Réponses: 5
    Dernier message: 08/12/2004, 13h04

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