Composant TSlideBar

Présentation
TSlideBar est un composant semblable à TTrackBar, mais au look entièrement personnalisable et indépendant de l'OS.
Dérivé de TGraphicControl, il est donc transparent.
5 styles prédéfinis pour une utilisation rapide + style bsOwnerDraw (dessin dans événement OnPaint).
Soyez créatifs, modifiez ou créez de nouveaux styles. C'est très simple à faire, et je suis à votre disposition pour toute explication.
Le zip comprend une démo (rien à installer).
Testé sous Win7, Win8, Linux mint.
Nos ressources disponibles
Téléchargement
Compatibilité
Linux Windows
3  0 
Téléchargé 44 fois Voir les 5 commentaires
Détails
Avatar de Thierry Dehant
Membre chevronné
Voir tous les téléchargements de l'auteur
Licence : Libre
Date de mise en ligne : 29 janvier 2015




Avatar de Roland Chastain Roland Chastain - Rédacteur/Modérateur https://www.developpez.com
le 29/01/2015 à 14:31
Très joli !
Avatar de ThWilliam ThWilliam - Membre chevronné https://www.developpez.com
le 29/01/2015 à 21:07
Merci Roland.
Avatar de Jipété Jipété - Expert éminent https://www.developpez.com
le 08/05/2017 à 19:19
Salut,

comme tu en as parlé dans une discussion récente, je suis allé jeter un œil curieux, et je me permets de te faire remonter les points suivants :
- retouche de la largeur du curseur (1 point de moins) ;
- retouche de la largeur du slide lui-même, 4 points de moins (1 à droite, et 2 + 1 à gauche) afin d'uniformiser le graphisme.

Dans le zip joint bitmap3.bmp (le curseur) et bitmap4.bmp (la piste), à charge pour chacun de s'en dépatouiller.
[ATTACH]272981d1/a/a/a" />

Et ça donne ça :


Un soupçon de modif de code, dans le FormCreate :
Code : Sélectionner tout
1
2
3
4
   for i:= 0 to 2 do
      with TSlideBar.Create(self) do
         Width:= 40; //44 -- largeur du bitmap
   //aide-mémoire : Panel2.Width = ((SlideBar.Width + 1) * NbreSlideBar) + 1

Une remarque : vraiment pas moyen de focaliser la chose ? Ayant récemment travaillé sur un outil avec une dizaine de faders côte à côte, je peux te dire qu'y accéder rien qu'au clavier par <TAB> / <majTAB> et les flèches monte-descend pour +/-1 et-ou page_avant-page_arrière pour +/- 5 ou carrément +/-10, c'est d'une efficacité redoutable, vraiment que du bonheur.
Avatar de ThWilliam ThWilliam - Membre chevronné https://www.developpez.com
le 09/05/2017 à 12:04
Salut JP.

Depuis que tu fais du graphisme intensif (voir ton post qui restera dans les annales , tu as attrapé un oeil de sioux

"vraiment pas moyen de focaliser la chose ?"

Non, puisque la classe ancêtre est TGraphicControl, ce qui permet aisément la transparence.

Je voulais justement éviter la focalisation car sinon, il faut indiquer graphiquement quel composant la détient.
Windows indique la focalisation d'un TTrackBar (ou Checkbox...) en l'entourant d'un rectangle en pointillé (DrawFocusRect) : horrible !!!

Quant-à la rapidité avec le clavier... faisons un concours face à une table de mixage 32 pistes
Evidemment, pour les utilisateurs d'un portable sans souris branchée, c'est tout autre chose.
Avatar de Jipété Jipété - Expert éminent https://www.developpez.com
le 09/05/2017 à 12:42
Coucou, Thierry,
Citation Envoyé par ThWilliam Voir le message
Depuis que tu fais du graphisme intensif (voir ton post qui restera dans les annales , tu as attrapé un oeil de sioux
lol, je l'avais déjà, ça vient de mon amour pour la typo, les belles phrases, les beaux livres, etc.

Citation Envoyé par ThWilliam Voir le message
"vraiment pas moyen de focaliser la chose ?"

Non, puisque la classe ancêtre est TGraphicControl, ce qui permet aisément la transparence.

Je voulais justement éviter la focalisation car sinon, il faut indiquer graphiquement quel composant la détient.
J'y ai pensé aussi, et je me suis dit qu'il faudrait gérer ça un peu comme sont gérées les vrais tranches des consoles : avec des loupiotes !
En haut à gauche une led rouge/verte pour la tranche active ou pas, et à droite une autre, jaune ou éteinte, indiquant le focus.

Le seul problème, c'est de déterminer si rouge veut dire "attention ! danger ! je bosse" ou plutôt "je suis éteinte" et si vert signifie "je bosse" ou "je suis libre".

C'est un problème qui est parfois discuté en termes d'ergonomie, et il paraît que ça dépend des cultures ; à l'instant où je pianote ça, je n'ai pas d'avis tranché. Peut-être s'inspirer des bonshommes des panneaux de signalisation : vert je peux marcher (= je ne suis pas bloqué) courir avancer reculer, rouge y a rien qui bouge. Pourquoi pas.

Tiens, suis en train de penser que si tes sliders sont transparents, pourquoi ne pas les coupler avec un TPanel dessous, qui deviendrait jaune (ou autre) à la prise de focus.

Ou même sans led's, juste le TPanel dessous :
  • vert je bosse et donc je peux passer jaune au TAB
  • rouge je suis inactif mais sur l'événement onKeyDown tu testes les touches mM aA pour activer/désactiver la tranche -- Ah, il faut un rappel de l'état : donc jaune citron si la tranche est active et jaune bien orange si elle ne l'est pas.


Enfin, c'est deux-trois trucs balancés viteuf depuis le keyboard

Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Responsables bénévoles de la rubrique Lazarus : Alcatîz - Gilles Vasseur -