begin process at 2010 03 20 05:06:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

J'AI BESOIN D'AIDE !!!! :O

 > 

Une image en background


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Une image en background

lundi 22 mars 2004 à 19:36:36 | Une image en background

Eric84


Salut

J'aimerais savoir comment mettre une image en background sur ma listview (la listview est sur une image plus grande, et il faudrais que la section caché devienne le background en couleur plus pale)

J'ai vu sur le forum une question semblable qui parlais de TRect mais je sais pas trop comment m'y prendre.

Quelqu'un peut m'aider ?

Merci
mercredi 24 mars 2004 à 17:47:15 | Re : Une image en background

Kenavo

Salut,
Tu peux essayer ça

procedure TForm1.ListView1CustomDraw(Sender: TCustomListView;
const ARect: TRect; var DefaultDraw: Boolean);

var
rect : TRect;
Image : TImage;
i,j : Integer;
col : TColor ;

procedure eclaire(var col : TColor);
var
r,v,b : byte;
begin
r:=col mod $100; // extraction du rouge
v:= ( col shr 8 ) mod $100; // ...du vert
b:= ( col shr 16 ) mod $100; // ... du bleu
r:= (r+$ff) div 2; // mélange avec du blanc
v:= (v+$ff) div 2;
b:= (b+$ff) div 2;
col := r + $100 * v + $10000 * b; // nouvelle couleur
end;

begin
Rect.Top := Listview1.Top+2;
Rect.Bottom := Rect.Top + Listview1.ClientHeight ;
Rect.Left := Listview1.Left+2;
Rect.Right := Rect.Left + Listview1.ClientWidth ;
Image := TImage.Create(self);
Image.Width := Arect.Right-Arect.Left+1;
Image.Height := Arect.Bottom-Arect.Top+1;
Image.Canvas.CopyRect(ARect,Image1.Canvas,Rect);
for j:=0 to Arect.Bottom-1 do
for i:=0 to Arect.right-1 do
begin
col := Image.Canvas.Pixels[i,j];
eclaire(col);
Image.Canvas.Pixels[i,j] := col;
end;
ListView1.Canvas.CopyRect(Arect,Image.Canvas,ARect);
Image.Free
end;

Explications :

-Rect est le rectangle de l'image de fond (Image1) derrière le Listview
-On copie cette zone dans Image (TImage temporaire)
-Pixel par Pixel on modifie les couleurs d'Image (fonction Eclaire)
-On recopie Image modifiée dans le canvas de ListView

J'ai pas mieux !

Kenavo

Code, Code, Codec !
jeudi 25 mars 2004 à 04:29:42 | Re : Une image en background

Eric84


Ouais ca fonctionne, sauf, c'est normal qu'on puisse pas utiliser les jpg ? Il ne semble accepter que les bitmap.

Et c'est normal si ca semble lagger lorsqu'on clique sur un élément de la listview ? (licone cliquer disparais pendant 1-2 seconde et réapparais par la suite)

Merci
jeudi 25 mars 2004 à 12:03:39 | Re : Une image en background

Kenavo

Ben oui,

La fonction CopyRect ne fonctionne pas avec les Jpeg.

Le temps doit provenir des appels à la fonction Pixels qui est très lente. tu peux essayer en virant les boucles for

Si quelqu'un connait un truc !

Kenavo

Code, Code, Codec !
vendredi 26 mars 2004 à 04:11:11 | Re : Une image en background

Eric84


Ok merci bcp :P
samedi 9 avril 2005 à 09:21:07 | Re : Une image en background

raybane

Salut tout le monde, c'est mon premier post, en espérant que ca serve!


procedure TForm1.ListView1CustomDraw(Sender: TCustomListView;
const ARect: TRect; var DefaultDraw: Boolean);
var jpg :TJpegImage;
    Bmp :TBitMap;
 
begin
   //création des images
   Jpg := TJpegImage.Create;
   Bmp := TBitMap.Create;

   Try
       // on indique le chemin du jpg
      Jpg.LoadFromFile('D:\day.jpg');
      //on adapte la taille du bmp a celui du listview
      Bmp.Width  := Listview1.Width;
      Bmp.Height := Listview1.Height;
      //on étire l'image du bmp
      Bmp.Canvas.StretchDraw(Bmp.Canvas.ClipRect,Jpg);
      Jpg.Assign(Bmp);
      //on assigne l'image au listview
      ListView1.Canvas.CopyRect(Arect,Bmp.Canvas,ARect);
   Finally
      //on libere les ressources
      Jpg .Free;
      Bmp .Free;
   end;

samedi 10 septembre 2005 à 15:36:48 | Re : Une image en background

lol_brossier

Ca marche tres bien ce code mais avez vous une idée pour que l'mage de fond soit redessiné a chaque changement de dimension de la fenetre ? Parce que pour moi si je modifie la taille de la fenetre ca modife mon image et je voudrais donc qu'elle soit redessiné apres chaque mouvement.
Merci


Cette discussion est classée dans : image, listview, background


Répondre à ce message

Sujets en rapport avec ce message

Listview background image [ par magic123 ] Salut a tous, Je cherche depuis un moment comment faire pour avoir une image fixe en background dans une TListview... Y'a-t-il une ame charitable pour listview 2 images dans la meme colonne ? [ par dav999 ] Salutje voudrais savoir s'il est possible d'afficher plusieurs images dans une colonne de ma listview, pour le moment j'utilise un imagelist et la pro Image dans une DBGrid [ par rolea ] Je cherche un moyen d'afficher une image dans la ligne de titre d'un DBGrid.Exemple, je fais une requête avec un tri, et je veux ensuite afficher une HELP!!! Imprimer image + Autre [ par lorrant ] Bonjour,Je suis débutant en programmation, et j'ai réalisé un petit programme pour la boîte où je bosse (qui n'a rien à voir dans la programmation...) Comment ajouter une image BMP dans un fichier RTF [ par patkiller ] BonjourJe suis un débutant en Delphi. J'ai fait un logiciel destiné à tenir un journal intime.Le logiciel sauvegare le contenu du journal dans un fich Probleme mouvement d une image [ par hepho ] Salut,Alors voila mon probleme :Avec un timer regler a 200ms, je bouge le left d une image de 5 a chaque intervalle ( jespere je me suis fait comprend Image ds 1 TreeView [ par jlg75 ] j'associe des images aux nodes d'1 TreeView.Pb: modifier l'image qd 1 (ou plusieurs si multiselect) node est selecté . La modif de ImageIndex du node Affichage rapide d'image [ par zorg63 ] Désolé pour le tire qui n'est pas très clair, je ne savais pas comment résumer mon problème. Le voici :Je viens de poster une source utilisant l'affic Images dans StringGrid [ par DAR ] Dans la 1ere colonne de ma StringGrid je veux mettre une image différente sur chaque ligne (fonction du contenu d'une autre colonne). Les Images sont image prise par une webcam [ par ludou ] bonjour voilà je cherche comment on pourrait améliorer la qualités d'une image prise par une webcam et comment on pourrait voir si elle est trop fonçé


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales