Copier une image dans le fond d'un TPanel

Résolu
cs_orelien Messages postés 137 Date d'inscription dimanche 7 juillet 2002 Statut Membre Dernière intervention 11 janvier 2009 - 8 janv. 2006 à 22:55
cs_orelien Messages postés 137 Date d'inscription dimanche 7 juillet 2002 Statut Membre 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.

15 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
8 janv. 2006 à 23:51
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
3
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
8 janv. 2006 à 23:02
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
0
cs_orelien Messages postés 137 Date d'inscription dimanche 7 juillet 2002 Statut Membre Dernière intervention 11 janvier 2009
8 janv. 2006 à 23:08
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.
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
8 janv. 2006 à 23:14
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
8 janv. 2006 à 23:59
-->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
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
9 janv. 2006 à 00:08
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
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
9 janv. 2006 à 00:17
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
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
9 janv. 2006 à 00:27
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
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
9 janv. 2006 à 00:52
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
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
9 janv. 2006 à 01:17
Je vais méditer dessus, la nuit porte conseil, parait-il

Bonne nuit


@+
Cirec
0
cs_orelien Messages postés 137 Date d'inscription dimanche 7 juillet 2002 Statut Membre Dernière intervention 11 janvier 2009
10 janv. 2006 à 23:22
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.
0
cs_orelien Messages postés 137 Date d'inscription dimanche 7 juillet 2002 Statut Membre Dernière intervention 11 janvier 2009
11 janv. 2006 à 00:13
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.
0
DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 2
11 janv. 2006 à 13:40
Euh, utiliser un BmpPanel ou un CnvPanel du pack de compo de Mauricio ?

gnh !
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
11 janv. 2006 à 15:28
Salut,
--> DeltaFX ça y est tu es accro aux compos de Mauricio. lol

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



@+
Cirec
0
cs_orelien Messages postés 137 Date d'inscription dimanche 7 juillet 2002 Statut Membre Dernière intervention 11 janvier 2009
23 janv. 2006 à 13:47
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.
0
Rejoignez-nous