Ça me plait pour 2 raisons:
- J' utilise des units (divisées par type ex. obj/graph/sys/div etc...) pour regrouper les fonctions que je crées et ainsi, pouvoir les utiliser dans diverses programmes. Le problème c' est que ça gonfle les executables juste à cause d' une fonction qu' on a voulu utiliser. De plus, bem on peut pas faire des compos visuels:(
- Ça elimine le mauvais point cité plus haut! C' est bien plus visuel (même pour les compos non visuels, on voit tout de suite sur la TForm ce qu' on utilise).
Désolé mais pour le caption, ce sera pas possible!
Non pas que ton idée ne soit pas bonne, mais je pourrais plus créer des Leds (sans bitmaps) rectangulaires (avec la largeur désirée en fait).
par contre, des Leds rondes (toujours sans Bitmaps) j' y ai pensé et ovales aussi selon la taille du compo (c' est pour ça que je peux pas avoir de caption).
J' ai voulu posté comme ça pour avoir l' opinion du public. Mais je vais utiliser ton code pour y implementer les rondeurs (on aime tous ça, les rondeurs! oups, je m' égarre).
Sinon, bem c' est pas evident du tout. Je pense que j' ai bien fait de m' y mettre tard! Ça a evité de foutre des compos de m... plein de bugs partout!
D' ailleurs, j' ai un petit bug sur le compo TcyLabel/TcyActiveLabel!!!
Finalement, écrire des composants, c'est pas si mal ! non ? Tu ne vas plus t'arrêter !
Quelques remarques sur celui-ci :
1 - J'aurais aimé que la propriété Caption y soit, pour avoir un texte en face de la led (avec la propriété Alignment comme pour un TRadioButton), plutôt que de coller un label à coté.
2 - Sans bitmap, c'est pas très zoli ! J'avais écrit ça (sans gestion de bitmap) et avec Caption pour faire des leds rondes :
---------------------------------------------
procedure TCustomLed.Paint;
var
W, H, X, Y : integer;
begin
W:=Width;
H:=Height;
if FAlignment = taRightJustify then
x:=W-H
else
x:=0;
y:=0;
with canvas do
begin
pen.color:=clBlack;
pen.style:=psSolid;
case FState of
ldOn : Brush.color:=OnColor;
ldOff : Brush.Color:=OffColor;
ldGrayed : Brush.Color:=clGray;
end;
pen.color:=Brush.Color;
pie(X+1,Y+1,X+H-1,Y+H-1,X,Y,X,Y);
pen.Color:=clgray;
arc(X,Y,X+H,Y+H,X,Y,X,Y);
pen.Color:=clWhite;
arc(X+1,Y+1,X+H-1,Y+H-1,X,Y,X,Y);
pen.Color:=clGray;
arc(X+1,Y+1,X+H-1,Y+H-1,X,Y+H,X+H,Y);
pen.color:=clWhite;
arc(X+4,Y+4,X+H-4,Y+H-4,X+H,Y,X,Y+H);
arc(X+5,Y+5,X+H-5,Y+H-5,X+H,Y,X,Y+H);
end;
if FAlignment = taLeftJustify then
x:=H+8
else
x:=0;
y:=(height+canvas.font.Height) div 2;
Canvas.Font:=Font;
with Canvas do
begin
Brush.Color := color;
TextOut(x,y,Caption);
end;
end;
---------------------------------------------
Pour des leds de 10 à 20 pixels, ça rend pas mal.
ton composant est t'il compatible pour delphi 2005 ??
- J' utilise des units (divisées par type ex. obj/graph/sys/div etc...) pour regrouper les fonctions que je crées et ainsi, pouvoir les utiliser dans diverses programmes. Le problème c' est que ça gonfle les executables juste à cause d' une fonction qu' on a voulu utiliser. De plus, bem on peut pas faire des compos visuels:(
- Ça elimine le mauvais point cité plus haut! C' est bien plus visuel (même pour les compos non visuels, on voit tout de suite sur la TForm ce qu' on utilise).
Désolé mais pour le caption, ce sera pas possible!
Non pas que ton idée ne soit pas bonne, mais je pourrais plus créer des Leds (sans bitmaps) rectangulaires (avec la largeur désirée en fait).
par contre, des Leds rondes (toujours sans Bitmaps) j' y ai pensé et ovales aussi selon la taille du compo (c' est pour ça que je peux pas avoir de caption).
J' ai voulu posté comme ça pour avoir l' opinion du public. Mais je vais utiliser ton code pour y implementer les rondeurs (on aime tous ça, les rondeurs! oups, je m' égarre).
Sinon, bem c' est pas evident du tout. Je pense que j' ai bien fait de m' y mettre tard! Ça a evité de foutre des compos de m... plein de bugs partout!
D' ailleurs, j' ai un petit bug sur le compo TcyLabel/TcyActiveLabel!!!
Finalement, écrire des composants, c'est pas si mal ! non ? Tu ne vas plus t'arrêter !
Quelques remarques sur celui-ci :
1 - J'aurais aimé que la propriété Caption y soit, pour avoir un texte en face de la led (avec la propriété Alignment comme pour un TRadioButton), plutôt que de coller un label à coté.
2 - Sans bitmap, c'est pas très zoli ! J'avais écrit ça (sans gestion de bitmap) et avec Caption pour faire des leds rondes :
---------------------------------------------
procedure TCustomLed.Paint;
var
W, H, X, Y : integer;
begin
W:=Width;
H:=Height;
if FAlignment = taRightJustify then
x:=W-H
else
x:=0;
y:=0;
with canvas do
begin
pen.color:=clBlack;
pen.style:=psSolid;
case FState of
ldOn : Brush.color:=OnColor;
ldOff : Brush.Color:=OffColor;
ldGrayed : Brush.Color:=clGray;
end;
pen.color:=Brush.Color;
pie(X+1,Y+1,X+H-1,Y+H-1,X,Y,X,Y);
pen.Color:=clgray;
arc(X,Y,X+H,Y+H,X,Y,X,Y);
pen.Color:=clWhite;
arc(X+1,Y+1,X+H-1,Y+H-1,X,Y,X,Y);
pen.Color:=clGray;
arc(X+1,Y+1,X+H-1,Y+H-1,X,Y+H,X+H,Y);
pen.color:=clWhite;
arc(X+4,Y+4,X+H-4,Y+H-4,X+H,Y,X,Y+H);
arc(X+5,Y+5,X+H-5,Y+H-5,X+H,Y,X,Y+H);
end;
if FAlignment = taLeftJustify then
x:=H+8
else
x:=0;
y:=(height+canvas.font.Height) div 2;
Canvas.Font:=Font;
with Canvas do
begin
Brush.Color := color;
TextOut(x,y,Caption);
end;
end;
---------------------------------------------
Pour des leds de 10 à 20 pixels, ça rend pas mal.
A +
Ken@vo
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.