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

cs_orelien 137 Messages postés dimanche 7 juillet 2002Date d'inscription 11 janvier 2009 Dernière intervention - 8 janv. 2006 à 22:55 - Dernière réponse : cs_orelien 137 Messages postés dimanche 7 juillet 2002Date d'inscription 11 janvier 2009 Dernière intervention
- 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
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 8 janv. 2006 à 23:51
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

Merci Cirec 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de Cirec
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 8 janv. 2006 à 23:02
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
cs_orelien 137 Messages postés dimanche 7 juillet 2002Date d'inscription 11 janvier 2009 Dernière intervention - 8 janv. 2006 à 23:08
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
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 8 janv. 2006 à 23:14
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
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 8 janv. 2006 à 23:59
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
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 9 janv. 2006 à 00:08
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
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 9 janv. 2006 à 00:17
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
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 9 janv. 2006 à 00:27
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
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 9 janv. 2006 à 00:52
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
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 9 janv. 2006 à 01:17
0
Merci
Je vais méditer dessus, la nuit porte conseil, parait-il

Bonne nuit


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

gnh !
Commenter la réponse de DeltaFX
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 11 janv. 2006 à 15:28
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
cs_orelien 137 Messages postés dimanche 7 juillet 2002Date d'inscription 11 janvier 2009 Dernière intervention - 23 janv. 2006 à 13:47
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.