Salut à tous
J'ai une form dont la couleur peut être changée par l'utilisateur à partir d'une autre.
Sur cette form pouvant changer de couleur se trouve un TJvSpeedButton avec la propriété Transparent à True (càd que le bouton va prendre la couleur de la form). Ce bouton contenant un texte, et pour que celui reste lisible quelle que soit la couleur de la form (et donc du bouton), je dois utiliser l'évenement OnParentColorChange du bouton pour modifier la couleur du texte.
Pour l'instant j'utilise le code suivant :
1 2 3 4 5 6
| procedure TViewForm.LaunchBtnParentColorChange(Sender: TObject);
begin
if (Color > (clWhite / 2))
then LaunchBtn.Font.Color := clBlack
else LaunchBtn.Font.Color := clWhite;
end; |
Mais pour certaines couleurs le résultat n'est pas vraiment lisible (dans le cas du jaune par exemple où le texte reste blanc, donc difficilement lisible).
J'ai aussi essayé ceci :
LaunchBtn.Font.Color := clWhite - Color;
Qui dans le cas de la couleur (clWhite / 2) retourne la même, ce qui est, vous le devinez, assez peu lisible ^^
Donc si quelqu'un a une idée pour obtenir à tous les coup une couleur qui se détachera bien de la couleur de fond et qui sera agréable à lire...
Sinon je rajouterais la possibilité à l'utilisateur de changer directement la couleur du texte, mais pour certaines raisons je préfèrerais éviter.
Merci d'avance.
Partager