Soyez le premier à donner votre avis sur cette source.
Snippet vu 13 136 fois - Téléchargée 33 fois
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls,Clipbrd; type TForm1 = class(TForm) ButtonRempliBitmap: TButton; Image1: TImage; ButtonAfficheBitmap: TButton; ButtonSauverSurFichier: TButton; SaveDialog1: TSaveDialog; ButtonCopierVersClipBoard: TButton; Label1: TLabel; Label2: TLabel; procedure ButtonRempliBitmapClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure ButtonAfficheBitmapClick(Sender: TObject); procedure ButtonSauverSurFichierClick(Sender: TObject); procedure ButtonCopierVersClipBoardClick(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; var Form1: TForm1; ImageBureau:TPicture; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin ImageBureau := TPicture.Create; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin ImageBureau.Free; end; procedure TForm1.ButtonRempliBitmapClick(Sender: TObject); begin ImageBureau.Bitmap.Width := Screen.Width; ImageBureau.Bitmap.Height := Screen.Height BitBlt(ImageBureau.Bitmap.Canvas.Handle,0,0,Screen.Width,Screen.Height, GetDC(GetDesktopWindow),0,0,SrcCopy);//recopie l'image du desktop vers ImageBureau end; procedure TForm1.ButtonAfficheBitmapClick(Sender: TObject); begin Image1.Picture.Bitmap:=ImageBureau.Bitmap; end; procedure TForm1.ButtonSauverSurFichierClick(Sender: TObject); begin if SaveDialog1.Execute then ImageBureau.SaveToFile(SaveDialog1.FileName); end; procedure TForm1.ButtonCopierVersClipBoardClick(Sender: TObject); begin Clipboard.Assign(ImageBureau); end; end.
9 juin 2005 à 20:13
Pourquoi utilises-tu Tpicture plutot que Tbitmap qui me semblerais plus approprié ?
Tout Getdc doit etre libéré par un releasedc mais bon, pleins de coders font cette erreur (il doinvent pas avoir le meme msdn que moi, lol).
Pourquoi un bouton afficher puisque l'affichage peut etre automatisé.
donc se code me semble suffisant:
procedure TForm1.ButtonRempliBitmapClick(Sender: TObject);
var DesktopDc : hdc;
ImageBureau : Tbitmap;
begin
ImageBureau:=Tbitmap.createsized(Screen.Width,Screen.Height);
DesktopDc:=GetDC(GetDesktopWindow);
BitBlt(ImageBureau.Canvas.Handle,0,0,Screen.Width,Screen.Height,
DesktopDc,0,0,SrcCopy);
Releasedc(GetDesktopWindow,DesktopDc);
Image1.Picture.Bitmap.Assign(ImageBureau);
ImageBureau.Free;
Image1.Invalidate;
end;
procedure TForm1.ButtonSauverSurFichierClick(Sender: TObject);
begin
if SaveDialog1.Execute then
Image1.Picture.Bitmap.SaveToFile(SaveDialog1.FileName);
end;
procedure TForm1.ButtonCopierVersClipBoardClick(Sender: TObject);
begin
Clipboard.Assign(Image1.Picture.Bitmap);
end;
Bon Coding...
ManChesTer.
10 juin 2005 à 07:39
Si tu veux une fonction pour générer le Bitmap directement :
http://www.darkskull.net/?module=viewarticle&idarticle=30
Ensuite il ne te restera plus qu'à assigner ce bitmap au TPicture...
10 juin 2005 à 13:52
10 juin 2005 à 18:45
11 juin 2005 à 13:47
Pour capturer l'écran dans le clipBoard, il suffit d'appuyer sur la touche Impr écran du clavier.
MonBitmap.Assign(ClipBoard) permet ensuite de récupérer l'image dans un bitmap pour en faire n'importe quoi...
comme je le fais régulèrement avec mon prog Leonardo.
jp ?o?
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.