Copier une image dans le fond d'un TPanel [Résolu]

Messages postés
137
Date d'inscription
dimanche 7 juillet 2002
Dernière intervention
11 janvier 2009
- - Dernière réponse : cs_orelien
Messages postés
137
Date d'inscription
dimanche 7 juillet 2002
Dernière intervention
11 janvier 2009
- 23 janv. 2006 à 13:47
Bonjour,

J'aimerais savoir comment copier une image dans le fond d'un TPanel.
Si quelqu'un a une idée...

Merci

Orélien.
Afficher la suite 

Votre réponse

15 réponses

Meilleure réponse
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
3
Merci
Salut,
> jlen, pour information c'est possible

voici comment :
procedure TForm1.Button1Click(Sender: TObject);
Var DC : HDC;
aBmp : TBitMap;
Canv : TCanvas;
begin
aBmp := TBitMap.Create;
aBmp.LoadFromFile('Cloud.bmp'); // doit être un BMP
DC := GetDc(Panel1.Handle); // comme il n'y a pas de canvas(accessible) dans panel on récupère son Device Control
Canv := TCanvas.Create;
Canv.Handle := DC; // on l'affecte à notre Canvas temporaire
Canv.Brush.Bitmap := aBmp; // et l'image (BMP) à Brush
FillRect(dc, Panel1.ClientRect, Canv.Brush.handle); // On Dessine
Canv.Free; // et on libère le tout avant de quitter
aBmp.free;
ReleaseDc(Panel1.Handle, DC);
end;

Voilà c'est tout
si tu mets cela dans l'évenement OnPaint de ta Form le rafraichissement se ferat automatiquement



@+
Cirec

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Cirec
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
salut,

je pense que le plus simple est de mettre un Timage dans ton panel et
de le charger la propriété piture avec une image (soit à la conception
soit avec un loadfromfile)



@+

jlen
Commenter la réponse de jlen100
Messages postés
137
Date d'inscription
dimanche 7 juillet 2002
Dernière intervention
11 janvier 2009
0
Merci
Merci,

Et bien en ait ce n'est pas exactement ce que je recherche. J'y ait bien pensé mais ce que j'aimerais c'est que l'image soie fondue avec le TPanel, qu'elle ne fasse qu'un avec lui, qu'elle soie incrustée quoi.

Orélien.
Commenter la réponse de cs_orelien
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
je ne crois pas que ce soit possible directement sans recréer un
nouveau composant qui reprendrait les propriétés du Timage
et du Tpanel ( ajout d'une propriété Tpicture dans un composant Tpanel).



@+

jlen
Commenter la réponse de jlen100
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
-->cirec intéressant à savoir; je ne connaissais pas.

bien que personnellement je préfère rajouter un Timage au panel pour
une gestion plus simple de l'image associée qui permet en plus de
charger des images jpeg



@+

jlen
Commenter la réponse de jlen100
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
0
Merci
Absolument, quoi que l'on peut aussi charger un Jpg avec un TImage Crée dynamiquement et l'assigner à un BitMap mais bon ... c'est plus compliqué mais pas impossible.

Le but ici était de montrer la possibilité de dessiner même en l'absence de canvas en plus je sais pas si tu as vu mais le Bmp est directement affecté à Brush et non dessiné avec Draw (ce qu'il est aussi possible de faire) où avec StretchDraw



@+
Cirec
Commenter la réponse de Cirec
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
oui puisque le Tpicture le fait il est donc possible de le faire!

donc dans le même ordre d'idée il est possible d'intégrer une image
dans n'importe contrôle c'est une question qui est récurente sur
le forum.

Il serait intéressant que tu fasses un tuto sur la question.



@+

jlen
Commenter la réponse de jlen100
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
0
Merci
Tout à fait, on peut dessiner partout.
mais je ne sais pas si il y a asser de matière à faire un tuto sur le sujet, le code donné en exemple plus haut est à lui seul 95 % de la méthode. Pour les autres composants il faut juste remplacer Panel1.Handle par celui de notre choix.

Qu'en penses-tu ? ça vaut le coup ?



@+
Cirec
Commenter la réponse de Cirec
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
0
Merci
disons que ce serait plus facile à retrouver que sur le forum qui
limite le nombre de réponses à 20~.et pas toujours très judicieuses.

(nix serait-il possible que quand l'on consulte la liste des messages
de son compte il n'y ait qu'un seul lien par topic ce qui faciliterait
la recherche des réponses que l'on a déjà données).

j'ai expérimenté le moteur de recherche sur des réponses que j'avais
données et dont je voulais retrouver l'adresse et finalement j'ai eu
plus vite fait de réecrire le bout de code!!

Mais bon je vais mettre ça dans ma bibliothèque d'exemple

@+

jlen
Commenter la réponse de jlen100
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
0
Merci
Je vais méditer dessus, la nuit porte conseil, parait-il

Bonne nuit


@+
Cirec
Commenter la réponse de Cirec
Messages postés
137
Date d'inscription
dimanche 7 juillet 2002
Dernière intervention
11 janvier 2009
0
Merci
Merci beaucoup, c'est ce qu'il me fallait !
Merci de votre aide !

Par contre j'ai mis ce code dans l'évènement onPaint de la form mais rien ne se passe...

Orélien.
Commenter la réponse de cs_orelien
Messages postés
137
Date d'inscription
dimanche 7 juillet 2002
Dernière intervention
11 janvier 2009
0
Merci
Egalemenent j'ai souci, c'est que losque mon image est dessinnée et qu'une autre fenêtre de windows se postionne par dessus, l'image s'efface. Quelquun à t'il une solution ?
Merci.

Orélien.
Commenter la réponse de cs_orelien
Messages postés
459
Date d'inscription
lundi 19 avril 2004
Dernière intervention
8 avril 2009
0
Merci
Euh, utiliser un BmpPanel ou un CnvPanel du pack de compo de Mauricio ?

gnh !
Commenter la réponse de DeltaFX
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
0
Merci
Salut,
--> DeltaFX ça y est tu es accro aux compos de Mauricio. lol

ceci dit c'est vrai qu'ils sont chouettes.



@+
Cirec
Commenter la réponse de Cirec
Messages postés
137
Date d'inscription
dimanche 7 juillet 2002
Dernière intervention
11 janvier 2009
0
Merci
Bonjour,

N'existe t'il pas une autre solution pour que le TPanel dessiné ne s'éfface pas, losqu'une autre fenêtre prend le focus par dessus ?

Merci

Orélien.
Commenter la réponse de cs_orelien

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.