cs_Forman
Messages postés600Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 6 avril 2010
-
4 mai 2006 à 01:08
cs_mounjetado
Messages postés66Date d'inscriptionlundi 13 mars 2006StatutMembreDernière intervention 4 août 2008
-
19 juil. 2007 à 12:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_Forman
Messages postés600Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 6 avril 20101 4 mai 2006 à 01:08
J'ai oublié de préciser: les TGlKnob sont entièrements dessinés en OpenGl!
cs_shining
Messages postés304Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention10 mars 2012 8 mai 2006 à 21:21
Salut,
plutôt sympas ce composant néanmoins ça ne marche pas sous D6, car la propriété "ParentBackground" n'existe pas dans TWinControl !!! or ce serait dommage de penaliser les utilisateurs d'une version antérieur de Delphi7 juste à cause d'une propriété
il faudra donc créer une liste des directives de Delphi et mettre par exemple :
dans TGlWinControl en Published
{$IFDEF DELPHI7UP}
property ParentBackground;
{$ENDIF}
et dans le code il faudra remplacer
procedure TGlWinControl.WMPaint(var Message: TWMPaint);
begin
....
if not ParentBackground then
begin
with ColorToGlColor(Color) do
glClearColor(R,G,B,A);
glClear(GL_COLOR_BUFFER_BIT);
end;
par
{$IFDEF DELPHI7UP}
if not ParentBackground then
{$ENDIF}
begin
with ColorToGlColor(Color) do
glClearColor(R,G,B,A);
glClear(GL_COLOR_BUFFER_BIT);
end;
ainsi les utilisateurs de Delphi5 & 6(voir même D4) pourront aussi profiter du composant
autre chose.. il est préférable d'inclure les fichiers resources soit dans le fichier dpk(juste en dessous de {$R *.res}) soit dans le fichier xx.reg(encore plus simple) c'est plus propre que de les mettres dans les unités !!!
bon courage pour la suite !!
@+
cs_Forman
Messages postés600Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 6 avril 20101 9 mai 2006 à 11:16
Merci pour l'info pour D6, je modifierai dés que j'ai le temps.
Pour la resource du composant, c'est effectivement plus "propre" de la mettre dans ce qui n'est que lié au package, mais en même temps la rattacher à l'unité du composant permet une plus grande facilité de maintenance lorsqu'on fait passer l'unité dans un autre package, ça évite d'avoir à éditer la resource pour extraire le bitmap, et le mettre dans la resource du nouveau package. Ceci dit, un bitmap 24x24 en 16 couleurs, ça ne devrait pas trop surcharger les resources des applications!
La solution optimale serait peut-être de rajoutter une directive de compilation pour enlever la ligne si l'unité n'est pas compilée dans un package. Connais-tu une directive pour le faire? J'ai cherché sans succès jusque là...
cs_shining
Messages postés304Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention10 mars 2012 9 mai 2006 à 20:15
Salut,
je ne pense pas qu'il existe une telle directive néanmoins il est toujours possible de desactivé la ligne..., il suffit d'inclure un fichier *.inc et mettre par exemple:
fichier MonCompoDirective.inc
...
{$DEFINE ISPACKAGE} tout en sachant que la désactivation se fait avec juste un "."(point) avant le mot reservé "$"
{.$DEFINE ISPACKAGE} <== directive désactivé
...
cs_mounjetado
Messages postés66Date d'inscriptionlundi 13 mars 2006StatutMembreDernière intervention 4 août 2008 29 août 2006 à 15:58
>>Forman,
ton package m'intéresse au plus haut point, mais peut-il s'utiliser sous Delphi 2005?
et si oui... comment on installe cette bébête?
chaque fois que j'ai voulu installer un package, j'ai eu des soucis!
merci d'avance
4 mai 2006 à 01:08
8 mai 2006 à 21:21
plutôt sympas ce composant néanmoins ça ne marche pas sous D6, car la propriété "ParentBackground" n'existe pas dans TWinControl !!! or ce serait dommage de penaliser les utilisateurs d'une version antérieur de Delphi7 juste à cause d'une propriété
il faudra donc créer une liste des directives de Delphi et mettre par exemple :
dans TGlWinControl en Published
{$IFDEF DELPHI7UP}
property ParentBackground;
{$ENDIF}
et dans le code il faudra remplacer
procedure TGlWinControl.WMPaint(var Message: TWMPaint);
begin
....
if not ParentBackground then
begin
with ColorToGlColor(Color) do
glClearColor(R,G,B,A);
glClear(GL_COLOR_BUFFER_BIT);
end;
par
{$IFDEF DELPHI7UP}
if not ParentBackground then
{$ENDIF}
begin
with ColorToGlColor(Color) do
glClearColor(R,G,B,A);
glClear(GL_COLOR_BUFFER_BIT);
end;
ainsi les utilisateurs de Delphi5 & 6(voir même D4) pourront aussi profiter du composant
autre chose.. il est préférable d'inclure les fichiers resources soit dans le fichier dpk(juste en dessous de {$R *.res}) soit dans le fichier xx.reg(encore plus simple) c'est plus propre que de les mettres dans les unités !!!
bon courage pour la suite !!
@+
9 mai 2006 à 11:16
Pour la resource du composant, c'est effectivement plus "propre" de la mettre dans ce qui n'est que lié au package, mais en même temps la rattacher à l'unité du composant permet une plus grande facilité de maintenance lorsqu'on fait passer l'unité dans un autre package, ça évite d'avoir à éditer la resource pour extraire le bitmap, et le mettre dans la resource du nouveau package. Ceci dit, un bitmap 24x24 en 16 couleurs, ça ne devrait pas trop surcharger les resources des applications!
La solution optimale serait peut-être de rajoutter une directive de compilation pour enlever la ligne si l'unité n'est pas compilée dans un package. Connais-tu une directive pour le faire? J'ai cherché sans succès jusque là...
9 mai 2006 à 20:15
je ne pense pas qu'il existe une telle directive néanmoins il est toujours possible de desactivé la ligne..., il suffit d'inclure un fichier *.inc et mettre par exemple:
fichier MonCompoDirective.inc
...
{$DEFINE ISPACKAGE} tout en sachant que la désactivation se fait avec juste un "."(point) avant le mot reservé "$"
{.$DEFINE ISPACKAGE} <== directive désactivé
...
et dans ton fichier pas
unit MonCompo.pas
{$I MonCompoDirective.inc}
....
{$IFNDEF ISPACKAGE}
{$R MonCompoResource.res}
{$ENDIF}
implementation
où sinon il faut avec la directive {$IFOPT ..}
@+
29 août 2006 à 15:58
ton package m'intéresse au plus haut point, mais peut-il s'utiliser sous Delphi 2005?
et si oui... comment on installe cette bébête?
chaque fois que j'ai voulu installer un package, j'ai eu des soucis!
merci d'avance