cs_lucien
Messages postés82Date d'inscriptionvendredi 27 décembre 2002StatutMembreDernière intervention 3 juin 2007
-
2 mars 2007 à 09:32
Philips10
Messages postés2Date d'inscriptionmardi 7 janvier 2003StatutMembreDernière intervention30 octobre 2010
-
30 oct. 2010 à 15:07
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Philips10
Messages postés2Date d'inscriptionmardi 7 janvier 2003StatutMembreDernière intervention30 octobre 2010 30 oct. 2010 à 15:07
Hi
I would like to use your truely fantastic GMPanel.
I need to draw an arrrow on it and of cource, this arrow has to be seen.
I came up with this. With GMPanel1.Update or GMPanel1.RePaint or GMPanel1.invalidate
the arrow is not show.
How to...?
Thanks
-----------------
procedure TForm1.BitBtn1Click(Sender: TObject);
var x,y,c: byte;
const startx = 5;
starty = 3;
begin
x := 0;
for c := 15 downto 9 do begin
Image1.Canvas.MoveTo(startx + x, starty + x);
Image1.Canvas.LineTo(startx + c, starty + x);
inc(x);
end;
x := 0;
for c := 15 downto 9 do begin
GMPanel1.Picture.Picture.Canvas.MoveTo(startx + x, starty + x);
GMPanel1.Picture.Picture.Canvas.LineTo(startx + c, starty + x);
inc(x);
end;
GMPanel1.Invalidate;
end;
Philips10
Messages postés2Date d'inscriptionmardi 7 janvier 2003StatutMembreDernière intervention30 octobre 2010 19 juil. 2007 à 10:30
Comment j'obtiens une régénération, après téléchargement ou mise d'une image dans l'image au fond du TGMPanel GMPanel1.repaint ne fonctionnera pas J'ai un TPanel. Sur ceci j'ai mis un TImage en outre un TGMPanel que j'ai mis dessus le TPanel
En outre : Je ne peux pas changer le transparent.percentage au temps d'exécution.
Pouvez-vous m'aider ?
cs_Korda
Messages postés23Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention 9 avril 2016 22 juin 2007 à 13:07
hourah c'est ce que je cherche depuis longtemp Merci+++++
gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008 2 juin 2007 à 14:45
florenth,
est ce que tu pourrais me donner ta version corrigée, si c'est possible, de ce script car si cela résout le problème, cela m'aiderai beaucoup .
gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008 22 mai 2007 à 15:55
ok florenth je prends note et je teste des que j'ai le temps !! malgré que je sois encore débutant, lol !
En passant, est ce que vous pouvez me rapeller la méthode pour ajouter le GMPanel.pas en nouveau composant delphi sous forme d'onglet car j'avais réussi à trouver par hasard et depuis j'ai formater mon pc et je ne retrouve plus comment j'ai fait pour le rajouter en tant que nouveau composant delphi !!
Oui en fait j'avais déjà constaté le problème mais je me souviens plus comment je l'avais résolu (en plus, il me semblait avoir posté un commentaire mais j'ai du cliquer sur la croixs rouge sans valider ...)
En fait, il faut envoyer un message CMNEEDBACK au composant qui va appeler GetBackground.
D'ailleurs, une des fuites de mémoires provient de cette méthode: il y a un "ABitmap.Free" en commentaire qui ne devrait pas l'être.
Et puis j'en profite pour signaler un bug du site: sur l'unité GMPanels.pas, il y a tellement de lignes que tout n'est pas affiché (il y a un grand blanc en dessous du code). De même, il n'y a pas ici de coloration syntaxique...
@gabs: c'est normal: il faut invalider les panels pour qu'ils se rafraichissent !
Logiquement, c'est en faisant GMPanel.Invalidate().
Mais il me semble qu'il existe un message windows à intercepter par le composant transparent pour justement éviter ce problème mais je n'ai plus son nom sous la main.
++
gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008 21 mai 2007 à 10:10
salut gerard1,
Désolé de ne pas avoir répondu plus tôt car je n' était pas dispo ces derniers temps.
Le problème est que je ne charge pas d image dans le panel.
Je mets une image de fond de Form avec un Timage en AlClient et les GMPanel sont en transparence donc quand je change l image de fond de la TImage les GMPanel conserve la transparence fig"é sur l 'image precedent.
cs_gerard1
Messages postés2Date d'inscriptionlundi 25 juillet 2005StatutMembreDernière intervention 9 mai 2007 9 mai 2007 à 05:42
Salut Gabs77.
Comment tu t'y prends pour changer l'image ?
Comme ceci ca marche bien :
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
GMPanel1.Picture.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008 6 mai 2007 à 10:36
Salut,
En fait, c'est bon j'ai trouvé en cherchant un peu !!
En revanche, un problème qui est un peu dommage c'est quand on change d'image de fond durant l'application, la rafraichissement des panels transparents ne le rends plus visible ou inaccessible !!
gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008 6 mai 2007 à 08:54
Salut,
Ta source m'interesse mais seulement je ne m'y connais pas encore très bien en delphi. Est ce que tu peux m'expliquer comment faire pour rajouter GMPanel.pas à delphi de tel sorte à ce que je puisse l'utiliser.
Merci d'avance !!
Francky23012301
Messages postés400Date d'inscriptionsamedi 6 août 2005StatutMembreDernière intervention11 février 20161 8 mars 2007 à 11:28
Salut,
Il est génial ton composant : déjà c'est bleuffant en terme d'effet mais en plus c'est vraiment bien codé (malgré les ptites remarques justifiées de Cirec).
9/10
@+
cs_gerard1
Messages postés2Date d'inscriptionlundi 25 juillet 2005StatutMembreDernière intervention 9 mai 2007 4 mars 2007 à 19:37
Merci Cirec pour tes commentaires.
Je n'ai effectivement jamais travaillé avec Turbo Delphi.
J'ai développé ce composant a temps perdu, et il est vrai que je n'ai pas toujours eu l'occasion d'y mettre les heures voulues. Je pouvais parfois passer plusieurs semaines avant de pourvoir y revenir. Je ne dit pas cela pour me trouver des excuses ;) mais bon...
Je suis conscient que plusieurs améliorations peuvent y etre apportées. Si il y a des volontaires, ca serait apprécié...
Pas totalement ... mais tu as fait un grand pas ...
j'ai fait le reste (les composants ne sont pas dynamique) tu ne le sais peut être pas
mais on peut plus intaller de composant dans les nouvelles version (Turbo Delphi)
Mais par contre Turbo Delphi ma permis de voir ceci :
---------------------------
Unexpected Memory Leak
---------------------------
An unexpected memory leak has occurred. The unexpected small block leaks are:
21 - 28 bytes: TBrush x 2, TPen x 2, TGMPanelPicture x 1, TTransparent x 2
29 - 36 bytes: TFont x 2, Unknown x 2
37 - 44 bytes: TGradient x 1
53 - 60 bytes: TBitmap x 3
61 - 68 bytes: Unknown x 1
93 - 100 bytes: TBitmapCanvas x 2
109 - 116 bytes: TBitmapImage x 3
---------------------------
OK
---------------------------
C'est donc clair et sans appel il y a des fuites de mémoires ;(
Je te rassure c'est pas très dur à résoudre ...
j'ai rajouté des Try Finally des Free à tous les objets qui n'étaient pas libérés
et puis dans les Destructeurs veille à libérer les objets que tu as crées en premier
et ensuite seulement faire appel à Inherited Destroy; !!!!!
Sinon ça commençait très bien mais (le prend pas mal) j'ai l'impression, que la fin a été bâclé
comme si tu étais pressé de poster la source ... c'est dommage
Le source pourrait nettement être optimisé, il y a du code inutile du code mort ...
et vu le niveau je pense que c'est pas un problème pour toi de découvrir ce qui ne va pas
si toutes fois ça n'allait pas je te filerais un coup pouce
Mais bon quoi qu'il en soit ... c'est déjà du très bon boulot ... Félicitations
@+
Cirec
cs_lucien
Messages postés82Date d'inscriptionvendredi 27 décembre 2002StatutMembreDernière intervention 3 juin 2007 2 mars 2007 à 17:02
Alors je fais amende honorable ;)
et je vais jeter un coup d'oeil sur ce compo...:))
à savoir qu'un petit exemple en dynamique (ce qui éviterait à ceux qui voudraient tester ta source d'installer le composant)serait de bon aloi.
Le petit plus serait d'y ajouter une capture de l'exemple ce qui donnerait certainement envie, à un plus grand nombre de membre, de jeter un oeil sur ton code qui à l'air très intéressant et bien construit
Wooooaaahh ! Enorme ! Le code est très bien fait, il manque juste un exemple pour illustrer les fonctionnalités.
@ Lucien: on peut très bien noter sans commenter. Rien n'engage à rien, surtout qu'ici, la note est très bonne, pas comme un 1/10 qui fait raller...
cs_lucien
Messages postés82Date d'inscriptionvendredi 27 décembre 2002StatutMembreDernière intervention 3 juin 2007 2 mars 2007 à 09:32
J'ai du mal à comprendre comment il peut y avoir une note sans que personne n'ai fait de commentaire ?
Or j'écris celui-ci en premier, à réception, ce matin :)
30 oct. 2010 à 15:07
I would like to use your truely fantastic GMPanel.
I need to draw an arrrow on it and of cource, this arrow has to be seen.
I came up with this. With GMPanel1.Update or GMPanel1.RePaint or GMPanel1.invalidate
the arrow is not show.
How to...?
Thanks
-----------------
procedure TForm1.BitBtn1Click(Sender: TObject);
var x,y,c: byte;
const startx = 5;
starty = 3;
begin
x := 0;
for c := 15 downto 9 do begin
Image1.Canvas.MoveTo(startx + x, starty + x);
Image1.Canvas.LineTo(startx + c, starty + x);
inc(x);
end;
x := 0;
for c := 15 downto 9 do begin
GMPanel1.Picture.Picture.Canvas.MoveTo(startx + x, starty + x);
GMPanel1.Picture.Picture.Canvas.LineTo(startx + c, starty + x);
inc(x);
end;
GMPanel1.Invalidate;
end;
19 juil. 2007 à 10:30
bsSkinPanel1.PaintTo(image_work.Canvas, 0, 0) ;
GMPanel_Work.RePaint ;
En outre : Je ne peux pas changer le transparent.percentage au temps d'exécution.
Pouvez-vous m'aider ?
22 juin 2007 à 13:07
2 juin 2007 à 14:45
est ce que tu pourrais me donner ta version corrigée, si c'est possible, de ce script car si cela résout le problème, cela m'aiderai beaucoup .
22 mai 2007 à 15:55
En passant, est ce que vous pouvez me rapeller la méthode pour ajouter le GMPanel.pas en nouveau composant delphi sous forme d'onglet car j'avais réussi à trouver par hasard et depuis j'ai formater mon pc et je ne retrouve plus comment j'ai fait pour le rajouter en tant que nouveau composant delphi !!
22 mai 2007 à 15:34
En fait, il faut envoyer un message CMNEEDBACK au composant qui va appeler GetBackground.
D'ailleurs, une des fuites de mémoires provient de cette méthode: il y a un "ABitmap.Free" en commentaire qui ne devrait pas l'être.
Et puis j'en profite pour signaler un bug du site: sur l'unité GMPanels.pas, il y a tellement de lignes que tout n'est pas affiché (il y a un grand blanc en dessous du code). De même, il n'y a pas ici de coloration syntaxique...
++
Flo
21 mai 2007 à 18:51
Non ça ne fonctionne pas (déjà testé) :D
le problème vient très certainement de la conception ...
mais j'ai pas le temps en ce moment de chercher d'ou vient le problème.
21 mai 2007 à 18:43
Logiquement, c'est en faisant GMPanel.Invalidate().
Mais il me semble qu'il existe un message windows à intercepter par le composant transparent pour justement éviter ce problème mais je n'ai plus son nom sous la main.
++
21 mai 2007 à 10:10
Désolé de ne pas avoir répondu plus tôt car je n' était pas dispo ces derniers temps.
Le problème est que je ne charge pas d image dans le panel.
Je mets une image de fond de Form avec un Timage en AlClient et les GMPanel sont en transparence donc quand je change l image de fond de la TImage les GMPanel conserve la transparence fig"é sur l 'image precedent.
9 mai 2007 à 05:42
Comment tu t'y prends pour changer l'image ?
Comme ceci ca marche bien :
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
GMPanel1.Picture.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
6 mai 2007 à 10:36
En fait, c'est bon j'ai trouvé en cherchant un peu !!
En revanche, un problème qui est un peu dommage c'est quand on change d'image de fond durant l'application, la rafraichissement des panels transparents ne le rends plus visible ou inaccessible !!
6 mai 2007 à 08:54
Ta source m'interesse mais seulement je ne m'y connais pas encore très bien en delphi. Est ce que tu peux m'expliquer comment faire pour rajouter GMPanel.pas à delphi de tel sorte à ce que je puisse l'utiliser.
Merci d'avance !!
8 mars 2007 à 11:28
Il est génial ton composant : déjà c'est bleuffant en terme d'effet mais en plus c'est vraiment bien codé (malgré les ptites remarques justifiées de Cirec).
9/10
@+
4 mars 2007 à 19:37
Je n'ai effectivement jamais travaillé avec Turbo Delphi.
J'ai développé ce composant a temps perdu, et il est vrai que je n'ai pas toujours eu l'occasion d'y mettre les heures voulues. Je pouvais parfois passer plusieurs semaines avant de pourvoir y revenir. Je ne dit pas cela pour me trouver des excuses ;) mais bon...
Je suis conscient que plusieurs améliorations peuvent y etre apportées. Si il y a des volontaires, ca serait apprécié...
3 mars 2007 à 05:34
Pas totalement ... mais tu as fait un grand pas ...
j'ai fait le reste (les composants ne sont pas dynamique) tu ne le sais peut être pas
mais on peut plus intaller de composant dans les nouvelles version (Turbo Delphi)
Mais par contre Turbo Delphi ma permis de voir ceci :
---------------------------
Unexpected Memory Leak
---------------------------
An unexpected memory leak has occurred. The unexpected small block leaks are:
21 - 28 bytes: TBrush x 2, TPen x 2, TGMPanelPicture x 1, TTransparent x 2
29 - 36 bytes: TFont x 2, Unknown x 2
37 - 44 bytes: TGradient x 1
53 - 60 bytes: TBitmap x 3
61 - 68 bytes: Unknown x 1
93 - 100 bytes: TBitmapCanvas x 2
109 - 116 bytes: TBitmapImage x 3
---------------------------
OK
---------------------------
C'est donc clair et sans appel il y a des fuites de mémoires ;(
Je te rassure c'est pas très dur à résoudre ...
j'ai rajouté des Try Finally des Free à tous les objets qui n'étaient pas libérés
et puis dans les Destructeurs veille à libérer les objets que tu as crées en premier
et ensuite seulement faire appel à Inherited Destroy; !!!!!
Sinon ça commençait très bien mais (le prend pas mal) j'ai l'impression, que la fin a été bâclé
comme si tu étais pressé de poster la source ... c'est dommage
Le source pourrait nettement être optimisé, il y a du code inutile du code mort ...
et vu le niveau je pense que c'est pas un problème pour toi de découvrir ce qui ne va pas
si toutes fois ça n'allait pas je te filerais un coup pouce
Mais bon quoi qu'il en soit ... c'est déjà du très bon boulot ... Félicitations
@+
Cirec
2 mars 2007 à 17:02
et je vais jeter un coup d'oeil sur ce compo...:))
Lucien
2 mars 2007 à 15:29
à savoir qu'un petit exemple en dynamique (ce qui éviterait à ceux qui voudraient tester ta source d'installer le composant)serait de bon aloi.
Le petit plus serait d'y ajouter une capture de l'exemple ce qui donnerait certainement envie, à un plus grand nombre de membre, de jeter un oeil sur ton code qui à l'air très intéressant et bien construit
@+
Cirec
2 mars 2007 à 14:41
@ Lucien: on peut très bien noter sans commenter. Rien n'engage à rien, surtout qu'ici, la note est très bonne, pas comme un 1/10 qui fait raller...
2 mars 2007 à 09:32
Or j'écris celui-ci en premier, à réception, ce matin :)
Lucien