1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
PaintBox1: TPaintBox;
procedure FormCreate(Sender: TObject);
procedure FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
procedure FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
procedure PaintBox1Paint(Sender: TObject);
procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormDestroy(Sender: TObject);
private
{ Déclarations privées }
taille:integer;
zoombit:Tbitmap;
bitm:array[1..2] of Tbitmap;
rectsource,rectdestination:Trect;
procedure zoom(x,y,taille:integer);
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
position:=poscreencenter;
taille:=20;
for i:=1 to 2 do begin
bitm[i]:=Tbitmap.Create;
with bitm[i] do begin
width:=paintbox1.clientWidth;
height:=paintbox1.clientHeight;
loadfromfile('chemin ');
end;
zoombit:=Tbitmap.Create;
with zoombit do begin
width:=150;
height:=150;
end;
end;
procedure TForm1.zoom(x,y,taille:integer);
begin
bitm[1].Canvas.CopyRect(paintbox1.ClientRect,bitm[2].canvas,paintbox1.clientrect);
rectsource:=rect(x-50+taille,y-50+taille,x+50-taille,y+50-taille);
rectdestination:=rect(0,0,150,150);
zoombit.Canvas.CopyRect(rectdestination,bitm[1].canvas,rectsource);
bitm[1].Canvas.Draw(x-zoombit.Width div 2,y-zoombit.height div 2,zoombit);
end;
procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
dec(taille);
end;
procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
inc(taille);
end;
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
paintbox1.canvas.Draw(0,0,bitm[1]);
end;
procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
zoom(x,y,taille);
paintbox1paint(nil);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
bitm[1].Free;
bitm[2].Free;
zoombit.Free;
end;
end. |
Partager