Composant tswitchled (une led)

Description

Bonjour, voici une LED (encore une oui je sais ...).
Mais elle s'adresse principalements à OffLake (qui avait inclus dans ses projets une gigantesque bibliothèque JEDI, en n'utilisant qu'un ou deux composants (dont une LED)).
Alors voilà, j'espère qu'elle lui sera utile (et à vous aussi !).
J'ai essayé de faire simple, tout en essayant d'aborder un maximum de points sur la création des composants.

Voici les possibilités du composant :

- 9 couleurs (Aqua, Rose, Violet, Rouge, Jaune, Vert, Bleu, Orange, Noir).
- 3 positions possibles (On, Off, Disabled).
- 1 couleur pour chaque position (pour éviter d'avoir à changer à chaque fois).
- permet à l'utilisateur du composant de récupérer les bitmaps des LEDs dans des objets TBitmap, si il en a besoin (voir GetBitmap)
- moteur d'aide integré (basique, certes, mais bon ...)

Ce source aborde plusieurs points de la création des composants :

- création d'une propriété, et de ses champs objet
- définir une méthode d'accès de propriété (voir SetLedColor ...) avec des index d'accès
- surcharger des méthodes ancêtres tout en appellant cette méthode avant son code ajouté
- utilisation d'une classe TGraphicControl
- récupérer des propriétés et méthodes (comme les évenements) depuis une classe ancêtre
- initialisation de propriétés à la création du composant (sujet de nombreuses questions)

En prime, un exemple de création dynamique de composant (dans l'exemple).

Bien sûr les LEDs ne sont pas des simples ronds entourés de noir ... ce sont des images correctes (inspirées de celles des LEDs JEDI), avec néanmoins 9 couleurs ^^

Il y a evidemment pas mal de choses à améliorer dans cette LED (comme la possibilité d'obtenir une LED plus grande) mais j'ai voulu faire simple, comme dit précédemment.
Je pense que cette source aborde suffisamment de sous-domaines pour avoir sa place dans un site comme celui-ci :)

Si quelqu'un a une idée pour masquer Width et Height dans l'éditeur de composants sans avoir à réécrire une classe ancêtre ...

J'ai fourni un exemple, avec création dynamique, et une capture d'écran de ce même exemple.

Et en prime, je vous offre le fichier INC de DelphiProg, pour détecter facilement les versions de Delphi !
J'utilise ce fichier pour reconnaitre si la version de Delphi est supérieure ou égale à D5, dans quel cas on peut utiliser Constraints, sinon, on ne le compile pas !

Un truc marrant avec ces LEDs consiste à faire un feu rouge avec un timer ou un thread pour passer le temps ^^ si vous ne savez pas quoi en faire. J'ai mis un feu rouge dans l'exemple avec un timer :)

Source / Exemple :


// In the Zip

Conclusion :


Voilà, tous critiques, commentaires, bugs, remarques, conseils, etc ...

Codé sous Delphi 6.

Cordialement, Bacterius !

Codes Sources

A voir également

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.