Tgraphicgauge c'est plus beau

Soyez le premier à donner votre avis sur cette source.

Vue 7 575 fois - Téléchargée 1 085 fois

Description

Ceci est ma version du composant TGauge, rebaptisé TGraphicGauge, pour en faire des plus jolies (voir capture).
La Propriété Brush d'un TCanvas a une propriété Bitmap qui permet de dessiner autre chose que des couleurs simples.
Les bitmaps utilisés dans la démo on été créés avec un logiciel de dessin (Corel PhotoPaint) en utilisant les dégradés, ou avec Paint pixel par pixel mais c'est moins beau.
La largeur du GraphicGauge doit être adaptée à celle du bitmap choisi (sauf intention graphique particulière).
Les barres restent toutefois rectangulaires.
Comme c'est pompé sur TGauge, il n'y a pas beaucoup de commentaires, j'ai juste indiqué les modifs que j'y ai apportées.

Conclusion :


Suggestion : Ajouter des types de TGraphicGauge : gkHorizontalCenterBar, gkVerticalCursor ou autres ... quelqu'un a une idée ?

-- Mise à jour -- 10/05/2004 12:00
Ligne litigieuse retirée (voir commentaire ci-dessous)
Commentaires ajoutés au souce et mise à jour des réponses aux évènement souris (ça ne marchait que pour les gkHorizontal)
Nouveaux bitmaps (voir saisie)
-- Mise à jour -- 10/05/2004 12:05
Remis README.TXT dans le zip

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
4
Et re
En fait, ça ne devrait pas marcher, si on en croit l'aide Delphi sur la propriété Bitmap de TBrush. Seul l'image de 8 pixels sur 8 du haut gauche de l'image devrait être prise en compte pour le motif du pinceau , alors qu'en fait ... on peut utiliser n'importe quel format d'image.
Ceci n'est valable qu'avec la fonction FillRect, parce qu'avec la fonction Rectangle (qui dessine le contour en plus) on ne prend effectivement en compte que la région 8 x 8 pixels haut gauche du bitmap du pinceau !!!!
Quelqu'un a une explication ?
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
4
Oups !
En chassant le bug, j'ai trouvé un truc pas clair : l'utilisation dans le Create du composant de l'appel à la fonction AllocateHWnd
FWindowHandle := AllocateHWnd( WndProc);
De là, deux choses
1 - Ca sert à rien ! (et je ne sais plus pourquoi j'avais mis ça. En fait, ça sert à obtenir un Handle pour un contrôle "non-windowed")
2 - Pas d'appel à DeAllocateHWnd -> Probable source d'une Runtime error 216 à la fermeture de Delphi
En comparant avec de source de TGauge, je me suis aussi aperçu que j'avais rajouté des réponses aux messages WM_LBUTTONDOWN et WM_MOUSEMOVE (pour se servir de la Gauge comme d'un TrackBar) et un évennement OnChange
Je modifie le source et je mets à jour (avec de nouveaux bitmaps)

Kenavo
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
4
Salut,
Merci à tous !
Inekman, je vois pas pour ton erreur. Peux-tu préciser à quel moment ça t'arrive (localise en mode pas à pas si tu peux), il y a certainement une explication.
Kenavo
Messages postés
69
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 novembre 2006

Magnifique !
Tout simplement.

Un beau 10/10 !
Messages postés
291
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
30 juin 2006

C'est absolument génial. C'est de l'excellent travail ça Kenavo.
Cependant il y'a une violation d'accès à l'exécution d'un programme qui contient le composant....et comme par hasard, ça ne le fait pas avec le projet "Demo" que tu fournis :p.

Inekman. 10/10
Afficher les 6 commentaires

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.