Compo tcygauge, 1 gauge configurable/personalisable et interactive!

Soyez le premier à donner votre avis sur cette source.

Vue 5 470 fois - Téléchargée 891 fois

Description

Vous cherchez une gauge customisable? bem voilà!

D' abord vous pouvez choisir l' orientation:
Horizontalement: gauche à droite/droite à gauche
Verticalement: haut en bas/bas en haut

Ensuite, vous pouvez la couleur des diverses élements etc ... et, si cela ne suffit pas, vous disposez de l' événement OnCustomDrawItem vous permetant de dessinner comme bon vous semble chaque 'item'.
Les événements OnBeforePaint/OnAfterPaint vous permettant d' ajouter une image de fond/du texte etc ...

J' ai dit interactive???
vous pouvez par simple click sur le compo définir sa position comme pour controler le volume du son par exemple.

Bom bem je vous souhaite de bonnes vacances, en tout cas, les miennes commencent vendredi!
J' attends vos impressions comme d' hab!

Source / Exemple :


Pour le pack complet de mes compos, c' est ici: 
http://www.delphifr.com/code.aspx?ID=30296

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_MAURICIO
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
Je viens de modifier la TcyGauge pour que je puisse faire une TcyDBGauge !!!
Je ne sais pas encore si je vais "distribuer" la TcyDBGauge (gauge liée à un champ de table) ...

La TcyGauge a quand même gagné en option:
-> Propriété ReadOnly: permet de modifier la position ou non de la gauge (sans code cette fois)
-> Événement OnChange
-> Quelques Optimisations

EnJoY !
cs_MAURICIO
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
J' ai bien noté l' utilisation de PtInRect mais je t' avoue que je suis débordé. J' attendais donc avant de te répondre. J' ai jeté un oeil sur ton lecteur mp3 et je t' y ai laissé un petit mot. A+
DeltaFX
Messages postés
459
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
1
Okay, ca roole. En fait j'utilise la meme gauge pour représenter l'avancement de la lecture d'un mp3 (clickable et tout) et quand on hange le volume, la gauge passe au rouge pendant .2 secondes(suffisant je pense) pour indiquer le volume du player, puis reprend son role.

A propos du PtInRect., finalement j'ai pas inclu l'instruction ScreenToClient, je le gère extérieurement.

Encore une fois, un compo tres sympa.
cs_MAURICIO
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
Si tu voulais faire un systeme de clignotement, alors oui, il faut faire Application.ProcessMessages avant de rechanger les couleurs comme dans ton exemple:
cyGauge.ItemActive:=clRed;
cyGauge.ItemLastActive:=clRed;
Application.ProcessMessages;
Sleep(200);
cyGauge.ItemActive:=clLime;
cyGauge.ItemLastActive:=clLime;

Cela est dû à l' utilisation de la méthode Invalidate comme par exemple ici:
procedure TcyGauge.SetItemInactive(const Value: TColor);
begin
if Value <> FItemInactive
then begin
FItemInactive := Value;
Invalidate;
end;
end;

Même si on execute 56 fois le Invalidate, ça ne provoquera qu' une seule fois la méthode paint à moins que, évidemment, on ne force l' execution avec processMessage. C' est donc dans un soucis d' optimisation!!!
cs_MAURICIO
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
Merci DeltaFX pour ces remarques.
J' ai cherché PtInRect mais je ne connaissait pas le nom de la fonction.
Normalement il devrait repeindre, je vais jeter un oeil...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.